Skip to content

Commit

Permalink
Initial Arabic translation
Browse files Browse the repository at this point in the history
  • Loading branch information
cgx committed Apr 8, 2013
1 parent b4aaa68 commit 37a6f82
Show file tree
Hide file tree
Showing 81 changed files with 2,123 additions and 12 deletions.
10 changes: 10 additions & 0 deletions .tx/config
Expand Up @@ -4,6 +4,7 @@ host = https://www.transifex.net
[sogo.ui-mailerui]
source_file = UI/MailerUI/English.lproj/Localizable.strings
source_lang = en
trans.ar = UI/MailerUI/Arabic.lproj/Localizable.strings
trans.ca = UI/MailerUI/Catalan.lproj/Localizable.strings
trans.cs = UI/MailerUI/Czech.lproj/Localizable.strings
trans.cy = UI/MailerUI/Welsh.lproj/Localizable.strings
Expand All @@ -29,6 +30,7 @@ trans.uk = UI/MailerUI/Ukrainian.lproj/Localizable.strings
[sogo.ui-preferencesui]
source_file = UI/PreferencesUI/English.lproj/Localizable.strings
source_lang = en
trans.ar = UI/PreferencesUI/Arabic.lproj/Localizable.strings
trans.ca = UI/PreferencesUI/Catalan.lproj/Localizable.strings
trans.cs = UI/PreferencesUI/Czech.lproj/Localizable.strings
trans.cy = UI/PreferencesUI/Welsh.lproj/Localizable.strings
Expand All @@ -54,6 +56,7 @@ trans.uk = UI/PreferencesUI/Ukrainian.lproj/Localizable.strings
[sogo.ui-scheduler]
source_file = UI/Scheduler/English.lproj/Localizable.strings
source_lang = en
trans.ar = UI/Scheduler/Arabic.lproj/Localizable.strings
trans.ca = UI/Scheduler/Catalan.lproj/Localizable.strings
trans.cs = UI/Scheduler/Czech.lproj/Localizable.strings
trans.cy = UI/Scheduler/Welsh.lproj/Localizable.strings
Expand All @@ -79,6 +82,7 @@ trans.uk = UI/Scheduler/Ukrainian.lproj/Localizable.strings
[sogo.ui-contacts]
source_file = UI/Contacts/English.lproj/Localizable.strings
source_lang = en
trans.ar = UI/Contacts/Arabic.lproj/Localizable.strings
trans.ca = UI/Contacts/Catalan.lproj/Localizable.strings
trans.cs = UI/Contacts/Czech.lproj/Localizable.strings
trans.cy = UI/Contacts/Welsh.lproj/Localizable.strings
Expand All @@ -104,6 +108,7 @@ trans.uk = UI/Contacts/Ukrainian.lproj/Localizable.strings
[sogo.ui-mainui]
source_file = UI/MainUI/English.lproj/Localizable.strings
source_lang = en
trans.ar = UI/MainUI/Arabic.lproj/Localizable.strings
trans.ca = UI/MainUI/Catalan.lproj/Localizable.strings
trans.cs = UI/MainUI/Czech.lproj/Localizable.strings
trans.cy = UI/MainUI/Welsh.lproj/Localizable.strings
Expand All @@ -129,6 +134,7 @@ trans.uk = UI/MainUI/Ukrainian.lproj/Localizable.strings
[sogo.ui-common]
source_file = UI/Common/English.lproj/Localizable.strings
source_lang = en
trans.ar = UI/Common/Arabic.lproj/Localizable.strings
trans.ca = UI/Common/Catalan.lproj/Localizable.strings
trans.cs = UI/Common/Czech.lproj/Localizable.strings
trans.cy = UI/Common/Welsh.lproj/Localizable.strings
Expand All @@ -154,6 +160,7 @@ trans.uk = UI/Common/Ukrainian.lproj/Localizable.strings
[sogo.ui-administrationui]
source_file = UI/AdministrationUI/English.lproj/Localizable.strings
source_lang = en
trans.ar = UI/AdministrationUI/Arabic.lproj/Localizable.strings
trans.ca = UI/AdministrationUI/Catalan.lproj/Localizable.strings
trans.cs = UI/AdministrationUI/Czech.lproj/Localizable.strings
trans.cy = UI/AdministrationUI/Welsh.lproj/Localizable.strings
Expand All @@ -179,6 +186,7 @@ trans.uk = UI/AdministrationUI/Ukrainian.lproj/Localizable.strings
[sogo.soobjects-appointments]
source_file = SoObjects/Appointments/English.lproj/Localizable.strings
source_lang = en
trans.ar = SoObjects/Appointments/Arabic.lproj/Localizable.strings
trans.ca = SoObjects/Appointments/Catalan.lproj/Localizable.strings
trans.cs = SoObjects/Appointments/Czech.lproj/Localizable.strings
trans.cy = SoObjects/Appointments/Welsh.lproj/Localizable.strings
Expand All @@ -204,6 +212,7 @@ trans.uk = SoObjects/Appointments/Ukrainian.lproj/Localizable.strings
[sogo.soobjects-contacts]
source_file = SoObjects/Contacts/English.lproj/Localizable.strings
source_lang = en
trans.ar = SoObjects/Contacts/Arabic.lproj/Localizable.strings
trans.ca = SoObjects/Contacts/Catalan.lproj/Localizable.strings
trans.cs = SoObjects/Contacts/Czech.lproj/Localizable.strings
trans.cy = SoObjects/Contacts/Welsh.lproj/Localizable.strings
Expand All @@ -229,6 +238,7 @@ trans.uk = SoObjects/Contacts/Ukrainian.lproj/Localizable.strings
[sogo.ui-mailpartviewers]
source_file = UI/MailPartViewers/English.lproj/Localizable.strings
source_lang = en
trans.ar = UI/MailPartViewers/Arabic.lproj/Localizable.strings
trans.ca = UI/MailPartViewers/Catalan.lproj/Localizable.strings
trans.cs = UI/MailPartViewers/Czech.lproj/Localizable.strings
trans.cy = UI/MailPartViewers/Welsh.lproj/Localizable.strings
Expand Down
66 changes: 66 additions & 0 deletions SoObjects/Appointments/Arabic.lproj/Localizable.strings
@@ -0,0 +1,66 @@
"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}\n";
"%{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}\n";

/* 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"
= "موعد \"%{Summary}\" بتاريخ %{OldStartDate} قد تغير";
"The appointment \"%{Summary}\" for the %{OldStartDate} at %{OldStartTime} has changed"
= "تعيين \"%{Summary}\" ل٪ {OldStartDate} في {٪ OldStartTime} قد تغيرت";
"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}." = "الحد الأقصى لعدد الحجوزات في وقت واحد (%{NumberOfSimultaneousBookings}) وصلت للموارد \"%{Cn} %{SystemEmail}\" . الحدث المتضارب في الموعد هو \"٪ {EventTitle}\"، ويبدأ فى٪ {StartDate}.";
2 changes: 1 addition & 1 deletion SoObjects/Appointments/GNUmakefile
Expand Up @@ -53,7 +53,7 @@ Appointments_RESOURCE_FILES += \
\
MSExchangeFreeBusySOAPRequest.wo

Appointments_LANGUAGES = 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 BrazilianPortuguese Catalan Czech Danish Dutch English Finnish French German Hungarian Icelandic Italian NorwegianBokmal NorwegianNynorsk Polish Russian Slovak SpanishSpain SpanishArgentina Swedish Ukrainian Welsh

Appointments_LOCALIZED_RESOURCE_FILES = Localizable.strings

Expand Down
1 change: 1 addition & 0 deletions SoObjects/Contacts/Arabic.lproj/Localizable.strings
@@ -0,0 +1 @@
"Personal Address Book" = "دفتر العناوين الشخصية";
2 changes: 1 addition & 1 deletion SoObjects/Contacts/GNUmakefile
Expand Up @@ -27,7 +27,7 @@ Contacts_OBJC_FILES = \
Contacts_RESOURCE_FILES += \
product.plist \

Contacts_LANGUAGES = 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 BrazilianPortuguese Catalan Czech Danish Dutch English Finnish French German Hungarian Icelandic Italian NorwegianBokmal NorwegianNynorsk Polish Russian Slovak SpanishSpain SpanishArgentina Swedish Ukrainian Welsh

Contacts_LOCALIZED_RESOURCE_FILES = Localizable.strings

Expand Down
2 changes: 2 additions & 0 deletions SoObjects/Mailer/GNUmakefile
Expand Up @@ -42,6 +42,8 @@ Mailer_RESOURCE_FILES += \
product.plist \

Mailer_RESOURCE_FILES += \
SOGoMailArabicForward.wo \
SOGoMailArabicReply.wo \
SOGoMailBrazilianPortugueseForward.wo \
SOGoMailBrazilianPortugueseReply.wo \
SOGoMailCatalanForward.wo \
Expand Down
@@ -0,0 +1,13 @@
<#newLine/>
<#newLine/>
<#newLine/>
-------- الرسالة الاصلية --------<#newLine/>
الموضوع: <#subject/><#newLine/>
التاريخ: <#date/><#newLine/>
من: <#from/><#newLine/>
<#hasReplyTo>ردً على: <#replyTo/></#hasReplyTo><#hasOrganization>المنظمة: <#organization/></#hasOrganization>إلى: <#to/><#newLine/>
<#hasCc>CC: <#cc/></#hasCc><#hasNewsGroups>مجموعات الأخبار: <#newsgroups/></#hasNewsGroups><#hasReferences>المراجع: <#references/></#hasReferences><#newLine/>
<#newLine/>
<#messageBody/><#newLine/>
<#newLine/>
<#signature/><#newLine/>
@@ -0,0 +1,79 @@
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;
}
16 changes: 16 additions & 0 deletions SoObjects/Mailer/SOGoMailArabicReply.wo/SOGoMailArabicReply.html
@@ -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: <#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/>
106 changes: 106 additions & 0 deletions SoObjects/Mailer/SOGoMailArabicReply.wo/SOGoMailArabicReply.wod
@@ -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 comments on commit 37a6f82

Please sign in to comment.