tvplanit: Alternate solution for issue #39061

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9090 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2023-12-17 23:18:28 +00:00
parent 58b00ac007
commit 7548f46b4f
13 changed files with 674 additions and 58 deletions

View File

@ -9,7 +9,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.2\n"
"X-Generator: Poedit 3.4.1\n"
#: vpsr.rs1day
msgid "1 day"
@ -27,6 +27,18 @@ msgstr "1 Minute"
msgid "1 week"
msgstr "1 Woche"
#: vpsr.rs2hours
msgid "2 hours"
msgstr "2 Std"
#: vpsr.rs30minutes
msgid "30 mins"
msgstr "30 min"
#: vpsr.rs4hours
msgid "4 hours"
msgstr "4 Std"
#: vpsr.rsaddnewresource
msgid "No resources have been defined. Would you like to add one now?"
msgstr "Es sind noch keine Ressourcen definiert. Möchten Sie jetzt eine hinzufügen?"
@ -442,6 +454,10 @@ msgstr "Fällig am:"
msgid "Error: Duplicate resource."
msgstr "Fehler: Doppelte Ressource."
#: vpsr.rsdurationforopenendevents
msgid "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events."
msgstr "Der Kalender enthält Termine mit offenem Ende. Bitte geben Sie an, welche Dauer für diese Termine angesetzt werden soll."
#: vpsr.rseditbtn
msgid "Edit"
msgstr "Bearbeiten"
@ -471,16 +487,13 @@ msgid "Edit shape"
msgstr "Form bearbeiten"
#: vpsr.rselementalreadyexists
#, fuzzy, object-pascal-format
#| msgid ""
#| "An element named %s already exists.\n"
#| "Please use a different name.\n"
#, object-pascal-format
msgid ""
"An element named %s already exists.\n"
"Please use a different name.\n"
"Please use a different name."
msgstr ""
"Ein Element mit Namen %s existiert bereits.\n"
"Bitte einen anderen Namen verwenden.\n"
"Bitte einen anderen Namen verwenden."
#: vpsr.rselements
msgid "Elements:"
@ -572,6 +585,10 @@ msgstr "Vorlage:"
msgid "Templates:"
msgstr "Vorlagen:"
#: vpsr.rsfourhours
msgid "Four hours"
msgstr "Vier Stunden"
#: vpsr.rsfriday
msgid "Friday"
msgstr "Freitag"
@ -580,6 +597,10 @@ msgstr "Freitag"
msgid "from your schedule?"
msgstr "Von Ihrem Zeitplan?"
#: vpsr.rshalfanhour
msgid "Half an hour"
msgstr "Eine halbe Stunde"
#: vpsr.rsheight
msgid "Height"
msgstr "Höhe"
@ -614,6 +635,10 @@ msgstr "iCalendar Dateien ('*.ical;*.ics)|*.ical;*.ics"
msgid "Import checked items"
msgstr "Markierte Einträge importieren"
#: vpsr.rsimporticalendarevents
msgid "Import iCalendar Events"
msgstr "iCalendar-Termine importieren"
#: vpsr.rsimporticalevent
msgid "Import ICalendar Event"
msgstr "ICalendar-Termin importieren"
@ -847,6 +872,10 @@ msgstr "Einheit für das Zeitintervall nicht angegeben."
msgid "End of recurrence not specified."
msgstr "Ende der Wiederholungen nicht angegeben."
#: vpsr.rsnoeventdurationselected
msgid "No event duration selected."
msgstr "Keine Termin-Dauer ausgewählt."
#: vpsr.rsnoeventitemsfoundinical
#, object-pascal-format
msgid "No event items found in \"%s\"."
@ -927,6 +956,18 @@ msgstr "nicht unterstützt"
msgid "OK"
msgstr "OK"
#: vpsr.rsonehour
msgid "One hour"
msgstr "Eine Stunde"
#: vpsr.rsopenendevents
msgid "Open-end Events"
msgstr "Termine mit offenem Ende"
#: vpsr.rsopenendeventsdurationlbl
msgid "Duration of \"open-end\" events"
msgstr "Dauer der Termine mit offenem Ende"
#: vpsr.rsopenitembtn
msgid "&Open Item"
msgstr "Eintrag ö&ffnen"
@ -1131,16 +1172,13 @@ msgid "&Print"
msgstr "&Drucken"
#: vpsr.rsprintformatalreadyexists
#, fuzzy, object-pascal-format
#| msgid ""
#| "A print template named %s already exists.\n"
#| "Please use a different name.\n"
#, object-pascal-format
msgid ""
"A print template named %s already exists.\n"
"Please use a different name.\n"
"Please use a different name."
msgstr ""
"Eine Druckvorlage mit Namen %s existiert bereits.\n"
"Bitte einen anderen Namen verwenden.\n"
"Bitte einen anderen Namen verwenden."
#: vpsr.rsprintformatdesigner
msgid "Print template designer"
@ -1436,6 +1474,10 @@ msgstr "W"
msgid "Tuesday"
msgstr "Dienstag"
#: vpsr.rstwohours
msgid "Two hours"
msgstr "Zwei Stunden"
#: vpsr.rsunabletoopen
#, object-pascal-format
msgid "Error: Unable to open %s"

View File

@ -10,7 +10,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.2\n"
"X-Generator: Poedit 3.4.1\n"
#: vpsr.rs1day
msgid "1 day"
@ -28,6 +28,18 @@ msgstr "1 minute"
msgid "1 week"
msgstr "1 week"
#: vpsr.rs2hours
msgid "2 hours"
msgstr ""
#: vpsr.rs30minutes
msgid "30 mins"
msgstr ""
#: vpsr.rs4hours
msgid "4 hours"
msgstr ""
#: vpsr.rsaddnewresource
msgid "No resources have been defined. Would you like to add one now?"
msgstr "No resources have been defined. Would you like to add one now?"
@ -437,6 +449,10 @@ msgstr "Due date:"
msgid "Error: Duplicate resource."
msgstr "Error: Duplicate resource."
#: vpsr.rsdurationforopenendevents
msgid "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events."
msgstr "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events."
#: vpsr.rseditbtn
msgid "Edit"
msgstr "Edit"
@ -466,16 +482,13 @@ msgid "Edit shape"
msgstr "Edit shape"
#: vpsr.rselementalreadyexists
#, fuzzy, object-pascal-format
#| msgid ""
#| "An element named %s already exists.\n"
#| "Please use a different name.\n"
#, object-pascal-format
msgid ""
"An element named %s already exists.\n"
"Please use a different name.\n"
"Please use a different name."
msgstr ""
"An element named %s already exists.\n"
"Please use a different name.\n"
"Please use a different name."
#: vpsr.rselements
msgid "Elements:"
@ -567,6 +580,10 @@ msgstr "Template:"
msgid "Templates:"
msgstr "Templates:"
#: vpsr.rsfourhours
msgid "Four hours"
msgstr "Four hours"
#: vpsr.rsfriday
msgid "Friday"
msgstr "Friday"
@ -575,6 +592,10 @@ msgstr "Friday"
msgid "from your schedule?"
msgstr "from your schedule?"
#: vpsr.rshalfanhour
msgid "Half an hour"
msgstr "Half an hour"
#: vpsr.rsheight
msgid "Height"
msgstr "Height"
@ -609,6 +630,10 @@ msgstr "iCalendar files (*.ical;*.ics)|*.ical;*.ics"
msgid "Import checked items"
msgstr "Import checked items"
#: vpsr.rsimporticalendarevents
msgid "Import iCalendar Events"
msgstr "Import iCalendar Events"
#: vpsr.rsimporticalevent
msgid "Import ICalendar Event"
msgstr "Import ICalendar Event"
@ -840,6 +865,10 @@ msgstr "Day increment unit not specified."
msgid "End of recurrence not specified."
msgstr "End of recurrence not specified."
#: vpsr.rsnoeventdurationselected
msgid "No event duration selected."
msgstr "No event duration selected."
#: vpsr.rsnoeventitemsfoundinical
#, object-pascal-format
msgid "No event items found in \"%s\"."
@ -920,6 +949,18 @@ msgstr "not supported"
msgid "OK"
msgstr "OK"
#: vpsr.rsonehour
msgid "One hour"
msgstr "One hour"
#: vpsr.rsopenendevents
msgid "Open-end Events"
msgstr "Open-end Events"
#: vpsr.rsopenendeventsdurationlbl
msgid "Duration of \"open-end\" events"
msgstr "Duration of \"open-end\" events"
#: vpsr.rsopenitembtn
msgid "&Open Item"
msgstr "&Open Item"
@ -1118,16 +1159,13 @@ msgid "&Print"
msgstr "&Print"
#: vpsr.rsprintformatalreadyexists
#, fuzzy, object-pascal-format
#| msgid ""
#| "A print template named %s already exists.\n"
#| "Please use a different name.\n"
#, object-pascal-format
msgid ""
"A print template named %s already exists.\n"
"Please use a different name.\n"
"Please use a different name."
msgstr ""
"A print template named %s already exists.\n"
"Please use a different name.\n"
"Please use a different name."
#: vpsr.rsprintformatdesigner
msgid "Print template designer"
@ -1419,6 +1457,10 @@ msgstr "T"
msgid "Tuesday"
msgstr "Tuesday"
#: vpsr.rstwohours
msgid "Two hours"
msgstr ""
#: vpsr.rsunabletoopen
#, object-pascal-format
msgid "Error: Unable to open %s"
@ -1844,3 +1886,4 @@ msgstr "Unknown axis specifier: %s"
#: vpsr.sxmldecnotatbeg
msgid "The XML declaration must appear before the first element"
msgstr "The XML declaration must appear before the first element"

View File

@ -17,6 +17,18 @@ msgstr "1 minuutti"
msgid "1 week"
msgstr "1 viikko"
#: vpsr.rs2hours
msgid "2 hours"
msgstr ""
#: vpsr.rs30minutes
msgid "30 mins"
msgstr ""
#: vpsr.rs4hours
msgid "4 hours"
msgstr ""
#: vpsr.rsaddnewresource
msgid "No resources have been defined. Would you like to add one now?"
msgstr ""
@ -432,6 +444,10 @@ msgstr ""
msgid "Error: Duplicate resource."
msgstr ""
#: vpsr.rsdurationforopenendevents
msgid "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events."
msgstr ""
#: vpsr.rseditbtn
msgid "Edit"
msgstr ""
@ -464,7 +480,7 @@ msgstr ""
#, object-pascal-format
msgid ""
"An element named %s already exists.\n"
"Please use a different name.\n"
"Please use a different name."
msgstr ""
#: vpsr.rselements
@ -557,6 +573,10 @@ msgstr ""
msgid "Templates:"
msgstr ""
#: vpsr.rsfourhours
msgid "Four hours"
msgstr ""
#: vpsr.rsfriday
msgid "Friday"
msgstr "Perjantai"
@ -565,6 +585,10 @@ msgstr "Perjantai"
msgid "from your schedule?"
msgstr ""
#: vpsr.rshalfanhour
msgid "Half an hour"
msgstr ""
#: vpsr.rsheight
msgid "Height"
msgstr ""
@ -599,6 +623,10 @@ msgstr ""
msgid "Import checked items"
msgstr ""
#: vpsr.rsimporticalendarevents
msgid "Import iCalendar Events"
msgstr ""
#: vpsr.rsimporticalevent
msgid "Import ICalendar Event"
msgstr ""
@ -832,6 +860,10 @@ msgstr ""
msgid "End of recurrence not specified."
msgstr ""
#: vpsr.rsnoeventdurationselected
msgid "No event duration selected."
msgstr ""
#: vpsr.rsnoeventitemsfoundinical
#, object-pascal-format
msgid "No event items found in \"%s\"."
@ -912,6 +944,18 @@ msgstr ""
msgid "OK"
msgstr ""
#: vpsr.rsonehour
msgid "One hour"
msgstr ""
#: vpsr.rsopenendevents
msgid "Open-end Events"
msgstr ""
#: vpsr.rsopenendeventsdurationlbl
msgid "Duration of \"open-end\" events"
msgstr ""
#: vpsr.rsopenitembtn
msgid "&Open Item"
msgstr ""
@ -1119,7 +1163,7 @@ msgstr ""
#, object-pascal-format
msgid ""
"A print template named %s already exists.\n"
"Please use a different name.\n"
"Please use a different name."
msgstr ""
#: vpsr.rsprintformatdesigner
@ -1408,6 +1452,7 @@ msgid "top line"
msgstr ""
#: vpsr.rstrue
msgctxt "vpsr.rstrue"
msgid "T"
msgstr "T"
@ -1415,6 +1460,10 @@ msgstr "T"
msgid "Tuesday"
msgstr "Tiistai"
#: vpsr.rstwohours
msgid "Two hours"
msgstr ""
#: vpsr.rsunabletoopen
#, object-pascal-format
msgid "Error: Unable to open %s"

View File

@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2022-10-03 23:23+0200\n"
"PO-Revision-Date: 2023-12-18 00:09+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: fr_FR\n"
@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 3.1.1\n"
"X-Generator: Poedit 3.4.1\n"
#: vpsr.rs1day
msgid "1 day"
@ -33,6 +33,18 @@ msgstr "1 minute"
msgid "1 week"
msgstr "1 semaine"
#: vpsr.rs2hours
msgid "2 hours"
msgstr ""
#: vpsr.rs30minutes
msgid "30 mins"
msgstr ""
#: vpsr.rs4hours
msgid "4 hours"
msgstr ""
#: vpsr.rsaddnewresource
msgid "No resources have been defined. Would you like to add one now?"
msgstr "Aucune ressource à été defini. Voulez-vous ajouter une maintenant?"
@ -448,6 +460,10 @@ msgstr "Date d'échéance:"
msgid "Error: Duplicate resource."
msgstr "Erreur: ressource en doublon"
#: vpsr.rsdurationforopenendevents
msgid "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events."
msgstr ""
#: vpsr.rseditbtn
msgid "Edit"
msgstr ""
@ -480,7 +496,7 @@ msgstr ""
#, object-pascal-format
msgid ""
"An element named %s already exists.\n"
"Please use a different name.\n"
"Please use a different name."
msgstr ""
#: vpsr.rselements
@ -573,6 +589,10 @@ msgstr ""
msgid "Templates:"
msgstr ""
#: vpsr.rsfourhours
msgid "Four hours"
msgstr ""
#: vpsr.rsfriday
msgid "Friday"
msgstr "Vendredi"
@ -581,6 +601,10 @@ msgstr "Vendredi"
msgid "from your schedule?"
msgstr "de votre agenda?"
#: vpsr.rshalfanhour
msgid "Half an hour"
msgstr ""
#: vpsr.rsheight
msgid "Height"
msgstr ""
@ -615,6 +639,10 @@ msgstr ""
msgid "Import checked items"
msgstr ""
#: vpsr.rsimporticalendarevents
msgid "Import iCalendar Events"
msgstr ""
#: vpsr.rsimporticalevent
msgid "Import ICalendar Event"
msgstr ""
@ -848,6 +876,10 @@ msgstr ""
msgid "End of recurrence not specified."
msgstr ""
#: vpsr.rsnoeventdurationselected
msgid "No event duration selected."
msgstr ""
#: vpsr.rsnoeventitemsfoundinical
#, object-pascal-format
msgid "No event items found in \"%s\"."
@ -928,6 +960,18 @@ msgstr "non supporté"
msgid "OK"
msgstr "OK"
#: vpsr.rsonehour
msgid "One hour"
msgstr ""
#: vpsr.rsopenendevents
msgid "Open-end Events"
msgstr ""
#: vpsr.rsopenendeventsdurationlbl
msgid "Duration of \"open-end\" events"
msgstr ""
#: vpsr.rsopenitembtn
msgid "&Open Item"
msgstr "&Item ouvert"
@ -1135,7 +1179,7 @@ msgstr "&Imprimer"
#, object-pascal-format
msgid ""
"A print template named %s already exists.\n"
"Please use a different name.\n"
"Please use a different name."
msgstr ""
#: vpsr.rsprintformatdesigner
@ -1432,9 +1476,14 @@ msgstr "A"
msgid "Tuesday"
msgstr "Mardi"
#: vpsr.rstwohours
msgid "Two hours"
msgstr ""
#: vpsr.rsunabletoopen
#, object-pascal-format
msgid "Error: Unable to open %s"
msgstr "Erreur: Incapable d'ouvrir"
msgstr "Erreur: Incapable d'ouvrir %s"
#: vpsr.rsuntitled
msgid "Untitled"
@ -1741,8 +1790,9 @@ msgid "Invalid XML Character found"
msgstr "Caractère XML non valide trouvé"
#: vpsr.sinvalidxmlversion
#, object-pascal-format
msgid "XMLPartner does not support XML specification greater than %s"
msgstr "XMLPartner ne supporte pas la spécification XML supérieure à"
msgstr "XMLPartner ne supporte pas la spécification XML supérieure à %s"
#: vpsr.sinvattrchar
msgid "Invalid character in attribute value: "
@ -1849,6 +1899,7 @@ msgid "End of input while looking for delimiter: "
msgstr "Fin de l'entrée tout en recherchant delimiter:"
#: vpsr.sunknownaxis
#, object-pascal-format
msgid "Unknown axis specifier: %s"
msgstr "Spécificateur d'axe inconnu: %s"

View File

@ -27,6 +27,18 @@ msgstr "1 minuut"
msgid "1 week"
msgstr "1 week"
#: vpsr.rs2hours
msgid "2 hours"
msgstr ""
#: vpsr.rs30minutes
msgid "30 mins"
msgstr ""
#: vpsr.rs4hours
msgid "4 hours"
msgstr ""
#: vpsr.rsaddnewresource
msgid "No resources have been defined. Would you like to add one now?"
msgstr "Er is nog geen hulpmiddel gedefinieerd. Wilt u er nu een toevoegen?"
@ -444,6 +456,10 @@ msgstr "Vervaldatum:"
msgid "Error: Duplicate resource."
msgstr "Fout: Duplicaat Hulpmiddel."
#: vpsr.rsdurationforopenendevents
msgid "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events."
msgstr ""
#: vpsr.rseditbtn
msgid "Edit"
msgstr ""
@ -478,7 +494,7 @@ msgstr ""
#, object-pascal-format
msgid ""
"An element named %s already exists.\n"
"Please use a different name.\n"
"Please use a different name."
msgstr ""
#: vpsr.rselements
@ -571,6 +587,10 @@ msgstr ""
msgid "Templates:"
msgstr ""
#: vpsr.rsfourhours
msgid "Four hours"
msgstr ""
#: vpsr.rsfriday
msgid "Friday"
msgstr "Vrijdag"
@ -579,6 +599,10 @@ msgstr "Vrijdag"
msgid "from your schedule?"
msgstr "van uw tijdschema?"
#: vpsr.rshalfanhour
msgid "Half an hour"
msgstr ""
#: vpsr.rsheight
msgid "Height"
msgstr ""
@ -613,6 +637,10 @@ msgstr ""
msgid "Import checked items"
msgstr ""
#: vpsr.rsimporticalendarevents
msgid "Import iCalendar Events"
msgstr ""
#: vpsr.rsimporticalevent
msgid "Import ICalendar Event"
msgstr ""
@ -846,6 +874,10 @@ msgstr ""
msgid "End of recurrence not specified."
msgstr ""
#: vpsr.rsnoeventdurationselected
msgid "No event duration selected."
msgstr ""
#: vpsr.rsnoeventitemsfoundinical
#, object-pascal-format
msgid "No event items found in \"%s\"."
@ -926,6 +958,18 @@ msgstr "niet ondersteund"
msgid "OK"
msgstr "OK"
#: vpsr.rsonehour
msgid "One hour"
msgstr ""
#: vpsr.rsopenendevents
msgid "Open-end Events"
msgstr ""
#: vpsr.rsopenendeventsdurationlbl
msgid "Duration of \"open-end\" events"
msgstr ""
#: vpsr.rsopenitembtn
msgid "&Open Item"
msgstr "&Open Item"
@ -1133,7 +1177,7 @@ msgstr "&Printen"
#, object-pascal-format
msgid ""
"A print template named %s already exists.\n"
"Please use a different name.\n"
"Please use a different name."
msgstr ""
#: vpsr.rsprintformatdesigner
@ -1432,6 +1476,10 @@ msgstr "W"
msgid "Tuesday"
msgstr "Dinsdag"
#: vpsr.rstwohours
msgid "Two hours"
msgstr ""
#: vpsr.rsunabletoopen
#, object-pascal-format, fuzzy, badformat
#| msgid "Error: Unable to open "

View File

@ -27,6 +27,18 @@ msgstr "1 minuta"
msgid "1 week"
msgstr "1 tydzień"
#: vpsr.rs2hours
msgid "2 hours"
msgstr ""
#: vpsr.rs30minutes
msgid "30 mins"
msgstr ""
#: vpsr.rs4hours
msgid "4 hours"
msgstr ""
#: vpsr.rsaddnewresource
msgid "No resources have been defined. Would you like to add one now?"
msgstr "Brak zdefiniowanych zasobów. Chcesz je dodać teraz?"
@ -133,7 +145,6 @@ msgid "bottom line"
msgstr "dolna linia"
#: vpsr.rsbrowsererror
#| msgid "Unable to start web browser. Make sure you have it properly setup on your system."
msgid "Unable to start web browser. Make sure that it is propertly set up on your system."
msgstr "Nie udało się uruchomić przeglądarki WWW."
@ -443,6 +454,10 @@ msgstr "Data wykonania:"
msgid "Error: Duplicate resource."
msgstr "Błąd: Zduplikowane zasoby."
#: vpsr.rsdurationforopenendevents
msgid "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events."
msgstr ""
#: vpsr.rseditbtn
msgid "Edit"
msgstr "Edytuj"
@ -568,6 +583,10 @@ msgstr "Format:"
msgid "Templates:"
msgstr "Formaty:"
#: vpsr.rsfourhours
msgid "Four hours"
msgstr ""
#: vpsr.rsfriday
msgid "Friday"
msgstr "Piątek"
@ -576,6 +595,10 @@ msgstr "Piątek"
msgid "from your schedule?"
msgstr "Z twojego harmonogramu?"
#: vpsr.rshalfanhour
msgid "Half an hour"
msgstr ""
#: vpsr.rsheight
msgid "Height"
msgstr "Wysokość"
@ -610,6 +633,10 @@ msgstr "Pliki iCalendar (*.ical;*.ics)|*.ical;*.ics"
msgid "Import checked items"
msgstr "Importuj zaznaczenie"
#: vpsr.rsimporticalendarevents
msgid "Import iCalendar Events"
msgstr ""
#: vpsr.rsimporticalevent
msgid "Import ICalendar Event"
msgstr "Importuj zdarzenie z ICalendar"
@ -843,6 +870,10 @@ msgstr "Nie określono interwału dnia."
msgid "End of recurrence not specified."
msgstr "Brak końca rekurencji"
#: vpsr.rsnoeventdurationselected
msgid "No event duration selected."
msgstr ""
#: vpsr.rsnoeventitemsfoundinical
#, object-pascal-format
msgid "No event items found in \"%s\"."
@ -923,6 +954,18 @@ msgstr "nie wspierane"
msgid "OK"
msgstr "OK"
#: vpsr.rsonehour
msgid "One hour"
msgstr ""
#: vpsr.rsopenendevents
msgid "Open-end Events"
msgstr ""
#: vpsr.rsopenendeventsdurationlbl
msgid "Duration of \"open-end\" events"
msgstr ""
#: vpsr.rsopenitembtn
msgid "&Open Item"
msgstr "Otwórz pozycję"
@ -1126,7 +1169,7 @@ msgid "&Print"
msgstr "&Drukuj"
#: vpsr.rsprintformatalreadyexists
#, object-pascal-format
#, object-pascal-format, fuzzy, badformat
msgid ""
"A print template named %s already exists.\n"
"Please use a different name."
@ -1251,6 +1294,7 @@ msgid "Save print template to file?"
msgstr "Zapisać dane do pliku?"
#: vpsr.rssaveformatchangestofilename
#, object-pascal-format
msgid "Save print template to \"%s\"?"
msgstr "Zapisać format do \"%s\"?"
@ -1425,7 +1469,12 @@ msgstr "W"
msgid "Tuesday"
msgstr "Wtorek"
#: vpsr.rstwohours
msgid "Two hours"
msgstr ""
#: vpsr.rsunabletoopen
#, object-pascal-format
msgid "Error: Unable to open %s"
msgstr "Błąd: Nie mogę otworzyć %s"

View File

@ -17,6 +17,18 @@ msgstr ""
msgid "1 week"
msgstr ""
#: vpsr.rs2hours
msgid "2 hours"
msgstr ""
#: vpsr.rs30minutes
msgid "30 mins"
msgstr ""
#: vpsr.rs4hours
msgid "4 hours"
msgstr ""
#: vpsr.rsaddnewresource
msgid "No resources have been defined. Would you like to add one now?"
msgstr ""
@ -426,6 +438,10 @@ msgstr ""
msgid "Error: Duplicate resource."
msgstr ""
#: vpsr.rsdurationforopenendevents
msgid "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events."
msgstr ""
#: vpsr.rseditbtn
msgid "Edit"
msgstr ""
@ -551,6 +567,10 @@ msgstr ""
msgid "Templates:"
msgstr ""
#: vpsr.rsfourhours
msgid "Four hours"
msgstr ""
#: vpsr.rsfriday
msgid "Friday"
msgstr ""
@ -559,6 +579,10 @@ msgstr ""
msgid "from your schedule?"
msgstr ""
#: vpsr.rshalfanhour
msgid "Half an hour"
msgstr ""
#: vpsr.rsheight
msgid "Height"
msgstr ""
@ -593,6 +617,10 @@ msgstr ""
msgid "Import checked items"
msgstr ""
#: vpsr.rsimporticalendarevents
msgid "Import iCalendar Events"
msgstr ""
#: vpsr.rsimporticalevent
msgid "Import ICalendar Event"
msgstr ""
@ -824,6 +852,10 @@ msgstr ""
msgid "End of recurrence not specified."
msgstr ""
#: vpsr.rsnoeventdurationselected
msgid "No event duration selected."
msgstr ""
#: vpsr.rsnoeventitemsfoundinical
#, object-pascal-format
msgid "No event items found in \"%s\"."
@ -904,6 +936,18 @@ msgstr ""
msgid "OK"
msgstr ""
#: vpsr.rsonehour
msgid "One hour"
msgstr ""
#: vpsr.rsopenendevents
msgid "Open-end Events"
msgstr ""
#: vpsr.rsopenendeventsdurationlbl
msgid "Duration of \"open-end\" events"
msgstr ""
#: vpsr.rsopenitembtn
msgid "&Open Item"
msgstr ""
@ -1398,6 +1442,10 @@ msgstr ""
msgid "Tuesday"
msgstr ""
#: vpsr.rstwohours
msgid "Two hours"
msgstr ""
#: vpsr.rsunabletoopen
#, object-pascal-format
msgid "Error: Unable to open %s"

View File

@ -27,6 +27,18 @@ msgstr "1 минута"
msgid "1 week"
msgstr "1 неделя"
#: vpsr.rs2hours
msgid "2 hours"
msgstr ""
#: vpsr.rs30minutes
msgid "30 mins"
msgstr ""
#: vpsr.rs4hours
msgid "4 hours"
msgstr ""
#: vpsr.rsaddnewresource
msgid "No resources have been defined. Would you like to add one now?"
msgstr "Не определены ресурсы. Вы хотите добавить ресурс сейчас?"
@ -442,6 +454,10 @@ msgstr "Срок:"
msgid "Error: Duplicate resource."
msgstr "Ошибка: Дубликат ресурсов."
#: vpsr.rsdurationforopenendevents
msgid "The calendar contains events without an end time and without a duration. Please define which duration will be assumed for these events."
msgstr ""
#: vpsr.rseditbtn
msgid "Edit"
msgstr "Изменить"
@ -474,7 +490,7 @@ msgstr ""
#, object-pascal-format
msgid ""
"An element named %s already exists.\n"
"Please use a different name.\n"
"Please use a different name."
msgstr ""
#: vpsr.rselements
@ -567,6 +583,10 @@ msgstr ""
msgid "Templates:"
msgstr "Форматы:"
#: vpsr.rsfourhours
msgid "Four hours"
msgstr ""
#: vpsr.rsfriday
msgid "Friday"
msgstr "Пятница"
@ -575,6 +595,10 @@ msgstr "Пятница"
msgid "from your schedule?"
msgstr "из вашего расписания?"
#: vpsr.rshalfanhour
msgid "Half an hour"
msgstr ""
#: vpsr.rsheight
msgid "Height"
msgstr "Высота"
@ -609,6 +633,10 @@ msgstr ""
msgid "Import checked items"
msgstr ""
#: vpsr.rsimporticalendarevents
msgid "Import iCalendar Events"
msgstr ""
#: vpsr.rsimporticalevent
msgid "Import ICalendar Event"
msgstr ""
@ -842,6 +870,10 @@ msgstr ""
msgid "End of recurrence not specified."
msgstr ""
#: vpsr.rsnoeventdurationselected
msgid "No event duration selected."
msgstr ""
#: vpsr.rsnoeventitemsfoundinical
#, object-pascal-format
msgid "No event items found in \"%s\"."
@ -922,6 +954,18 @@ msgstr "не поддерживается"
msgid "OK"
msgstr ""
#: vpsr.rsonehour
msgid "One hour"
msgstr ""
#: vpsr.rsopenendevents
msgid "Open-end Events"
msgstr ""
#: vpsr.rsopenendeventsdurationlbl
msgid "Duration of \"open-end\" events"
msgstr ""
#: vpsr.rsopenitembtn
msgid "&Open Item"
msgstr "Открыть эелемент"
@ -1129,7 +1173,7 @@ msgstr "Печать"
#, object-pascal-format
msgid ""
"A print template named %s already exists.\n"
"Please use a different name.\n"
"Please use a different name."
msgstr ""
#: vpsr.rsprintformatdesigner
@ -1426,7 +1470,12 @@ msgstr ""
msgid "Tuesday"
msgstr "Вторник"
#: vpsr.rstwohours
msgid "Two hours"
msgstr ""
#: vpsr.rsunabletoopen
#, object-pascal-format
msgid "Error: Unable to open %s"
msgstr "Ошибка открытия %s"

View File

@ -202,6 +202,16 @@ resourcestring
RSAssignedCategory = 'Assigned category';
RSEventItems = 'Event items';
RSImportCheckedItems = 'Import checked items';
RSOpenEndEventsDurationLbl= 'Duration of "open-end" events';
RSDurationForOpenEndEvents= 'The calendar contains events without an end time and without a duration. '+
'Please define which duration will be assumed for these events.';
RSNoEventDurationSelected = 'No event duration selected.';
RSImportICalendarEvents = 'Import iCalendar Events';
RSOpenEndEvents = 'Open-end Events';
RSHalfAnHour = 'Half an hour';
RSOneHour = 'One hour';
RSTwoHours = 'Two hours';
RSFourHours = 'Four hours';
{Task Specific}
RSConfirmDeleteTask = 'Delete this task from your list?';
@ -339,7 +349,10 @@ resourcestring
RSOpenItemBtn = '&Open Item';
RS1Minute = '1 minute';
RSXMinutes = '%d minutes';
RS30Minutes = '30 mins';
RS1Hour = '1 hour';
RS2Hours = '2 hours';
RS4Hours = '4 hours';
RSXHours = '%d hours';
RS1Day = '1 day';
RSXDays = '%d days';

View File

@ -74,6 +74,7 @@ type
FAlarm: TVpICalAlarm;
FCategories: TStrings;
FPickedCategory: Integer;
FOpenEnd: Boolean;
function GetCategory(AIndex: Integer): String;
function GetCategoryCount: Integer;
function GetEndTime(UTC: Boolean): TDateTime;
@ -103,6 +104,7 @@ type
property RecurrenceByXXX: String read FRecurrenceByXXX write FRecurrenceByXXX;
property PickedCategory: Integer read FPickedCategory write FPickedCategory;
property UID: String read FUID write FUID;
property OpenEnd: Boolean read FOpenEnd;
end;
TVpICalToDo = class(TVpICalEntry)
@ -175,6 +177,8 @@ type
destructor Destroy; override;
procedure Add(AEntry: TVpICalEntry);
procedure Clear;
function ContainsOpenEndEvents: Boolean;
procedure FixOpenEndEvents(ADuration: TDateTime);
procedure LoadFromFile(const AFileName: String);
procedure LoadFromStream(const AStream: TStream);
procedure SaveToFile(const AFileName: String);
@ -190,7 +194,7 @@ type
implementation
uses
VpConst, VpBase;
VpConst, VpMisc, VpBase;
const
DATE_FORMAT = 'yyyymmdd';
@ -490,15 +494,9 @@ begin
end;
end;
end;
{
if (FEndTime = NO_DATE) and (FStartTime <> NO_DATE) then
begin
if FDuration = 0 then
FEndTime := FStartTime + 1.0/24 // 1 hour default
else
FEndTime := FStartTime + FDuration;
end;
}
if (FEndTime = NO_DATE) and ((FDuration = 0) or (FDuration = NO_DATE)) then
FOpenEnd := true;
end;
function TVpICalEvent.Categories: TStrings;
@ -918,6 +916,33 @@ begin
SetLength(FEntries, 0);
end;
function TVpICalendar.ContainsOpenEndEvents: Boolean;
var
i: Integer;
begin
for i := 0 to High(FEntries) do
if (FEntries[i] is TVpICalEvent) and TVpICalEvent(FEntries[i]).OpenEnd then
exit(true);
Result := false;
end;
procedure TVpICalendar.FixOpenEndEvents(ADuration: TDateTime);
var
i: Integer;
ev: TVpICalEvent;
startTime: TDateTime;
begin
for i := 0 to High(FEntries) do
if (FEntries[i] is TVpICalEvent) then
begin
ev := TVpICalEvent(FEntries[i]);
if ev.OpenEnd then begin
startTime := ev.StartTime[true];
ev.EndTime[true] := startTime + ADuration;
end;
end;
end;
function TVpICalendar.GetCount: Integer;
begin
Result := Length(FEntries);

View File

@ -4,17 +4,88 @@ inherited VpImportPreviewICalEventForm: TVpImportPreviewICalEventForm
Caption = ''
ClientHeight = 400
ClientWidth = 667
OnActivate = FormActivate
inherited ButtonPanel: TPanel
Top = 369
Width = 655
ClientWidth = 655
inherited btnExecute: TButton
Left = 446
BorderSpacing.Left = 8
OnClick = btnExecuteClick
end
inherited btnCancel: TButton
Left = 593
Width = 62
AutoSize = True
end
object lblOpenEndDuration: TLabel[2]
AnchorSideLeft.Control = ButtonPanel
AnchorSideTop.Control = ButtonPanel
AnchorSideTop.Side = asrCenter
Left = 6
Height = 15
Top = 5
Width = 163
BorderSpacing.Left = 6
BorderSpacing.Right = 8
Caption = 'Duration of "open end" events:'
Visible = False
end
object rbOpenEndDuration30mins: TRadioButton[3]
AnchorSideLeft.Control = lblOpenEndDuration
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = ButtonPanel
AnchorSideTop.Side = asrCenter
Left = 177
Height = 19
Top = 3
Width = 54
BorderSpacing.Right = 9
Caption = '30 min'
TabOrder = 2
Visible = False
end
object rbOpenEndDuration1Hr: TRadioButton[4]
AnchorSideLeft.Control = rbOpenEndDuration30mins
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = ButtonPanel
AnchorSideTop.Side = asrCenter
Left = 240
Height = 19
Top = 3
Width = 52
BorderSpacing.Right = 8
Caption = '1 hour'
TabOrder = 3
Visible = False
end
object rbOpenEndDuration2Hrs: TRadioButton[5]
AnchorSideLeft.Control = rbOpenEndDuration1Hr
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = ButtonPanel
AnchorSideTop.Side = asrCenter
Left = 300
Height = 19
Top = 3
Width = 57
BorderSpacing.Right = 8
Caption = '2 hours'
TabOrder = 4
Visible = False
end
object rbOpenEndDuration4Hrs: TRadioButton[6]
AnchorSideLeft.Control = rbOpenEndDuration2Hrs
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = ButtonPanel
AnchorSideTop.Side = asrCenter
Left = 365
Height = 19
Top = 3
Width = 57
Caption = '4 hours'
TabOrder = 5
Visible = False
end
end
end

View File

@ -1,3 +1,8 @@
{"version":1,"strings":[
{"hash":4294967295,"name":"tvpimportpreviewicaleventform.caption","sourcebytes":[],"value":""}
{"hash":4294967295,"name":"tvpimportpreviewicaleventform.caption","sourcebytes":[],"value":""},
{"hash":75933738,"name":"tvpimportpreviewicaleventform.lblopenendduration.caption","sourcebytes":[68,117,114,97,116,105,111,110,32,111,102,32,34,111,112,101,110,32,101,110,100,34,32,101,118,101,110,116,115,58],"value":"Duration of \"open end\" events:"},
{"hash":56783870,"name":"tvpimportpreviewicaleventform.rbopenendduration30mins.caption","sourcebytes":[51,48,32,109,105,110],"value":"30 min"},
{"hash":53933762,"name":"tvpimportpreviewicaleventform.rbopenendduration1hr.caption","sourcebytes":[49,32,104,111,117,114],"value":"1 hour"},
{"hash":74411171,"name":"tvpimportpreviewicaleventform.rbopenendduration2hrs.caption","sourcebytes":[50,32,104,111,117,114,115],"value":"2 hours"},
{"hash":107965603,"name":"tvpimportpreviewicaleventform.rbopenendduration4hrs.caption","sourcebytes":[52,32,104,111,117,114,115],"value":"4 hours"}
]}

View File

@ -4,27 +4,43 @@ unit VpImportPreview_ICalEvent;
interface
uses lazlogger,
Classes, SysUtils, Forms, Controls, Graphics, Dialogs,
VpData, VpBaseDS, VpImportPreview, VpICal, Grids;
uses
LCLVersion, Classes, SysUtils, Forms, Controls, Graphics, Dialogs,
VpData, VpBaseDS, VpImportPreview, VpICal, Grids, StdCtrls, Spin;
type
{ TVpImportPreviewICalEventForm }
TVpImportPreviewICalEventForm = class(TVpImportPreviewForm)
lblOpenEndDuration: TLabel;
rbOpenEndDuration30mins: TRadioButton;
rbOpenEndDuration1Hr: TRadioButton;
rbOpenEndDuration2Hrs: TRadioButton;
rbOpenEndDuration4Hrs: TRadioButton;
procedure btnExecuteClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure GridGetEditText(Sender: TObject; {%H-}ACol, {%H-}ARow: Integer;
var Value: string);
procedure GridSetEditText(Sender: TObject; {%H-}ACol, {%H-}ARow: Integer;
const Value: string);
private
FActivated: Boolean;
FCalendar: TVpICalendar;
FDefaultCategory: String;
FTimeFormat: String;
function GetEventText(AEvent: TVpICalEvent): String;
procedure SetCalendar(const AValue: TVpICalendar);
{$IF LCL_FullVersion >= 3000000}
private
FCanCloseTaskDialog: Boolean;
procedure OpenEndEventsDialog;
procedure OpenendEventsDialogButtonClicked(Sender: TObject;
AModalResult: TModalResult; var ACanClose: Boolean);
procedure OpenEndEventsDialogRadioButtonClicked(Sender: TObject);
{$ENDIF}
protected
function GetCellText(ACol, ARow: Integer): String; override;
procedure PrepareItems; override;
@ -55,6 +71,12 @@ begin
Grid.OnSetEditText := @GridSetEditText;
Caption := RSImportICalEvent;
lblOpenEndDuration.Caption := RSOpenEndEventsDurationLbl;
rbOpenEndDuration30mins.Caption := RS30Minutes;
rbOpenEndDuration1Hr.Caption := RS1Hour;
rbOpenEndDuration2Hrs.Caption := RS2Hours;
rbOpenEndDuration4Hrs.Caption := RS4Hours;
FTimeFormat := 'c'; // short date + long time format
end;
@ -196,6 +218,49 @@ begin
Value := Grid.Columns[2].PickList[event.PickedCategory];
end;
procedure TVpImportPreviewICalEventForm.btnExecuteClick(Sender: TObject);
begin
if FCalendar.ContainsOpenEndEvents then
begin
{$IF LCL_FullVersion >= 3000000}
OpenEndEventsDialog;
{$ELSE}
if not (rbOpenEndDuration30mins.Checked or rbOpenEndDuration1Hr.Checked or
rbOpenEndDuration2Hrs.Checked or rbOpenEndDuration4Hrs.Checked) then
begin
MessageDlg(RSDurationForOpenEndEvents, mtInformation, [mbOK], 0);
ModalResult := mrNone;
exit;
end;
if rbOpenEndDuration30mins.Checked then
FCalendar.FixOpenEndEvents(0.5/24)
else if rbOpenEndDuration1Hr.Checked then
FCalendar.FixOpenEndEvents(1.0/24)
else if rbOpenEndDuration2Hrs.Checked then
FCalendar.FixOpenEndEvents(2.0/24)
else if rbOpenEndDuration4Hrs.Checked then
FCalendar.FixOpenEndEvents(4.0/24);
{$IFEND}
end;
end;
procedure TVpImportPreviewICalEventForm.FormActivate(Sender: TObject);
var
x1: Integer = 0;
x2: Integer;
begin
if not FActivated then
begin
FActivated := true;
{$IF LCL_FullVersion < 3000000} // This part is only seen without Taskdialog
x1 := rbOpenEndDuration4Hrs.Left + rbOpenEndDuration4Hrs.Width;
{$IFEND}
x2 := ClientWidth - btnExecute.Left + btnExecute.BorderSpacing.Left;
Constraints.MinWidth := x1 + x2;
if Width < Constraints.MinWidth then Width := 0;
end;
end;
procedure TVpImportPreviewICalEventForm.GridSetEditText(Sender: TObject; ACol,
ARow: Integer; const Value: string);
var
@ -218,6 +283,54 @@ begin
Result := item.Checked;
end;
{$IF LCL_FullVersion >= 3000000}
procedure TVpImportPreviewICalEventForm.OpenendEventsDialog;
const
DURATIONS: array[0..3] of Double = (0.5/24, 1.0/24, 2.0/24, 4.0/24);
var
dlg: TTaskDialog;
begin
dlg := TTaskDialog.Create(nil);
try
dlg.Caption := RSImportICalendarEvents;
dlg.Title := RSOpenEndEvents;
dlg.Text := RSDurationForOpenEndEvents;
dlg.RadioButtons.Add.Caption := RSHalfAnHour;
dlg.RadioButtons.Add.Caption := RSOneHour;
dlg.RadioButtons.Add.Caption := RSTwoHours;
dlg.RadioButtons.Add.Caption := RSFourHours;
dlg.OnButtonClicked := @OpenEndEventsDialogButtonClicked;
dlg.OnRadioButtonClicked := @OpenEndEventsDialogRadioButtonClicked;
dlg.Flags := dlg.Flags + [tfNoDefaultRadioButton];
dlg.Execute;
if dlg.ModalResult = mrOK then
FCalendar.FixOpenEndEvents(DURATIONS[dlg.RadioButton.Index]);
finally
dlg.Free;
end;
end;
procedure TVpImportPreviewICalEventForm.OpenendEventsDialogButtonClicked(
Sender: TObject; AModalResult: TModalResult; var ACanClose: Boolean);
var
i: Integer;
begin
if AModalResult = mrCancel then
exit;
with TTaskDialog(Sender) do
ACanClose := FCanCloseTaskDialog;
if not ACanClose then
MessageDlg(RSNoEventDurationSelected, mtError, [mbOK], 0);
end;
procedure TVpImportPreviewICalEventForm.OpenEndEventsDialogRadioButtonClicked(Sender: TObject);
begin
FCanCloseTaskDialog := true;
end;
{$ENDIF}
procedure TVpImportPreviewICalEventForm.PrepareItems;
var
i: Integer;
@ -240,6 +353,7 @@ begin
FItems.Clear;
if (FCalendar <> nil) and (Datastore <> nil) then
begin
for i := 0 to FCalendar.Count-1 do
if (FCalendar.Entry[i] is TVpICalEvent) then
begin
@ -255,6 +369,15 @@ begin
event.PickedCategory := 0;
end;
{$IF LCL_FullVersion < 3000000}
lblOpenEndDuration.Visible := FCalendar.ContainsOpenEndEvents;
rbOpenEndDuration30mins.Visible := lblOpenEndDuration.Visible;
rbOpenEndDuration1Hr.Visible := lblOpenEndDuration.Visible;
rbOpenEndDuration2Hrs.Visible := lblOpenEndDuration.Visible;
rbOpenEndDuration4Hrs.Visible := lblOpenEndDuration.Visible;
{$IFEND}
end;
inherited;
end;