You've already forked lazarus-ccr
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:
@ -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"
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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 "
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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';
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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"}
|
||||
]}
|
||||
|
@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user