mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-10-18 01:38:12 +00:00
commit
5911563b0f
336 files changed
+10907
-3498
No files matched your search
@@ -11,16 +11,16 @@ vtodo_class2 = "(مهمة سرية)";
|
||||
"The event \"%{Summary}\" was created" = "أُنشِئ الحدث \"%{Summary}\"";
|
||||
"The event \"%{Summary}\" was deleted" = "حُذِفَ الحدث \"%{Summary}\"";
|
||||
"The event \"%{Summary}\" was updated" = "حُدِّث الحدث \"%{Summary}\"";
|
||||
"The following attendees(s) were notified:" = "تم ابلاغ المدعو (المدعويين) الأتي أسماءهم:";
|
||||
"The following attendees(s) were added:" = "تم أضافة المدعو (المدعويين) الأتي أسماءهم:";
|
||||
"The following attendees(s) were removed:" = "تم مسح المدعو (المدعويين) الأتي أسماءهم:";
|
||||
"The following attendees(s) were notified" = "تم ابلاغ المدعو (المدعويين) الأتي أسماءهم";
|
||||
"The following attendees(s) were added" = "تم أضافة المدعو (المدعويين) الأتي أسماءهم";
|
||||
"The following attendees(s) were removed" = "تم مسح المدعو (المدعويين) الأتي أسماءهم";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "التقويم:";
|
||||
"startDate_label" = "البداية:";
|
||||
"endDate_label" = "النهاية:";
|
||||
"calendar_label" = "التقويم";
|
||||
"startDate_label" = "البداية";
|
||||
"endDate_label" = "النهاية";
|
||||
"due_label" = "تاريخ الاستحقاق:";
|
||||
"location_label" = "المكان:";
|
||||
"location_label" = "المكان";
|
||||
"summary_label" = "الملخص:";
|
||||
"comment_label" = "التعليق:";
|
||||
|
||||
|
||||
@@ -12,16 +12,16 @@ vtodo_class2 = "(Isilpeko egitekoa)";
|
||||
"The event \"%{Summary}\" was created" = "\"%{Summary}\" ekitaldia sortu da";
|
||||
"The event \"%{Summary}\" was deleted" = "\"%{Summary}\" ekitaldia ezabatu da";
|
||||
"The event \"%{Summary}\" was updated" = "\"%{Summary}\" ekitaldia eguneratu da";
|
||||
"The following attendees(s) were notified:" = "Ondorengo partaidea(k) jakinarazi d(ir)a:";
|
||||
"The following attendees(s) were added:" = "Ondorengo partaidea(k) gehitu d(ir)a:";
|
||||
"The following attendees(s) were removed:" = "Ondorengo partaidea(k) ezabatu d(ir)a:";
|
||||
"The following attendees(s) were notified" = "Ondorengo partaidea(k) jakinarazi d(ir)a";
|
||||
"The following attendees(s) were added" = "Ondorengo partaidea(k) gehitu d(ir)a";
|
||||
"The following attendees(s) were removed" = "Ondorengo partaidea(k) ezabatu d(ir)a";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Egutegia";
|
||||
"startDate_label" = "Hasi:";
|
||||
"endDate_label" = "Amaitu:";
|
||||
"startDate_label" = "Hasi";
|
||||
"endDate_label" = "Amaitu";
|
||||
"due_label" = "Epemuga:";
|
||||
"location_label" = "Kokapena:";
|
||||
"location_label" = "Kokapena";
|
||||
"summary_label" = "Laburpena:";
|
||||
"comment_label" = "Iruzkina:";
|
||||
|
||||
|
||||
@@ -12,16 +12,16 @@ vtodo_class2 = "(Tarefa Confidencial)";
|
||||
"The event \"%{Summary}\" was created" = "O evento \"%{Summary}\" foi criado";
|
||||
"The event \"%{Summary}\" was deleted" = "O evento \"%{Summary}\" foi removido";
|
||||
"The event \"%{Summary}\" was updated" = "O evento \"%{Summary}\" foi atualizado";
|
||||
"The following attendees(s) were notified:" = "Estes participantes foram notificados:";
|
||||
"The following attendees(s) were added:" = "Estes participantes foram adicionados:";
|
||||
"The following attendees(s) were removed:" = "Estes participantes foram removidos:";
|
||||
"The following attendees(s) were notified" = "Estes participantes foram notificados";
|
||||
"The following attendees(s) were added" = "Estes participantes foram adicionados";
|
||||
"The following attendees(s) were removed" = "Estes participantes foram removidos";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Calendário:";
|
||||
"startDate_label" = "Início:";
|
||||
"endDate_label" = "Fim:";
|
||||
"calendar_label" = "Calendário";
|
||||
"startDate_label" = "Início";
|
||||
"endDate_label" = "Fim";
|
||||
"due_label" = "Data de Vencimento:";
|
||||
"location_label" = "Local:";
|
||||
"location_label" = "Local";
|
||||
"summary_label" = "Resumo:";
|
||||
"comment_label" = "Comentário:";
|
||||
|
||||
|
||||
@@ -12,16 +12,16 @@ vtodo_class2 = "(Tasca confidencial)";
|
||||
"The event \"%{Summary}\" was created" = "Es va crear l'esdeveniment \"%{Summary}\" ";
|
||||
"The event \"%{Summary}\" was deleted" = "Es va esborrar l'esdeveniment \"%{Summary}\" ";
|
||||
"The event \"%{Summary}\" was updated" = "Es va modificar l'esdeveniment \"%{Summary}\" ";
|
||||
"The following attendees(s) were notified:" = "I va notificar als següents participants: ";
|
||||
"The following attendees(s) were added:" = "Es van agregar els següents participants: ";
|
||||
"The following attendees(s) were removed:" = "Heu suprimit els assistents següents:";
|
||||
"The following attendees(s) were notified" = "I va notificar als següents participants ";
|
||||
"The following attendees(s) were added" = "Es van agregar els següents participants ";
|
||||
"The following attendees(s) were removed" = "Heu suprimit els assistents següents";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Calendari:";
|
||||
"startDate_label" = "Inici:";
|
||||
"endDate_label" = "Final:";
|
||||
"calendar_label" = "Calendari";
|
||||
"startDate_label" = "Inici";
|
||||
"endDate_label" = "Final";
|
||||
"due_label" = "Data límit:";
|
||||
"location_label" = "Lloc:";
|
||||
"location_label" = "Lloc";
|
||||
"summary_label" = "Resum:";
|
||||
"comment_label" = "Comentari:";
|
||||
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
"Inviting the following persons is prohibited:" = "禁止邀請以下人士:";
|
||||
"Personal Calendar" = "個人行事曆";
|
||||
vevent_class0 = "(公開事件)";
|
||||
vevent_class1 = "(私人事件)";
|
||||
vevent_class2 = "(機密事件)";
|
||||
|
||||
vtodo_class0 = "(公開任務)";
|
||||
vtodo_class1 = "(私人任務)";
|
||||
vtodo_class2 = "(機密任務)";
|
||||
|
||||
/* Receipts */
|
||||
"The event \"%{Summary}\" was created" = "事件 \"%{Summary}\" 已建立";
|
||||
"The event \"%{Summary}\" was deleted" = "事件\"%{Summary}\" 已刪除";
|
||||
"The event \"%{Summary}\" was updated" = "事件\"%{Summary}\" 已異動";
|
||||
"The following attendees(s) were notified" = "已通知下列出席者";
|
||||
"The following attendees(s) were added" = "已增加下列出席者";
|
||||
"The following attendees(s) were removed" = "已移除下列出席者";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "行事曆";
|
||||
"startDate_label" = "開始";
|
||||
"endDate_label" = "結束";
|
||||
"due_label" = "截止日期:";
|
||||
"location_label" = "地點";
|
||||
"summary_label" = "事件主題:";
|
||||
"comment_label" = "備註:";
|
||||
|
||||
/* Invitation */
|
||||
"Event Invitation: \"%{Summary}\"" = "邀請事件: \"%{Summary}\"";
|
||||
"(sent by %{SentBy}) " = "(來自 %{SentBy})";
|
||||
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText} 邀請您參加 %{Summary}。\n\n起始日期: %{StartDate}\n結束日期: %{EndDate}\n備註說明: %{Description}";
|
||||
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText} 邀請您參加 %{Summary}。\n\n起始時間: %{StartDate} %{StartTime}\n結束時間: %{EndDate} %{EndTime}\n備註說明: %{Description}";
|
||||
|
||||
/* Deletion */
|
||||
"Event Cancelled: \"%{Summary}\"" = "取消事件 : \"%{Summary}\"";
|
||||
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
|
||||
= "%{Organizer} %{SentByText} 己取消事件: %{Summary}。\n\n起始日期: %{StartDate}\n結束日期: %{EndDate}\n備註說明: %{Description}";
|
||||
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
|
||||
= "%{Organizer} %{SentByText} 己取消了事件: %{Summary}。\n\n起始時間: %{StartDate} %{StartTime}\n結束時間: %{EndDate} %{EndTime}\n備註說明: %{Description}";
|
||||
|
||||
/* Update */
|
||||
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
|
||||
= " 安排於%{OldStartDate} 的事件 \"%{Summary}\" 已變更";
|
||||
"The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed"
|
||||
= "安排於 %{OldStartDate} %{OldStartTime} 的事件 \"%{Summary}\" 已變更";
|
||||
"The following parameters have changed in the \"%{Summary}\" meeting:"
|
||||
= "已變更會議 \"%{Summary}\" 下列參數:";
|
||||
"Please accept or decline those changes."
|
||||
= "請接受或拒絶這些變更。";
|
||||
|
||||
/* Reply */
|
||||
"Accepted invitation: \"%{Summary}\"" = "接受邀請: \"%{Summary}\"";
|
||||
"Declined invitation: \"%{Summary}\"" = "拒絶邀請: \"%{Summary}\"";
|
||||
"Delegated invitation: \"%{Summary}\"" = "\"委派出席: \"%{Summary}\"";
|
||||
"Not yet decided on invitation: \"%{Summary}\"" = "未處理的邀請: \"%{Summary}\"";
|
||||
"%{Attendee} %{SentByText}has accepted your event invitation."
|
||||
= "\"%{Attendee} %{SentByText}已接受了您的邀請。";
|
||||
"%{Attendee} %{SentByText}has declined your event invitation."
|
||||
= "\"%{Attendee} %{SentByText}已拒絶了您的邀請。";
|
||||
"%{Attendee} %{SentByText}has delegated the invitation to %{Delegate}."
|
||||
= "\"%{Attendee} %{SentByText}已將您的邀請委任給%{Delegate}。";
|
||||
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
|
||||
= "%{Attendee} %{SentByText}還沒有決定是否接受您的邀請。";
|
||||
|
||||
/* Resources */
|
||||
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "無法讀取資源: \"%{Cn} %{SystemEmail}\"";
|
||||
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "\"%{Cn} %{SystemEmail}\" 的衝突事件己達上限 ( %{NumberOfSimultaneousBookings} )。衝突事件 \"%{EventTitle}\" 的起始日期為 %{StartDate}。";
|
||||
@@ -12,16 +12,16 @@ vtodo_class2 = "(Skrytý úkol)";
|
||||
"The event \"%{Summary}\" was created" = "Událost \"%{Summary}\" byla vytvořena";
|
||||
"The event \"%{Summary}\" was deleted" = "Událost \"%{Summary}\" byla smazána";
|
||||
"The event \"%{Summary}\" was updated" = "Událost \"%{Summary}\" byla upravena";
|
||||
"The following attendees(s) were notified:" = "Následující účastníci byli upozorněni:";
|
||||
"The following attendees(s) were added:" = "Následující účastníci byli přidáni:";
|
||||
"The following attendees(s) were removed:" = "Následující účastníci byli odebráni:";
|
||||
"The following attendees(s) were notified" = "Následující účastníci byli upozorněni";
|
||||
"The following attendees(s) were added" = "Následující účastníci byli přidáni";
|
||||
"The following attendees(s) were removed" = "Následující účastníci byli odebráni";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Kalendář:";
|
||||
"startDate_label" = "Začátek:";
|
||||
"endDate_label" = "Konec:";
|
||||
"calendar_label" = "Kalendář";
|
||||
"startDate_label" = "Začátek";
|
||||
"endDate_label" = "Konec";
|
||||
"due_label" = "Termín:";
|
||||
"location_label" = "Místo:";
|
||||
"location_label" = "Místo";
|
||||
"summary_label" = "Název:";
|
||||
"comment_label" = "Komentář:";
|
||||
|
||||
|
||||
@@ -11,16 +11,16 @@ vtodo_class2 = "(Hemmelig opgave)";
|
||||
"The event \"%{Summary}\" was created" = "Begivenheden \"%{Summary}\" blev oprettet";
|
||||
"The event \"%{Summary}\" was deleted" = "Begivenheden \"%{Summary}\" blev slettet";
|
||||
"The event \"%{Summary}\" was updated" = "Begivenheden \"%{Summary}\" blev opdateret";
|
||||
"The following attendees(s) were notified:" = "Følgende deltager(e) blev underrettet:";
|
||||
"The following attendees(s) were added:" = "Følgende deltager(e) blev tilføjet:";
|
||||
"The following attendees(s) were removed:" = "Følgende deltager(e) blev fjernet:";
|
||||
"The following attendees(s) were notified" = "Følgende deltager(e) blev underrettet";
|
||||
"The following attendees(s) were added" = "Følgende deltager(e) blev tilføjet";
|
||||
"The following attendees(s) were removed" = "Følgende deltager(e) blev fjernet";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Kalender:";
|
||||
"startDate_label" = "Start:";
|
||||
"endDate_label" = "Slut:";
|
||||
"calendar_label" = "Kalender";
|
||||
"startDate_label" = "Start";
|
||||
"endDate_label" = "Slut";
|
||||
"due_label" = "Forfaldsdato:";
|
||||
"location_label" = "Sted:";
|
||||
"location_label" = "Sted";
|
||||
"summary_label" = "Resumé:";
|
||||
"comment_label" = "Kommentér:";
|
||||
|
||||
|
||||
@@ -12,16 +12,16 @@ vtodo_class2 = "(Vertrouwelijke taak)";
|
||||
"The event \"%{Summary}\" was created" = "De gebeurtenis \"%{Summary}\" is aangemaakt";
|
||||
"The event \"%{Summary}\" was deleted" = "De gebeurtenis \"%{Summary}\" is verwijderd";
|
||||
"The event \"%{Summary}\" was updated" = "De gebeurtenis \"%{Summary}\" is gewijzigd";
|
||||
"The following attendees(s) were notified:" = "De volgende deelnemers zijn in kennis gesteld:";
|
||||
"The following attendees(s) were added:" = "De volgende deelnemers zijn toegevoegd:";
|
||||
"The following attendees(s) were removed:" = "De volgende deelnemers zijn verwijderd:";
|
||||
"The following attendees(s) were notified" = "De volgende deelnemers zijn in kennis gesteld";
|
||||
"The following attendees(s) were added" = "De volgende deelnemers zijn toegevoegd";
|
||||
"The following attendees(s) were removed" = "De volgende deelnemers zijn verwijderd";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Agenda:";
|
||||
"startDate_label" = "Start:";
|
||||
"endDate_label" = "Einde:";
|
||||
"calendar_label" = "Agenda";
|
||||
"startDate_label" = "Start";
|
||||
"endDate_label" = "Einde";
|
||||
"due_label" = "Vervaldag:";
|
||||
"location_label" = "Locatie:";
|
||||
"location_label" = "Locatie";
|
||||
"summary_label" = "Samenvatting:";
|
||||
"comment_label" = "Commentaar:";
|
||||
|
||||
|
||||
@@ -12,16 +12,16 @@ vtodo_class2 = "(Confidential task)";
|
||||
"The event \"%{Summary}\" was created" = "The event \"%{Summary}\" was created";
|
||||
"The event \"%{Summary}\" was deleted" = "The event \"%{Summary}\" was deleted";
|
||||
"The event \"%{Summary}\" was updated" = "The event \"%{Summary}\" was updated";
|
||||
"The following attendees(s) were notified:" = "The following attendee(s) were notified:";
|
||||
"The following attendees(s) were added:" = "The following attendee(s) were added:";
|
||||
"The following attendees(s) were removed:" = "The following attendee(s) were removed:";
|
||||
"The following attendees(s) were notified" = "The following attendee(s) were notified";
|
||||
"The following attendees(s) were added" = "The following attendee(s) were added";
|
||||
"The following attendees(s) were removed" = "The following attendee(s) were removed";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Calendar:";
|
||||
"startDate_label" = "Start:";
|
||||
"endDate_label" = "End:";
|
||||
"calendar_label" = "Calendar";
|
||||
"startDate_label" = "Start";
|
||||
"endDate_label" = "End";
|
||||
"due_label" = "Due Date:";
|
||||
"location_label" = "Location:";
|
||||
"location_label" = "Location";
|
||||
"summary_label" = "Summary:";
|
||||
"comment_label" = "Comment:";
|
||||
|
||||
|
||||
@@ -12,16 +12,16 @@ vtodo_class2 = "(Luottamuksellinen tehtävä)";
|
||||
"The event \"%{Summary}\" was created" = "Tapahtuma \"%{Summary}\" luotiin";
|
||||
"The event \"%{Summary}\" was deleted" = "Tapahtuma \"%{Summary}\" poistettiin";
|
||||
"The event \"%{Summary}\" was updated" = "Tapahtuma \"%{Summary}\" päivitettiin";
|
||||
"The following attendees(s) were notified:" = "Seuraava(t) osallistuja(t) on informoitu:";
|
||||
"The following attendees(s) were added:" = "Seuraava(t) osalllistuja(t) on lisätty:";
|
||||
"The following attendees(s) were removed:" = "Seuraava(t) osalllistuja(t) poistettiin:";
|
||||
"The following attendees(s) were notified" = "Seuraava(t) osallistuja(t) on informoitu";
|
||||
"The following attendees(s) were added" = "Seuraava(t) osalllistuja(t) on lisätty";
|
||||
"The following attendees(s) were removed" = "Seuraava(t) osalllistuja(t) poistettiin";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Kalenteri:";
|
||||
"startDate_label" = "Alkaa:";
|
||||
"endDate_label" = "Päättyy:";
|
||||
"calendar_label" = "Kalenteri";
|
||||
"startDate_label" = "Alkaa";
|
||||
"endDate_label" = "Päättyy";
|
||||
"due_label" = "Määräpäivä:";
|
||||
"location_label" = "Sijainti:";
|
||||
"location_label" = "Sijainti";
|
||||
"summary_label" = "Yhteenveto:";
|
||||
"comment_label" = "Kommentti:";
|
||||
|
||||
|
||||
@@ -12,16 +12,16 @@ vtodo_class2 = "(Tâche confidentielle)";
|
||||
"The event \"%{Summary}\" was created" = "L'événement «%{Summary}» a été créé";
|
||||
"The event \"%{Summary}\" was deleted" = "L'événement «%{Summary}» a été effacé";
|
||||
"The event \"%{Summary}\" was updated" = "L'événement «%{Summary}» a été modifié";
|
||||
"The following attendees(s) were notified:" = "Les invités suivants ont été avisés :";
|
||||
"The following attendees(s) were added:" = "Les invités suivants ont été ajoutés :";
|
||||
"The following attendees(s) were removed:" = "Les invités suivants ont été supprimés :";
|
||||
"The following attendees(s) were notified" = "Les invités suivants ont été avisés ";
|
||||
"The following attendees(s) were added" = "Les invités suivants ont été ajoutés ";
|
||||
"The following attendees(s) were removed" = "Les invités suivants ont été supprimés ";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Agenda :";
|
||||
"startDate_label" = "Début :";
|
||||
"endDate_label" = "Fin :";
|
||||
"calendar_label" = "Agenda ";
|
||||
"startDate_label" = "Début ";
|
||||
"endDate_label" = "Fin ";
|
||||
"due_label" = "Fin prévue :";
|
||||
"location_label" = "Lieu :";
|
||||
"location_label" = "Lieu ";
|
||||
"summary_label" = "Titre :";
|
||||
"comment_label" = "Description :";
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ Appointments_RESOURCE_FILES += \
|
||||
MSExchangeFreeBusySOAPResponseMap.plist \
|
||||
MSExchangeFreeBusySOAPRequest.wo
|
||||
|
||||
Appointments_LANGUAGES = Arabic Basque BrazilianPortuguese Catalan Czech Danish Dutch English Finnish French German Hungarian Icelandic Italian NorwegianBokmal NorwegianNynorsk Polish Russian Slovak SpanishSpain SpanishArgentina Swedish Ukrainian Welsh
|
||||
Appointments_LANGUAGES = Arabic Basque BrazilianPortuguese Catalan ChineseTaiwan Czech Danish Dutch English Finnish French German Hungarian Icelandic Italian NorwegianBokmal NorwegianNynorsk Polish Russian Slovak Slovenian SpanishSpain SpanishArgentina Swedish Ukrainian Welsh
|
||||
|
||||
Appointments_LOCALIZED_RESOURCE_FILES = Localizable.strings
|
||||
|
||||
|
||||
@@ -12,16 +12,16 @@ vtodo_class2 = "(Vertrauliche Aufgabe)";
|
||||
"The event \"%{Summary}\" was created" = "Der Termin \"%{Summary}\" wurde angelegt";
|
||||
"The event \"%{Summary}\" was deleted" = "Der Termin \"%{Summary}\" wurde gelöscht";
|
||||
"The event \"%{Summary}\" was updated" = "Der Termin \"%{Summary}\" wurde geändert";
|
||||
"The following attendees(s) were notified:" = "Die folgenden Teilnehmer wurden benachrichtigt:";
|
||||
"The following attendees(s) were added:" = "Die folgenden Teilnehmer wurden hinzugefügt:";
|
||||
"The following attendees(s) were removed:" = "Die folgenden Teilnehmer wurden entfernt:";
|
||||
"The following attendees(s) were notified" = "Die folgenden Teilnehmer wurden benachrichtigt";
|
||||
"The following attendees(s) were added" = "Die folgenden Teilnehmer wurden hinzugefügt";
|
||||
"The following attendees(s) were removed" = "Die folgenden Teilnehmer wurden entfernt";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Kalender:";
|
||||
"startDate_label" = "Beginn:";
|
||||
"endDate_label" = "Ende:";
|
||||
"calendar_label" = "Kalender";
|
||||
"startDate_label" = "Beginn";
|
||||
"endDate_label" = "Ende";
|
||||
"due_label" = "Fälligkeit:";
|
||||
"location_label" = "Ort:";
|
||||
"location_label" = "Ort";
|
||||
"summary_label" = "Zusammenfassung:";
|
||||
"comment_label" = "Kommentar:";
|
||||
|
||||
|
||||
@@ -12,16 +12,16 @@ vtodo_class2 = "(Bizalmas feladat)";
|
||||
"The event \"%{Summary}\" was created" = "A \"%{Summary}\" esemény létre lett hozva";
|
||||
"The event \"%{Summary}\" was deleted" = "A \"%{Summary}\" esemény törölve lett";
|
||||
"The event \"%{Summary}\" was updated" = "A \"%{Summary}\" esemény módosítva lett";
|
||||
"The following attendees(s) were notified:" = "Az alábbi résztvevők lettek értesítve:";
|
||||
"The following attendees(s) were added:" = "Az alábbi résztvevők lettek hozzáadva:";
|
||||
"The following attendees(s) were removed:" = "Az alábbi résztvevők lettek eltávolítva:";
|
||||
"The following attendees(s) were notified" = "Az alábbi résztvevők lettek értesítve";
|
||||
"The following attendees(s) were added" = "Az alábbi résztvevők lettek hozzáadva";
|
||||
"The following attendees(s) were removed" = "Az alábbi résztvevők lettek eltávolítva";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Naptár:";
|
||||
"startDate_label" = "Kezdete:";
|
||||
"endDate_label" = "Vége:";
|
||||
"calendar_label" = "Naptár";
|
||||
"startDate_label" = "Kezdete";
|
||||
"endDate_label" = "Vége";
|
||||
"due_label" = "Lejárat napja:";
|
||||
"location_label" = "Hely:";
|
||||
"location_label" = "Hely";
|
||||
"summary_label" = "Összegzés:";
|
||||
"comment_label" = "Megjegyzés:";
|
||||
|
||||
|
||||
@@ -25,10 +25,10 @@ vtodo_class2 = "(Verkefni er trúnaðarmál)";
|
||||
"... from the following event:" = "... af eftirfarandi viðburði:";
|
||||
|
||||
/* IMIP messages */
|
||||
"startDate_label" = "Byrjun:";
|
||||
"endDate_label" = "Endir:";
|
||||
"startDate_label" = "Byrjun";
|
||||
"endDate_label" = "Endir";
|
||||
"due_label" = "Lokadagur:";
|
||||
"location_label" = "Staðsetning:";
|
||||
"location_label" = "Staðsetning";
|
||||
"summary_label" = "Samantekt:";
|
||||
"comment_label" = "Athugasemd:";
|
||||
|
||||
|
||||
@@ -25,10 +25,10 @@ vtodo_class2 = "(Attività confidenziale)";
|
||||
"... from the following event:" = "... dal seguente evento:";
|
||||
|
||||
/* IMIP messages */
|
||||
"startDate_label" = "Inizio:";
|
||||
"endDate_label" = "Fine:";
|
||||
"startDate_label" = "Inizio";
|
||||
"endDate_label" = "Fine";
|
||||
"due_label" = "Scadenza:";
|
||||
"location_label" = "Luogo:";
|
||||
"location_label" = "Luogo";
|
||||
"summary_label" = "Summario:";
|
||||
"comment_label" = "Commento:";
|
||||
|
||||
|
||||
@@ -12,16 +12,16 @@ vtodo_class2 = "(Konfidensiell oppgave)";
|
||||
"The event \"%{Summary}\" was created" = "Hendelsen \"%{Summary}\" ble opprettet";
|
||||
"The event \"%{Summary}\" was deleted" = "Hendelsen \"%{Summary}\" ble slettet";
|
||||
"The event \"%{Summary}\" was updated" = "Hendelsen \"%{Summary}\" ble oppdatert";
|
||||
"The following attendees(s) were notified:" = "Følgende deltaker(e) ble varslet:";
|
||||
"The following attendees(s) were added:" = "Følgende deltaker(e) ble lagt til:";
|
||||
"The following attendees(s) were removed:" = "Følgende deltaker(e) ble fjernet:";
|
||||
"The following attendees(s) were notified" = "Følgende deltaker(e) ble varslet";
|
||||
"The following attendees(s) were added" = "Følgende deltaker(e) ble lagt til";
|
||||
"The following attendees(s) were removed" = "Følgende deltaker(e) ble fjernet";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Kalender:";
|
||||
"startDate_label" = "Start:";
|
||||
"endDate_label" = "Slutt:";
|
||||
"calendar_label" = "Kalender";
|
||||
"startDate_label" = "Start";
|
||||
"endDate_label" = "Slutt";
|
||||
"due_label" = "Forfallsdato:";
|
||||
"location_label" = "Sted:";
|
||||
"location_label" = "Sted";
|
||||
"summary_label" = "Sammendrag:";
|
||||
"comment_label" = "Kommentar:";
|
||||
|
||||
|
||||
@@ -25,10 +25,10 @@ vtodo_class2 = "(Konfidensiell oppgave)";
|
||||
"... from the following event:" = "... fra følgende hendelse:";
|
||||
|
||||
/* IMIP messages */
|
||||
"startDate_label" = "Start:";
|
||||
"endDate_label" = "End:";
|
||||
"startDate_label" = "Start";
|
||||
"endDate_label" = "End";
|
||||
"due_label" = "Due Date:";
|
||||
"location_label" = "Location:";
|
||||
"location_label" = "Location";
|
||||
"summary_label" = "Summary:";
|
||||
"comment_label" = "Comment:";
|
||||
|
||||
|
||||
@@ -12,16 +12,16 @@ vtodo_class2 = "(Zadanie poufne)";
|
||||
"The event \"%{Summary}\" was created" = "Utworzono wydarzenie \"%{Summary}\"";
|
||||
"The event \"%{Summary}\" was deleted" = "Skasowano wydarzenie \"%{Summary}\"";
|
||||
"The event \"%{Summary}\" was updated" = "Zaktualizowano wydarzenie \"%{Summary}\"";
|
||||
"The following attendees(s) were notified:" = "Następujący uczestnicy zostali powiadomieni:";
|
||||
"The following attendees(s) were added:" = "Następujący uczestnicy zostali dodani:";
|
||||
"The following attendees(s) were removed:" = "Następujący uczestnicy zostali usunięci:";
|
||||
"The following attendees(s) were notified" = "Następujący uczestnicy zostali powiadomieni";
|
||||
"The following attendees(s) were added" = "Następujący uczestnicy zostali dodani";
|
||||
"The following attendees(s) were removed" = "Następujący uczestnicy zostali usunięci";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Kalendarz:";
|
||||
"startDate_label" = "Początek:";
|
||||
"endDate_label" = "Koniec:";
|
||||
"calendar_label" = "Kalendarz";
|
||||
"startDate_label" = "Początek";
|
||||
"endDate_label" = "Koniec";
|
||||
"due_label" = "Termin:";
|
||||
"location_label" = "Miejsce:";
|
||||
"location_label" = "Miejsce";
|
||||
"summary_label" = "Podsumowanie:";
|
||||
"comment_label" = "Komentarz:";
|
||||
|
||||
|
||||
@@ -12,16 +12,16 @@ vtodo_class2 = "(Конфиденциальная задача)";
|
||||
"The event \"%{Summary}\" was created" = "Было создано мероприятие \"%{Summary}\"";
|
||||
"The event \"%{Summary}\" was deleted" = "Мероприятие \"%{Summary}\" было удалено";
|
||||
"The event \"%{Summary}\" was updated" = "Мероприятие \"%{Summary}\" было обновлено";
|
||||
"The following attendees(s) were notified:" = "Следующие приглашенные были оповещены:";
|
||||
"The following attendees(s) were added:" = "Следующие люди были добавлены в список приглашенных:";
|
||||
"The following attendees(s) were removed:" = "Следующие люди были исключены из списка приглашенных:";
|
||||
"The following attendees(s) were notified" = "Следующие приглашенные были оповещены";
|
||||
"The following attendees(s) were added" = "Следующие люди были добавлены в список приглашенных";
|
||||
"The following attendees(s) were removed" = "Следующие люди были исключены из списка приглашенных";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Календарь:";
|
||||
"startDate_label" = "Начало:";
|
||||
"endDate_label" = "Конец:";
|
||||
"calendar_label" = "Календарь";
|
||||
"startDate_label" = "Начало";
|
||||
"endDate_label" = "Конец";
|
||||
"due_label" = "Должно быть готово к:";
|
||||
"location_label" = "Местонахождение:";
|
||||
"location_label" = "Местонахождение";
|
||||
"summary_label" = "Краткое содержание:";
|
||||
"comment_label" = "Комментарий:";
|
||||
|
||||
|
||||
@@ -160,9 +160,6 @@ typedef enum {
|
||||
- (NSString *) syncTag;
|
||||
- (void) setSyncTag: (NSString *) newSyncTag;
|
||||
|
||||
- (BOOL) synchronizeCalendar;
|
||||
- (void) setSynchronizeCalendar: (BOOL) new;
|
||||
|
||||
- (BOOL) includeInFreeBusy;
|
||||
- (void) setIncludeInFreeBusy: (BOOL) newInclude;
|
||||
|
||||
|
||||
@@ -432,61 +432,6 @@ static Class iCalEventK = nil;
|
||||
inCategory: @"FolderShowTasks"];
|
||||
}
|
||||
|
||||
- (NSString *) syncTag
|
||||
{
|
||||
NSString *syncTag;
|
||||
|
||||
syncTag = [self folderPropertyValueInCategory: @"FolderSyncTags"];
|
||||
if (!syncTag)
|
||||
syncTag = @"";
|
||||
|
||||
return syncTag;
|
||||
}
|
||||
|
||||
- (void) setSyncTag: (NSString *) newSyncTag
|
||||
{
|
||||
// Check for duplicated tags
|
||||
SOGoUserSettings *settings;
|
||||
NSDictionary *syncTags;
|
||||
NSArray *values;
|
||||
|
||||
if ([newSyncTag length])
|
||||
{
|
||||
settings = [[context activeUser] userSettings];
|
||||
syncTags = [[settings objectForKey: @"Calendar"]
|
||||
objectForKey: @"FolderSyncTags"];
|
||||
values = [syncTags allValues];
|
||||
if (![values containsObject: newSyncTag])
|
||||
[self setFolderPropertyValue: newSyncTag
|
||||
inCategory: @"FolderSyncTags"];
|
||||
}
|
||||
else
|
||||
[self setFolderPropertyValue: nil
|
||||
inCategory: @"FolderSyncTags"];
|
||||
}
|
||||
|
||||
- (BOOL) synchronizeCalendar
|
||||
{
|
||||
NSNumber *synchronize;
|
||||
|
||||
synchronize = [self folderPropertyValueInCategory: @"FolderSynchronize"];
|
||||
|
||||
return [synchronize boolValue];
|
||||
}
|
||||
|
||||
- (void) setSynchronizeCalendar: (BOOL) new
|
||||
{
|
||||
NSNumber *synchronize;
|
||||
|
||||
if (new)
|
||||
synchronize = [NSNumber numberWithBool: YES];
|
||||
else
|
||||
synchronize = nil;
|
||||
|
||||
[self setFolderPropertyValue: synchronize
|
||||
inCategory: @"FolderSynchronize"];
|
||||
}
|
||||
|
||||
//
|
||||
// If the user is the owner of the calendar, by default we include the freebusy information.
|
||||
//
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright (C) 2007-2014 Inverse inc.
|
||||
Copyright (C) 2007-2015 Inverse inc.
|
||||
Copyright (C) 2004-2005 SKYRIX Software AG
|
||||
|
||||
This file is part of SOGo
|
||||
@@ -317,7 +317,7 @@
|
||||
enumerator = [attendees objectEnumerator];
|
||||
while ((currentAttendee = [enumerator nextObject]))
|
||||
{
|
||||
currentUID = [currentAttendee uid];
|
||||
currentUID = [currentAttendee uidInContext: context];
|
||||
if (currentUID)
|
||||
[self _removeEventFromUID: currentUID
|
||||
owner: owner
|
||||
@@ -398,7 +398,7 @@
|
||||
enumerator = [updateAttendees objectEnumerator];
|
||||
while ((currentAttendee = [enumerator nextObject]))
|
||||
{
|
||||
currentUID = [currentAttendee uid];
|
||||
currentUID = [currentAttendee uidInContext: context];
|
||||
if (currentUID)
|
||||
[self _addOrUpdateEvent: newEvent
|
||||
forUID: currentUID
|
||||
@@ -438,7 +438,7 @@
|
||||
|
||||
while ((currentAttendee = [enumerator nextObject]))
|
||||
{
|
||||
currentUID = [currentAttendee uid];
|
||||
currentUID = [currentAttendee uidInContext: context];
|
||||
|
||||
if (currentUID)
|
||||
{
|
||||
@@ -520,7 +520,7 @@
|
||||
enumerator = [theAttendees objectEnumerator];
|
||||
while ((currentAttendee = [enumerator nextObject]))
|
||||
{
|
||||
currentUID = [currentAttendee uid];
|
||||
currentUID = [currentAttendee uidInContext: context];
|
||||
if (currentUID)
|
||||
{
|
||||
[attendees addObject: currentUID];
|
||||
@@ -635,7 +635,7 @@
|
||||
for (i = 0; i < [theAttendees count]; i++)
|
||||
{
|
||||
currentAttendee = [theAttendees objectAtIndex: i];
|
||||
if ([[currentAttendee uid] isEqualToString: currentUID])
|
||||
if ([[currentAttendee uidInContext: context] isEqualToString: currentUID])
|
||||
break;
|
||||
else
|
||||
currentAttendee = nil;
|
||||
@@ -713,7 +713,7 @@
|
||||
enumerator = [attendees objectEnumerator];
|
||||
while ((currentAttendee = [enumerator nextObject]))
|
||||
{
|
||||
currentUID = [currentAttendee uid];
|
||||
currentUID = [currentAttendee uidInContext: context];
|
||||
if (currentUID)
|
||||
[self _addOrUpdateEvent: newEvent
|
||||
forUID: currentUID
|
||||
@@ -838,7 +838,7 @@ inRecurrenceExceptionsForEvent: (iCalEvent *) theEvent
|
||||
enumerator = [updatedAttendees objectEnumerator];
|
||||
while ((currentAttendee = [enumerator nextObject]))
|
||||
{
|
||||
currentUID = [currentAttendee uid];
|
||||
currentUID = [currentAttendee uidInContext: context];
|
||||
if (currentUID)
|
||||
[self _addOrUpdateEvent: newEvent
|
||||
forUID: currentUID
|
||||
@@ -1215,7 +1215,7 @@ inRecurrenceExceptionsForEvent: (iCalEvent *) theEvent
|
||||
{
|
||||
[delegates addObject: otherDelegate];
|
||||
|
||||
delegatedUID = [otherDelegate uid];
|
||||
delegatedUID = [otherDelegate uidInContext: context];
|
||||
if (delegatedUID)
|
||||
// Delegate attendee is a local user; remove event from their calendar
|
||||
[self _removeEventFromUID: delegatedUID
|
||||
@@ -1244,7 +1244,7 @@ inRecurrenceExceptionsForEvent: (iCalEvent *) theEvent
|
||||
|
||||
if (addDelegate)
|
||||
{
|
||||
delegatedUID = [delegate uid];
|
||||
delegatedUID = [delegate uidInContext: context];
|
||||
delegates = [NSArray arrayWithObject: delegate];
|
||||
[event addToAttendees: delegate];
|
||||
|
||||
@@ -1271,11 +1271,11 @@ inRecurrenceExceptionsForEvent: (iCalEvent *) theEvent
|
||||
[self sendResponseToOrganizer: event
|
||||
from: ownerUser];
|
||||
|
||||
organizerUID = [[event organizer] uid];
|
||||
organizerUID = [[event organizer] uidInContext: context];
|
||||
|
||||
// Event is an exception to a recurring event; retrieve organizer from master event
|
||||
if (!organizerUID)
|
||||
organizerUID = [[(iCalEntityObject*)[[event parent] firstChildWithTag: [self componentTag]] organizer] uid];
|
||||
organizerUID = [[(iCalEntityObject*)[[event parent] firstChildWithTag: [self componentTag]] organizer] uidInContext: context];
|
||||
|
||||
if (organizerUID)
|
||||
// Update the attendee in organizer's calendar.
|
||||
@@ -1302,7 +1302,7 @@ inRecurrenceExceptionsForEvent: (iCalEvent *) theEvent
|
||||
for (i = 0; i < [attendees count]; i++)
|
||||
{
|
||||
att = [attendees objectAtIndex: i];
|
||||
uid = [att uid];
|
||||
uid = [att uidInContext: context];
|
||||
if (uid && att != attendee && ![uid isEqualToString: delegatedUID])
|
||||
[self _updateAttendee: attendee
|
||||
withDelegate: delegate
|
||||
@@ -1461,7 +1461,7 @@ inRecurrenceExceptionsForEvent: (iCalEvent *) theEvent
|
||||
{
|
||||
if (delegate && ![[delegate email] isEqualToString: [attendee delegatedTo]])
|
||||
{
|
||||
delegatedUid = [delegate uid];
|
||||
delegatedUid = [delegate uidInContext: context];
|
||||
if (delegatedUid)
|
||||
delegatedUser = [SOGoUser userWithLogin: delegatedUid];
|
||||
if (delegatedUser != nil && [event userIsOrganizer: delegatedUser])
|
||||
@@ -1831,7 +1831,7 @@ inRecurrenceExceptionsForEvent: (iCalEvent *) theEvent
|
||||
|
||||
// We now make sure that the organizer, if managed by SOGo, is using
|
||||
// its default email when creating events and inviting attendees.
|
||||
uid = [[SOGoUserManager sharedUserManager] getUIDForEmail: [[event organizer] rfc822Email]];
|
||||
uid = [[event organizer] uidInContext: context];
|
||||
if (uid)
|
||||
{
|
||||
NSDictionary *defaultIdentity;
|
||||
@@ -2144,7 +2144,7 @@ inRecurrenceExceptionsForEvent: (iCalEvent *) theEvent
|
||||
// occurence, and invite someone, the PUT will have the organizer in the
|
||||
// recurrence-id and not in the master event. We must fix this, otherwise
|
||||
// SOGo will break.
|
||||
if (!recurrenceId && ![[[[[newEvent parent] events] objectAtIndex: 0] organizer] uid])
|
||||
if (!recurrenceId && ![[[[[newEvent parent] events] objectAtIndex: 0] organizer] uidInContext: context])
|
||||
[[[[newEvent parent] events] objectAtIndex: 0] setOrganizer: [newEvent organizer]];
|
||||
|
||||
if (userIsOrganizer)
|
||||
|
||||
@@ -11,16 +11,16 @@ vtodo_class2 = "(Dôverná úloha)";
|
||||
"The event \"%{Summary}\" was created" = "Udalosť \"%{Summary}\" bola vytvorená";
|
||||
"The event \"%{Summary}\" was deleted" = "Udalosť \"%{Summary}\" bola vymazaná";
|
||||
"The event \"%{Summary}\" was updated" = "Udalosť \"%{Summary}\" bola aktualizovaná";
|
||||
"The following attendees(s) were notified:" = "Nasledujúci účastník(ci) bol upozornený:";
|
||||
"The following attendees(s) were added:" = "Nasledujúci účastník(ci) bol pridaný:";
|
||||
"The following attendees(s) were removed:" = "Nasledujúci účastník(ci) bol odstránený:";
|
||||
"The following attendees(s) were notified" = "Nasledujúci účastník(ci) bol upozornený";
|
||||
"The following attendees(s) were added" = "Nasledujúci účastník(ci) bol pridaný";
|
||||
"The following attendees(s) were removed" = "Nasledujúci účastník(ci) bol odstránený";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Kalendár:";
|
||||
"startDate_label" = "Začiatok:";
|
||||
"endDate_label" = "Koniec:";
|
||||
"calendar_label" = "Kalendár";
|
||||
"startDate_label" = "Začiatok";
|
||||
"endDate_label" = "Koniec";
|
||||
"due_label" = "Platnosť:";
|
||||
"location_label" = "Miesto:";
|
||||
"location_label" = "Miesto";
|
||||
"summary_label" = "Zhrnutie:";
|
||||
"comment_label" = "Komentár:";
|
||||
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
"Inviting the following persons is prohibited:" = "Povabilo za naslednje osebe je prepovedano:";
|
||||
"Personal Calendar" = "Osebni koledar";
|
||||
vevent_class0 = "(Javni dogodek)";
|
||||
vevent_class1 = "(Osebni dogodek)";
|
||||
vevent_class2 = "(Zaupni dogodek)";
|
||||
|
||||
vtodo_class0 = "(Javno opravilo)";
|
||||
vtodo_class1 = "(Osebno opravilo)";
|
||||
vtodo_class2 = "(Zaupno opravilo)";
|
||||
|
||||
/* Receipts */
|
||||
"The event \"%{Summary}\" was created" = "Dogodek \"%{Summary}\" je bil ustvarjen";
|
||||
"The event \"%{Summary}\" was deleted" = "Dogodek \"%{Summary}\" je bil izbrisan";
|
||||
"The event \"%{Summary}\" was updated" = "Dogodek \"%{Summary}\" je bil posodobljen";
|
||||
"The following attendees(s) were notified" = "Naslednji udeleženci so bili obveščeni";
|
||||
"The following attendees(s) were added" = "Naslednji udeleženci so bili dodani";
|
||||
"The following attendees(s) were removed" = "Naslednji udeleženci so bili odstranjeni";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Koledar";
|
||||
"startDate_label" = "Začetek";
|
||||
"endDate_label" = "Konec";
|
||||
"due_label" = "Datum zapadlosti:";
|
||||
"location_label" = "Mesto";
|
||||
"summary_label" = "Povzetek:";
|
||||
"comment_label" = "Komentar:";
|
||||
|
||||
/* Invitation */
|
||||
"Event Invitation: \"%{Summary}\"" = "Povabila na dogodek: \"%{Summary}\"";
|
||||
"(sent by %{SentBy}) " = "(posladno od %{SentBy})";
|
||||
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}" = "%{Organizer} %{SentByText} te je povabil na %{Summary}.\n\n\nZačetek: %{StartDate}\nKonec: %{EndDate}\nOpis: %{Description}";
|
||||
"%{Organizer} %{SentByText}has invited you to %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}" = "%{Organizer} %{SentByText} te je povabil na %{Summary}.\n\n\nZačetek: %{StartDate} at %{StartTime}\nKonec: %{EndDate} at %{EndTime}\nOpis: %{Description}";
|
||||
|
||||
/* Deletion */
|
||||
"Event Cancelled: \"%{Summary}\"" = "Dogodek odpovedan: \"%{Summary}\"";
|
||||
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate}\nEnd: %{EndDate}\nDescription: %{Description}"
|
||||
= "%{Organizer} %{SentByText} je odpovedal ta dogodek: %{Summary}.\n\n\nZačetek: %{StartDate}\nKonec: %{EndDate}\nOpis: %{Description}";
|
||||
"%{Organizer} %{SentByText}has cancelled this event: %{Summary}.\n\nStart: %{StartDate} at %{StartTime}\nEnd: %{EndDate} at %{EndTime}\nDescription: %{Description}"
|
||||
= "%{Organizer} %{SentByText} je odpovedal ta dogodek: %{Summary}.\n\n\nZačetek: %{StartDate} at %{StartTime}\nKonec: %{EndDate} at %{EndTime}\nOpis: %{Description}";
|
||||
|
||||
/* Update */
|
||||
"The appointment \"%{Summary}\" for the %{OldStartDate} has changed"
|
||||
= "Sestanek \"%{Summary}\" za %{OldStartDate} se je spremenil";
|
||||
"The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed"
|
||||
= "Sestanek \"%{Summary}\" za %{OldStartDate} at %{OldStartTime} se je spremenil";
|
||||
"The following parameters have changed in the \"%{Summary}\" meeting:"
|
||||
= "Naslednji parametri so se spremenil v \"%{Summary}\" srečanju:";
|
||||
"Please accept or decline those changes."
|
||||
= "Prosim sprejmi ali zavrni te spremembe.";
|
||||
|
||||
/* Reply */
|
||||
"Accepted invitation: \"%{Summary}\"" = "Sprejeto povabilo: \"%{Summary}\"";
|
||||
"Declined invitation: \"%{Summary}\"" = "Zavrnjeno povabilo: \"%{Summary}\"";
|
||||
"Delegated invitation: \"%{Summary}\"" = "Dodeljeno povabilo: \"%{Summary}\"";
|
||||
"Not yet decided on invitation: \"%{Summary}\"" = "Še neodločeno glede povabila: \"%{Summary}\"";
|
||||
"%{Attendee} %{SentByText}has accepted your event invitation."
|
||||
= "%{Attendee} %{SentByText} je sprejel tvoje povabilo.";
|
||||
"%{Attendee} %{SentByText}has declined your event invitation."
|
||||
= "%{Attendee} %{SentByText} je zavrnil tvoje povabilo.";
|
||||
"%{Attendee} %{SentByText}has delegated the invitation to %{Delegate}."
|
||||
= "%{Attendee} %{SentByText} je posredoval povabilo k %{Delegate}.";
|
||||
"%{Attendee} %{SentByText}has not yet decided upon your event invitation."
|
||||
= "%{Attendee} %{SentByText} se še ni odločil glede tvojega povabila.";
|
||||
|
||||
/* Resources */
|
||||
"Cannot access resource: \"%{Cn} %{SystemEmail}\"" = "Ne morem dostopati do vira: \"%{Cn} %{SystemEmail}\"";
|
||||
"Maximum number of simultaneous bookings (%{NumberOfSimultaneousBookings}) reached for resource \"%{Cn} %{SystemEmail}\". The conflicting event is \"%{EventTitle}\", and starts on %{StartDate}." = "Doseženo je največje število sočasnih rezervacij (%{NumberOfSimultaneousBookings}) za vir \"%{Cn} %{SystemEmail}\". Konfliktni dogodek je \"%{EventTitle}\", začel se je %{StartDate}.";
|
||||
@@ -12,16 +12,16 @@ vtodo_class2 = "(Tarea confidencial)";
|
||||
"The event \"%{Summary}\" was created" = "Se creó el evento \"%{Summary}\"";
|
||||
"The event \"%{Summary}\" was deleted" = "Se borró el evento \"%{Summary}\"";
|
||||
"The event \"%{Summary}\" was updated" = "Se actualizó la información del evento \"%{Summary}\"";
|
||||
"The following attendees(s) were notified:" = "Se notificó a los siguientes participantes:";
|
||||
"The following attendees(s) were added:" = "Se agregaron los siguientes participantes:";
|
||||
"The following attendees(s) were removed:" = "Se removieron los siguientes participantes:";
|
||||
"The following attendees(s) were notified" = "Se notificó a los siguientes participantes";
|
||||
"The following attendees(s) were added" = "Se agregaron los siguientes participantes";
|
||||
"The following attendees(s) were removed" = "Se removieron los siguientes participantes";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Calendario:";
|
||||
"startDate_label" = "Inicio:";
|
||||
"endDate_label" = "Fin:";
|
||||
"calendar_label" = "Calendario";
|
||||
"startDate_label" = "Inicio";
|
||||
"endDate_label" = "Fin";
|
||||
"due_label" = "Fecha de finalización:";
|
||||
"location_label" = "Lugar:";
|
||||
"location_label" = "Lugar";
|
||||
"summary_label" = "Resumen:";
|
||||
"comment_label" = "Comentario:";
|
||||
|
||||
|
||||
@@ -12,16 +12,16 @@ vtodo_class2 = "(Tarea confidencial)";
|
||||
"The event \"%{Summary}\" was created" = "El evento \"%{Summary}\" ha sido creado";
|
||||
"The event \"%{Summary}\" was deleted" = "El evento \"%{Summary}\" ha sido borrado";
|
||||
"The event \"%{Summary}\" was updated" = "El evento \"%{Summary}\" ha sido actualizado";
|
||||
"The following attendees(s) were notified:" = "Los invitados siguientes han sido notificado:";
|
||||
"The following attendees(s) were added:" = "Los invitados siguientes han sido añadido:";
|
||||
"The following attendees(s) were removed:" = "Los invitados siguientes han sido quitado:";
|
||||
"The following attendees(s) were notified" = "Los invitados siguientes han sido notificado";
|
||||
"The following attendees(s) were added" = "Los invitados siguientes han sido añadido";
|
||||
"The following attendees(s) were removed" = "Los invitados siguientes han sido quitado";
|
||||
|
||||
/* IMIP messages */
|
||||
"calendar_label" = "Calendario:";
|
||||
"startDate_label" = "Inicio:";
|
||||
"endDate_label" = "Fin:";
|
||||
"calendar_label" = "Calendario";
|
||||
"startDate_label" = "Inicio";
|
||||
"endDate_label" = "Fin";
|
||||
"due_label" = "Fecha Fin:";
|
||||
"location_label" = "Localización:";
|
||||
"location_label" = "Localización";
|
||||
"summary_label" = "Resumen:";
|
||||
"comment_label" = "Comentario:";
|
||||
|
||||
|
||||
@@ -25,10 +25,10 @@ vtodo_class2 = "(Konfidentiell uppgift)";
|
||||
"... from the following event:" = "... från följande händelse:";
|
||||
|
||||
/* IMIP messages */
|
||||
"startDate_label" = "Startdatum:";
|
||||
"endDate_label" = "Slutdatum:";
|
||||
"startDate_label" = "Startdatum";
|
||||
"endDate_label" = "Slutdatum";
|
||||
"due_label" = "Datum:";
|
||||
"location_label" = "Plats:";
|
||||
"location_label" = "Plats";
|
||||
"summary_label" = "Sammanfattning:";
|
||||
"comment_label" = "Kommentar:";
|
||||
|
||||
|
||||
@@ -25,10 +25,10 @@ vtodo_class2 = "(Конфіденційне завдання)";
|
||||
"... from the following event:" = "... з участі в події:";
|
||||
|
||||
/* IMIP messages */
|
||||
"startDate_label" = "Початок:";
|
||||
"endDate_label" = "Кінець:";
|
||||
"startDate_label" = "Початок";
|
||||
"endDate_label" = "Кінець";
|
||||
"due_label" = "Триватиме до:";
|
||||
"location_label" = "Місце:";
|
||||
"location_label" = "Місце";
|
||||
"summary_label" = "Резюме:";
|
||||
"comment_label" = "Коментар:";
|
||||
|
||||
|
||||
@@ -25,10 +25,10 @@ vtodo_class2 = "(Tasg gyfrinachol)";
|
||||
"... from the following event:" = "... from the following event:";
|
||||
|
||||
/* IMIP messages */
|
||||
"startDate_label" = "Start:";
|
||||
"endDate_label" = "End:";
|
||||
"startDate_label" = "Start";
|
||||
"endDate_label" = "End";
|
||||
"due_label" = "Due Date:";
|
||||
"location_label" = "Location:";
|
||||
"location_label" = "Location";
|
||||
"summary_label" = "Summary:";
|
||||
"comment_label" = "Comment:";
|
||||
|
||||
|
||||
@@ -184,16 +184,17 @@ NSNumber *iCalDistantFutureNumber = nil;
|
||||
NSArray *oldAttendees;
|
||||
unsigned int count, max;
|
||||
iCalPerson *currentAttendee;
|
||||
NSString *userID;
|
||||
NSString *userID, *domain;
|
||||
|
||||
userID = [user login];
|
||||
domain = [user domain];
|
||||
oldAttendees = [self attendees];
|
||||
max = [oldAttendees count];
|
||||
newAttendees = [NSMutableArray arrayWithCapacity: max];
|
||||
for (count = 0; count < max; count++)
|
||||
{
|
||||
currentAttendee = [oldAttendees objectAtIndex: count];
|
||||
if (![[currentAttendee uid] isEqualToString: userID])
|
||||
if (![[currentAttendee uidInDomain: domain] isEqualToString: userID])
|
||||
[newAttendees addObject: currentAttendee];
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
/* iCalPerson+SOGo.h - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2007-2012 Inverse inc.
|
||||
*
|
||||
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
* Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||
* Copyright (C) 2007-2015 Inverse inc.
|
||||
*
|
||||
* This file is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -32,6 +29,8 @@
|
||||
|
||||
- (NSString *) mailAddress;
|
||||
- (NSString *) uid;
|
||||
- (NSString *) uidInDomain: (NSString *) domain;
|
||||
- (NSString *) uidInContext: (WOContext *) context;
|
||||
- (NSString *) contactIDInContext: (WOContext *) context;
|
||||
- (BOOL) hasSentBy;
|
||||
- (NSString *) sentBy;
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
/* iCalPerson+SOGo.m - this file is part of SOGo
|
||||
*
|
||||
* Copyright (C) 2007-2012 Inverse inc.
|
||||
*
|
||||
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
* Ludovic Marcotte <lmarcotte@inverse.ca>
|
||||
* Copyright (C) 2007-2015 Inverse inc.
|
||||
*
|
||||
* This file is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@@ -67,6 +64,31 @@ static SOGoUserManager *um = nil;
|
||||
return [um getUIDForEmail: [self rfc822Email]];
|
||||
}
|
||||
|
||||
- (NSString *) uidInContext: (WOContext *) context
|
||||
{
|
||||
NSString *domain;
|
||||
|
||||
domain = [[context activeUser] domain];
|
||||
|
||||
return [self uidInDomain: domain];
|
||||
}
|
||||
|
||||
- (NSString *) uidInDomain: (NSString *) domain
|
||||
{
|
||||
NSDictionary *contact;
|
||||
NSString *uid;
|
||||
|
||||
if (!um)
|
||||
um = [SOGoUserManager sharedUserManager];
|
||||
|
||||
uid = nil;
|
||||
contact = [um contactInfosForUserWithUIDorEmail: [self rfc822Email] inDomain: domain];
|
||||
if (contact)
|
||||
uid = [contact valueForKey: @"c_uid"];
|
||||
|
||||
return uid;
|
||||
}
|
||||
|
||||
- (NSString *) contactIDInContext: (WOContext *) context
|
||||
{
|
||||
NSString *domain, *uid;
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
"Personal Address Book" = "個人通訊錄";
|
||||
"Collected Address Book" = "公用通訊錄";
|
||||
@@ -27,7 +27,7 @@ Contacts_OBJC_FILES = \
|
||||
Contacts_RESOURCE_FILES += \
|
||||
product.plist \
|
||||
|
||||
Contacts_LANGUAGES = Arabic Basque BrazilianPortuguese Catalan Czech Danish Dutch English Finnish French German Hungarian Icelandic Italian NorwegianBokmal NorwegianNynorsk Polish Russian Slovak SpanishSpain SpanishArgentina Swedish Ukrainian Welsh
|
||||
Contacts_LANGUAGES = Arabic Basque BrazilianPortuguese Catalan ChineseTaiwan Czech Danish Dutch English Finnish French German Hungarian Icelandic Italian NorwegianBokmal NorwegianNynorsk Polish Russian Slovak Slovenian SpanishSpain SpanishArgentina Swedish Ukrainian Welsh
|
||||
|
||||
Contacts_LOCALIZED_RESOURCE_FILES = Localizable.strings
|
||||
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
"Personal Address Book" = "Osebni adresar";
|
||||
"Collected Address Book" = "Zbrani adresar";
|
||||
@@ -0,0 +1,2 @@
|
||||
"OtherUsersFolderName" = "其他使用者";
|
||||
"SharedFoldersName" = "共用資料匣";
|
||||
@@ -50,6 +50,8 @@ Mailer_RESOURCE_FILES += \
|
||||
SOGoMailBrazilianPortugueseReply.wo \
|
||||
SOGoMailCatalanForward.wo \
|
||||
SOGoMailCatalanReply.wo \
|
||||
SOGoMailChineseTaiwanForward.wo \
|
||||
SOGoMailChineseTaiwanReply.wo \
|
||||
SOGoMailCzechForward.wo \
|
||||
SOGoMailCzechReply.wo \
|
||||
SOGoMailDanishForward.wo \
|
||||
@@ -80,6 +82,8 @@ Mailer_RESOURCE_FILES += \
|
||||
SOGoMailRussianReply.wo \
|
||||
SOGoMailSlovakForward.wo \
|
||||
SOGoMailSlovakReply.wo \
|
||||
SOGoMailSlovenianForward.wo \
|
||||
SOGoMailSlovenianReply.wo \
|
||||
SOGoMailSpanishSpainForward.wo \
|
||||
SOGoMailSpanishSpainReply.wo \
|
||||
SOGoMailSpanishArgentinaForward.wo \
|
||||
@@ -91,8 +95,7 @@ Mailer_RESOURCE_FILES += \
|
||||
SOGoMailWelshForward.wo \
|
||||
SOGoMailWelshReply.wo
|
||||
|
||||
|
||||
Mailer_LANGUAGES = Arabic Basque BrazilianPortuguese Catalan Czech Danish Dutch English Finnish French German Hungarian Icelandic Italian NorwegianBokmal NorwegianNynorsk Polish Russian Slovak SpanishSpain SpanishArgentina Swedish Ukrainian Welsh
|
||||
Mailer_LANGUAGES = Arabic Basque BrazilianPortuguese ChineseTaiwan Czech Danish Dutch English Finnish French German Hungarian Icelandic Italian NorwegianBokmal NorwegianNynorsk Polish Russian Slovenian Slovenian SpanishSpain SpanishArgentina Swedish Ukrainian Welsh
|
||||
|
||||
Mailer_LOCALIZED_RESOURCE_FILES = Localizable.strings
|
||||
|
||||
|
||||
@@ -86,12 +86,3 @@ signaturePlacementOnBottom: WOConditional {
|
||||
condition = signaturePlacementOnTop;
|
||||
negate = YES;
|
||||
}
|
||||
|
||||
signaturePlacementOnTop: WOConditional {
|
||||
condition = signaturePlacementOnTop;
|
||||
}
|
||||
|
||||
signaturePlacementOnBottom: WOConditional {
|
||||
condition = signaturePlacementOnTop;
|
||||
negate = YES;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
<#newLine/>
|
||||
<#newLine/>
|
||||
<#signaturePlacementOnTop><#newLine/>
|
||||
<#signature/><#newLine/></#signaturePlacementOnTop>
|
||||
-------- 原始信件 --------<#newLine/>
|
||||
主旨: <#subject/><#newLine/>
|
||||
日期: <#date/><#newLine/>
|
||||
寄件者: <#from/><#newLine/>
|
||||
<#hasReplyTo>回覆帳號: <#replyTo/></#hasReplyTo><#hasOrganization>公司: <#organization/></#hasOrganization>收件者: <#to/><#newLine/>
|
||||
<#hasCc>副本: <#cc/></#hasCc><#hasNewsGroups>新聞群組: <#newsgroups/></#hasNewsGroups><#hasReferences>參考: <#references/></#hasReferences><#newLine/>
|
||||
<#newLine/>
|
||||
<#messageBody/><#newLine/>
|
||||
<#signaturePlacementOnBottom><#newLine/>
|
||||
<#newLine/>
|
||||
<#signature/></#signaturePlacementOnBottom>
|
||||
<#newLine/>
|
||||
@@ -0,0 +1,88 @@
|
||||
subject: WOString {
|
||||
value = subject;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
date: WOString {
|
||||
value = date;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
from: WOString {
|
||||
value = from;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
newLine: WOString {
|
||||
value = newLine;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasReplyTo: WOConditional {
|
||||
condition = hasReplyTo;
|
||||
}
|
||||
|
||||
replyTo: WOString {
|
||||
value = replyTo;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasOrganization: WOConditional {
|
||||
condition = hasOrganization;
|
||||
}
|
||||
|
||||
organization: WOString {
|
||||
value = organization;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
to: WOString {
|
||||
value = to;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasCc: WOConditional {
|
||||
condition = hasCc;
|
||||
}
|
||||
|
||||
cc: WOString {
|
||||
value = cc;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasNewsGroups: WOConditional {
|
||||
condition = hasNewsGroups;
|
||||
}
|
||||
|
||||
newsgroups: WOString {
|
||||
value = newsgroups;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasReferences: WOConditional {
|
||||
condition = hasReferences;
|
||||
}
|
||||
|
||||
references: WOString {
|
||||
value = references;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
messageBody: WOString {
|
||||
value = messageBody;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
signature: WOString {
|
||||
value = signature;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
signaturePlacementOnTop: WOConditional {
|
||||
condition = signaturePlacementOnTop;
|
||||
}
|
||||
|
||||
signaturePlacementOnBottom: WOConditional {
|
||||
condition = signaturePlacementOnTop;
|
||||
negate = YES;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
<#replyPlacementOnTop><#newLine/>
|
||||
<#newLine/>
|
||||
</#replyPlacementOnTop><#signaturePlacementOnTop><#newLine/>
|
||||
<#signature/><#newLine/>
|
||||
</#signaturePlacementOnTop><#outlookMode>-------- 原始信件 --------<#newLine/>
|
||||
主旨: <#subject/><#newLine/>
|
||||
日期: <#date/><#newLine/>
|
||||
寄件者: <#from/><#newLine/>
|
||||
<#hasReplyTo>回覆帳號: <#replyTo/></#hasReplyTo><#hasOrganization>公司: <#organization/></#hasOrganization>收件者: <#to/><#newLine/>
|
||||
<#hasCc>副本: <#cc/></#hasCc><#hasNewsGroups>新聞群組: <#newsgroups/></#hasNewsGroups><#hasReferences>參考: <#references/></#hasReferences></#outlookMode><#newLine/>
|
||||
<#standardMode>日期 <#date/>, <#from/> 編輯:</#standardMode><#newLine/>
|
||||
<#newLine/>
|
||||
<#messageBody/><#newLine/>
|
||||
<#replyPlacementOnBottom><#newLine/>
|
||||
<#newLine/>
|
||||
</#replyPlacementOnBottom><#signaturePlacementOnBottom><#signature/></#signaturePlacementOnBottom><#newLine/>
|
||||
@@ -0,0 +1,106 @@
|
||||
outlookMode: WOConditional {
|
||||
condition = outlookMode;
|
||||
}
|
||||
|
||||
standardMode: WOConditional {
|
||||
condition = outlookMode;
|
||||
negate = YES;
|
||||
}
|
||||
|
||||
subject: WOString {
|
||||
value = subject;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
date: WOString {
|
||||
value = date;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
from: WOString {
|
||||
value = from;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
newLine: WOString {
|
||||
value = newLine;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasReplyTo: WOConditional {
|
||||
condition = hasReplyTo;
|
||||
}
|
||||
|
||||
replyTo: WOString {
|
||||
value = replyTo;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasOrganization: WOConditional {
|
||||
condition = hasOrganization;
|
||||
}
|
||||
|
||||
organization: WOString {
|
||||
value = organization;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
to: WOString {
|
||||
value = to;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasCc: WOConditional {
|
||||
condition = hasCc;
|
||||
}
|
||||
|
||||
cc: WOString {
|
||||
value = cc;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasNewsGroups: WOConditional {
|
||||
condition = hasNewsGroups;
|
||||
}
|
||||
|
||||
newsgroups: WOString {
|
||||
value = newsgroups;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasReferences: WOConditional {
|
||||
condition = hasReferences;
|
||||
}
|
||||
|
||||
references: WOString {
|
||||
value = references;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
messageBody: WOString {
|
||||
value = messageBody;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
signature: WOString {
|
||||
value = signature;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
replyPlacementOnTop: WOConditional {
|
||||
condition = replyPlacementOnTop;
|
||||
}
|
||||
|
||||
replyPlacementOnBottom: WOConditional {
|
||||
condition = replyPlacementOnTop;
|
||||
negate = YES;
|
||||
}
|
||||
|
||||
signaturePlacementOnTop: WOConditional {
|
||||
condition = signaturePlacementOnTop;
|
||||
}
|
||||
|
||||
signaturePlacementOnBottom: WOConditional {
|
||||
condition = signaturePlacementOnTop;
|
||||
negate = YES;
|
||||
}
|
||||
@@ -86,12 +86,3 @@ signaturePlacementOnBottom: WOConditional {
|
||||
condition = signaturePlacementOnTop;
|
||||
negate = YES;
|
||||
}
|
||||
|
||||
signaturePlacementOnTop: WOConditional {
|
||||
condition = signaturePlacementOnTop;
|
||||
}
|
||||
|
||||
signaturePlacementOnBottom: WOConditional {
|
||||
condition = signaturePlacementOnTop;
|
||||
negate = YES;
|
||||
}
|
||||
@@ -98,7 +98,8 @@
|
||||
|
||||
- (NSArray *) syncTokenFieldsWithProperties: (NSDictionary *) properties
|
||||
matchingSyncToken: (NSString *) syncToken
|
||||
fromDate: (NSCalendarDate *) theStartDate;
|
||||
fromDate: (NSCalendarDate *) theStartDate
|
||||
initialLoad: (BOOL) initialLoadInProgress;
|
||||
|
||||
/* flags */
|
||||
|
||||
|
||||
@@ -2090,6 +2090,7 @@ _compareFetchResultsByMODSEQ (id entry1, id entry2, void *data)
|
||||
- (NSArray *) syncTokenFieldsWithProperties: (NSArray *) theProperties
|
||||
matchingSyncToken: (NSString *) theSyncToken
|
||||
fromDate: (NSCalendarDate *) theStartDate
|
||||
initialLoad: (BOOL) initialLoadInProgress
|
||||
{
|
||||
EOQualifier *searchQualifier;
|
||||
NSMutableArray *allTokens;
|
||||
@@ -2166,6 +2167,9 @@ _compareFetchResultsByMODSEQ (id entry1, id entry2, void *data)
|
||||
|
||||
for (i = 0; i < [fetchResults count]; i++)
|
||||
{
|
||||
if ([[[fetchResults objectAtIndex: i] objectForKey: @"flags"] containsObject: @"deleted"] && initialLoadInProgress)
|
||||
continue;
|
||||
|
||||
d = [NSDictionary dictionaryWithObject: ([[[fetchResults objectAtIndex: i] objectForKey: @"flags"] containsObject: @"deleted"]) ? [NSNull null] : [[fetchResults objectAtIndex: i] objectForKey: @"modseq"]
|
||||
forKey: [[[fetchResults objectAtIndex: i] objectForKey: @"uid"] stringValue]];
|
||||
[allTokens addObject: d];
|
||||
@@ -2176,7 +2180,7 @@ _compareFetchResultsByMODSEQ (id entry1, id entry2, void *data)
|
||||
if (highestmodseq == 0)
|
||||
highestmodseq = 1;
|
||||
|
||||
if (highestmodseq > 0)
|
||||
if (highestmodseq > 0 && !initialLoadInProgress)
|
||||
{
|
||||
id uid;
|
||||
|
||||
|
||||
@@ -49,6 +49,9 @@
|
||||
@interface SOGoMailCatalanForward : SOGoMailForward
|
||||
@end
|
||||
|
||||
@interface SOGoMailChineseTaiwanForward : SOGoMailForward
|
||||
@end
|
||||
|
||||
@interface SOGoMailCzechForward : SOGoMailForward
|
||||
@end
|
||||
|
||||
@@ -103,6 +106,9 @@
|
||||
@interface SOGoMailSlovakForward : SOGoMailForward
|
||||
@end
|
||||
|
||||
@interface SOGoMailSlovenianForward : SOGoMailForward
|
||||
@end
|
||||
|
||||
@interface SOGoMailUkrainianForward : SOGoMailForward
|
||||
@end
|
||||
|
||||
|
||||
@@ -260,6 +260,9 @@
|
||||
@implementation SOGoMailCatalanForward
|
||||
@end
|
||||
|
||||
@implementation SOGoMailChineseTaiwanForward
|
||||
@end
|
||||
|
||||
@implementation SOGoMailCzechForward
|
||||
@end
|
||||
|
||||
@@ -314,6 +317,9 @@
|
||||
@implementation SOGoMailSlovakForward
|
||||
@end
|
||||
|
||||
@implementation SOGoMailSlovenianForward
|
||||
@end
|
||||
|
||||
@implementation SOGoMailUkrainianForward
|
||||
@end
|
||||
|
||||
|
||||
@@ -48,6 +48,9 @@
|
||||
@interface SOGoMailCatalanReply : SOGoMailReply
|
||||
@end
|
||||
|
||||
@interface SOGoMailChineseTaiwanReply : SOGoMailReply
|
||||
@end
|
||||
|
||||
@interface SOGoMailCzechReply : SOGoMailReply
|
||||
@end
|
||||
|
||||
@@ -102,6 +105,9 @@
|
||||
@interface SOGoMailSlovakReply : SOGoMailReply
|
||||
@end
|
||||
|
||||
@interface SOGoMailSlovenianReply : SOGoMailReply
|
||||
@end
|
||||
|
||||
@interface SOGoMailUkrainianReply : SOGoMailReply
|
||||
@end
|
||||
|
||||
|
||||
@@ -98,6 +98,9 @@
|
||||
@implementation SOGoMailCatalanReply
|
||||
@end
|
||||
|
||||
@implementation SOGoMailChineseTaiwanReply
|
||||
@end
|
||||
|
||||
@implementation SOGoMailCzechReply
|
||||
@end
|
||||
|
||||
@@ -152,6 +155,9 @@
|
||||
@implementation SOGoMailSlovakReply
|
||||
@end
|
||||
|
||||
@implementation SOGoMailSlovenianReply
|
||||
@end
|
||||
|
||||
@implementation SOGoMailUkrainianReply
|
||||
@end
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
<#newLine/>
|
||||
<#newLine/>
|
||||
<#signaturePlacementOnTop><#newLine/>
|
||||
<#signature/><#newLine/></#signaturePlacementOnTop>
|
||||
-------- Original Message --------<#newLine/>
|
||||
Zadeva: <#subject/><#newLine/>
|
||||
Datum: <#date/><#newLine/>
|
||||
Od: <#from/><#newLine/>
|
||||
<#hasReplyTo>Odgovori: <#replyTo/></#hasReplyTo><#hasOrganization>Organizacija: <#organization/></#hasOrganization>Za: <#to/><#newLine/>
|
||||
<#hasCc>KP: <#cc/></#hasCc><#hasNewsGroups>Novicarske skupine: <#newsgroups/></#hasNewsGroups><#hasReferences>Reference: <#references/></#hasReferences><#newLine/>
|
||||
<#newLine/>
|
||||
<#messageBody/><#newLine/>
|
||||
<#signaturePlacementOnBottom><#newLine/>
|
||||
<#newLine/>
|
||||
<#signature/></#signaturePlacementOnBottom>
|
||||
<#newLine/>
|
||||
@@ -0,0 +1,88 @@
|
||||
subject: WOString {
|
||||
value = subject;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
date: WOString {
|
||||
value = date;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
from: WOString {
|
||||
value = from;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
newLine: WOString {
|
||||
value = newLine;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasReplyTo: WOConditional {
|
||||
condition = hasReplyTo;
|
||||
}
|
||||
|
||||
replyTo: WOString {
|
||||
value = replyTo;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasOrganization: WOConditional {
|
||||
condition = hasOrganization;
|
||||
}
|
||||
|
||||
organization: WOString {
|
||||
value = organization;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
to: WOString {
|
||||
value = to;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasCc: WOConditional {
|
||||
condition = hasCc;
|
||||
}
|
||||
|
||||
cc: WOString {
|
||||
value = cc;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasNewsGroups: WOConditional {
|
||||
condition = hasNewsGroups;
|
||||
}
|
||||
|
||||
newsgroups: WOString {
|
||||
value = newsgroups;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasReferences: WOConditional {
|
||||
condition = hasReferences;
|
||||
}
|
||||
|
||||
references: WOString {
|
||||
value = references;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
messageBody: WOString {
|
||||
value = messageBody;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
signature: WOString {
|
||||
value = signature;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
signaturePlacementOnTop: WOConditional {
|
||||
condition = signaturePlacementOnTop;
|
||||
}
|
||||
|
||||
signaturePlacementOnBottom: WOConditional {
|
||||
condition = signaturePlacementOnTop;
|
||||
negate = YES;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
<#replyPlacementOnTop><#newLine/>
|
||||
<#newLine/>
|
||||
</#replyPlacementOnTop><#signaturePlacementOnTop><#newLine/>
|
||||
<#signature/><#newLine/>
|
||||
</#signaturePlacementOnTop><#outlookMode>-------- Izvorno sporocilo --------<#newLine/>
|
||||
Zadeva: <#subject/><#newLine/>
|
||||
Datum: <#date/><#newLine/>
|
||||
Od: <#from/><#newLine/>
|
||||
<#hasReplyTo>Odgovori: <#replyTo/></#hasReplyTo><#hasOrganization>Organizacija: <#organization/></#hasOrganization>Za: <#to/><#newLine/>
|
||||
<#hasCc>KP: <#cc/></#hasCc><#hasNewsGroups>Novicarske skupine: <#newsgroups/></#hasNewsGroups><#hasReferences>Reference: <#references/></#hasReferences></#outlookMode><#newLine/>
|
||||
<#standardMode>Dne <#date/>, je <#from/> napisal-a:</#standardMode><#newLine/>
|
||||
<#newLine/>
|
||||
<#messageBody/><#newLine/>
|
||||
<#replyPlacementOnBottom><#newLine/>
|
||||
<#newLine/>
|
||||
</#replyPlacementOnBottom><#signaturePlacementOnBottom><#signature/></#signaturePlacementOnBottom><#newLine/>
|
||||
@@ -0,0 +1,106 @@
|
||||
outlookMode: WOConditional {
|
||||
condition = outlookMode;
|
||||
}
|
||||
|
||||
standardMode: WOConditional {
|
||||
condition = outlookMode;
|
||||
negate = YES;
|
||||
}
|
||||
|
||||
subject: WOString {
|
||||
value = subject;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
date: WOString {
|
||||
value = date;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
from: WOString {
|
||||
value = from;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
newLine: WOString {
|
||||
value = newLine;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasReplyTo: WOConditional {
|
||||
condition = hasReplyTo;
|
||||
}
|
||||
|
||||
replyTo: WOString {
|
||||
value = replyTo;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasOrganization: WOConditional {
|
||||
condition = hasOrganization;
|
||||
}
|
||||
|
||||
organization: WOString {
|
||||
value = organization;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
to: WOString {
|
||||
value = to;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasCc: WOConditional {
|
||||
condition = hasCc;
|
||||
}
|
||||
|
||||
cc: WOString {
|
||||
value = cc;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasNewsGroups: WOConditional {
|
||||
condition = hasNewsGroups;
|
||||
}
|
||||
|
||||
newsgroups: WOString {
|
||||
value = newsgroups;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
hasReferences: WOConditional {
|
||||
condition = hasReferences;
|
||||
}
|
||||
|
||||
references: WOString {
|
||||
value = references;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
messageBody: WOString {
|
||||
value = messageBody;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
signature: WOString {
|
||||
value = signature;
|
||||
escapeHTML = NO;
|
||||
}
|
||||
|
||||
replyPlacementOnTop: WOConditional {
|
||||
condition = replyPlacementOnTop;
|
||||
}
|
||||
|
||||
replyPlacementOnBottom: WOConditional {
|
||||
condition = replyPlacementOnTop;
|
||||
negate = YES;
|
||||
}
|
||||
|
||||
signaturePlacementOnTop: WOConditional {
|
||||
condition = signaturePlacementOnTop;
|
||||
}
|
||||
|
||||
signaturePlacementOnBottom: WOConditional {
|
||||
condition = signaturePlacementOnTop;
|
||||
negate = YES;
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
"OtherUsersFolderName" = "Ostali uporabniki";
|
||||
"SharedFoldersName" = "Mape v skupni rabi";
|
||||
@@ -39,11 +39,11 @@
|
||||
|
||||
SOGoLoginModule = "Mail";
|
||||
SOGoLanguage = "English";
|
||||
SOGoSupportedLanguages = ( "Arabic", "Basque", "Catalan", "Czech", "Dutch", "Danish", "Welsh", "English",
|
||||
SOGoSupportedLanguages = ( "Arabic", "Basque", "Catalan", "ChineseTaiwan", "Czech", "Dutch", "Danish", "Welsh", "English",
|
||||
"SpanishSpain", "SpanishArgentina", "Finnish", "French", "German",
|
||||
"Icelandic", "Italian", "Hungarian", "BrazilianPortuguese",
|
||||
"NorwegianBokmal", "NorwegianNynorsk", "Polish", "Russian", "Slovak",
|
||||
"Ukrainian", "Swedish" );
|
||||
"Slovenian", "Ukrainian", "Swedish" );
|
||||
|
||||
SOGoTimeZone = "UTC";
|
||||
SOGoDayStartTime = "8";
|
||||
@@ -87,8 +87,6 @@
|
||||
$label5 = ("Later", "#993399");
|
||||
};
|
||||
|
||||
SOGoCalendarCategories = ("Customer", "Calls", "Favorites", "Meeting", "Ideas", "Miscellaneous", "Birthday", "Anniversary", "Vacation", "Travel", "Projects", "Suppliers", "Gifts", "Clients", "Issues", "Business", "Holidays", "Personal", "Status", "Competition", "Follow up", "Public Holiday");
|
||||
|
||||
SOGoCalendarCategoriesColors = { "Customer" = "#F0F0F0"; "Calls" = "#F0F0F0"; "Favorites" = "#F0F0F0"; "Meeting" = "#F0F0F0"; "Ideas" = "#F0F0F0"; "Miscellaneous" = "#F0F0F0"; "Birthday" = "#F0F0F0"; "Anniversary" = "#F0F0F0"; "Vacation" = "#F0F0F0"; "Travel" = "#F0F0F0"; "Projects" = "#F0F0F0"; "Suppliers" = "#F0F0F0"; "Gifts" = "#F0F0F0"; "Clients" = "#F0F0F0"; "Issues" = "#F0F0F0"; "Business" = "#F0F0F0"; "Holidays" = "#F0F0F0"; "Personal" = "#F0F0F0"; "Status" = "#F0F0F0"; "Competition" = "#F0F0F0"; "Follow up" = "#F0F0F0"; "Public Holiday" = "#F0F0F0"; };
|
||||
|
||||
SOGoSubscriptionFolderFormat = "%{FolderName} (%{UserName} <%{Email}>)";
|
||||
|
||||
@@ -77,6 +77,9 @@
|
||||
- (id) folderPropertyValueInCategory: (NSString *) theKey
|
||||
forUser: (SOGoUser *) theUser;
|
||||
|
||||
- (BOOL) synchronize;
|
||||
- (void) setSynchronize: (BOOL) new;
|
||||
|
||||
/* lower level fetches */
|
||||
- (void) deleteEntriesWithIds: (NSArray *) ids;
|
||||
|
||||
@@ -128,8 +131,8 @@
|
||||
|
||||
- (NSArray *) syncTokenFieldsWithProperties: (NSDictionary *) properties
|
||||
matchingSyncToken: (NSString *) syncToken
|
||||
fromDate: (NSCalendarDate *) theStartDate;
|
||||
|
||||
fromDate: (NSCalendarDate *) theStartDate
|
||||
initialLoad: (BOOL) initialLoadInProgress;
|
||||
|
||||
/* multiget helper */
|
||||
- (WOResponse *) performMultigetInContext: (WOContext *) queryContext
|
||||
|
||||
@@ -301,6 +301,29 @@ static NSArray *childRecordFields = nil;
|
||||
return name;
|
||||
}
|
||||
|
||||
- (BOOL) synchronize
|
||||
{
|
||||
NSNumber *synchronize;
|
||||
|
||||
synchronize = [self folderPropertyValueInCategory: @"FolderSynchronize"];
|
||||
|
||||
return [synchronize boolValue];
|
||||
}
|
||||
|
||||
- (void) setSynchronize: (BOOL) new
|
||||
{
|
||||
NSNumber *synchronize;
|
||||
|
||||
if (new)
|
||||
synchronize = [NSNumber numberWithBool: YES];
|
||||
else
|
||||
synchronize = nil;
|
||||
|
||||
[self setFolderPropertyValue: synchronize
|
||||
inCategory: @"FolderSynchronize"];
|
||||
}
|
||||
|
||||
|
||||
/* This method fetches the display name defined by the owner, but is also the
|
||||
fallback when a subscriber has not redefined the display name yet in their
|
||||
environment. */
|
||||
@@ -1151,6 +1174,7 @@ static NSArray *childRecordFields = nil;
|
||||
- (NSArray *) syncTokenFieldsWithProperties: (NSDictionary *) properties
|
||||
matchingSyncToken: (NSString *) syncToken
|
||||
fromDate: (NSCalendarDate *) theStartDate
|
||||
initialLoad: (BOOL) initialLoadInProgress
|
||||
{
|
||||
/* TODO:
|
||||
- validation:
|
||||
@@ -1200,13 +1224,17 @@ static NSArray *childRecordFields = nil;
|
||||
mRecords = [NSMutableArray arrayWithArray: [self _fetchFields: fields
|
||||
withQualifier: qualifier
|
||||
ignoreDeleted: YES]];
|
||||
qualifier = [EOQualifier qualifierWithQualifierFormat:
|
||||
@"c_lastmodified > %d and c_deleted == 1",
|
||||
syncTokenInt];
|
||||
fields = [NSMutableArray arrayWithObjects: @"c_name", @"c_lastmodified", @"c_deleted", nil];
|
||||
[mRecords addObjectsFromArray: [self _fetchFields: fields
|
||||
withQualifier: qualifier
|
||||
ignoreDeleted: NO]];
|
||||
if (!initialLoadInProgress)
|
||||
{
|
||||
qualifier = [EOQualifier qualifierWithQualifierFormat:
|
||||
@"c_lastmodified > %d and c_deleted == 1",
|
||||
syncTokenInt];
|
||||
fields = [NSMutableArray arrayWithObjects: @"c_name", @"c_lastmodified", @"c_deleted", nil];
|
||||
[mRecords addObjectsFromArray: [self _fetchFields: fields
|
||||
withQualifier: qualifier
|
||||
ignoreDeleted: NO]];
|
||||
}
|
||||
|
||||
records = mRecords;
|
||||
}
|
||||
else
|
||||
@@ -1499,7 +1527,9 @@ static NSArray *childRecordFields = nil;
|
||||
properties = [self parseDAVRequestedProperties: propElement];
|
||||
records = [self syncTokenFieldsWithProperties: properties
|
||||
matchingSyncToken: syncToken
|
||||
fromDate: nil];
|
||||
fromDate: nil
|
||||
initialLoad: NO];
|
||||
|
||||
[self _appendComponentProperties: [properties allKeys]
|
||||
fromRecords: records
|
||||
matchingSyncToken: [syncToken intValue]
|
||||
|
||||
@@ -780,7 +780,10 @@ static Class NSNullK;
|
||||
NSRange r;
|
||||
|
||||
r = [theUID rangeOfString: [NSString stringWithFormat: @"@%@", theDomain]];
|
||||
theUID = [theUID substringToIndex: r.location];
|
||||
|
||||
// We check if the range is ok here since we could be using DomainLessLogin
|
||||
if (r.location != NSNotFound)
|
||||
theUID = [theUID substringToIndex: r.location];
|
||||
}
|
||||
|
||||
sogoSources = [[self authenticationSourceIDsInDomain: theDomain] objectEnumerator];
|
||||
|
||||
@@ -489,10 +489,12 @@
|
||||
forKey: [field substringFromIndex: 2]];
|
||||
}
|
||||
|
||||
// FIXME
|
||||
// We have to do this here since we do not manage modules
|
||||
// constraints right now over a SQL backend.
|
||||
[response setObject: [NSNumber numberWithBool: YES] forKey: @"CalendarAccess"];
|
||||
[response setObject: [NSNumber numberWithBool: YES] forKey: @"MailAccess"];
|
||||
[response setObject: [NSNumber numberWithBool: YES] forKey: @"ActiveSyncAccess"];
|
||||
|
||||
// We set the domain, if any
|
||||
value = nil;
|
||||
|
||||
Reference in new issue
Block a user