From e410e21363a5bd1479693fed30206451782d7a7c Mon Sep 17 00:00:00 2001 From: Ahmed Date: Wed, 18 Sep 2024 15:17:51 +0300 Subject: [PATCH] feat: Add Yemeni Arabic translation (#880) --- client/src/locales/ar-YE/core.js | 252 ++++++++++++++++++++++++++++++ client/src/locales/ar-YE/index.js | 8 + client/src/locales/ar-YE/login.js | 23 +++ client/src/locales/index.js | 2 + server/api/models/User.js | 1 + 5 files changed, 286 insertions(+) create mode 100644 client/src/locales/ar-YE/core.js create mode 100644 client/src/locales/ar-YE/index.js create mode 100644 client/src/locales/ar-YE/login.js diff --git a/client/src/locales/ar-YE/core.js b/client/src/locales/ar-YE/core.js new file mode 100644 index 00000000..4dfea111 --- /dev/null +++ b/client/src/locales/ar-YE/core.js @@ -0,0 +1,252 @@ +import dateFns from 'date-fns/locale/ar'; + +export default { + dateFns, + + format: { + date: 'M/d/yyyy', + time: 'p', + dateTime: '$t(format:date) $t(format:time)', + longDate: 'MMM d', + longDateTime: "MMMM d 'at' p", + fullDate: 'MMM d, y', + fullDateTime: "MMMM d, y 'at' p", + }, + + translation: { + common: { + aboutPlanka: 'حول Planka', + account: 'الحساب', + actions: 'إجراءات', + addAttachment_title: 'إضافة مرفق', + addComment: 'إضافة تعليق', + addManager_title: 'إضافة مدير', + addMember_title: 'إضافة عضو', + addUser_title: 'إضافة مستخدم', + administrator: 'المدير', + all: 'الكل', + allChangesWillBeAutomaticallySavedAfterConnectionRestored: + 'سيتم حفظ جميع التغييرات تلقائياً
بعد استعادة الإتصال.', + areYouSureYouWantToDeleteThisAttachment: 'هل أنت متأكد أنك تريد حذف هذا المرفق؟', + areYouSureYouWantToDeleteThisBoard: 'هل أنت متأكد أنك تريد حذف هذه اللوحة؟', + areYouSureYouWantToDeleteThisCard: 'هل أنت متأكد أنك تريد حذف هذه البطاقة؟', + areYouSureYouWantToDeleteThisComment: 'هل أنت متأكد أنك تريد حذف هذا التعليق؟', + areYouSureYouWantToDeleteThisLabel: 'هل أنت متأكد أنك تريد حذف هذا الملصق؟', + areYouSureYouWantToDeleteThisList: 'هل أنت متأكد أنك تريد حذف هذه القائمة؟', + areYouSureYouWantToDeleteThisProject: 'هل أنت متأكد أنك تريد حذف هذا المشروع؟', + areYouSureYouWantToDeleteThisTask: 'هل أنت متأكد أنك تريد حذف هذه المهمة؟', + areYouSureYouWantToDeleteThisUser: 'هل أنت متأكد أنك تريد حذف هذا المستخدم؟', + areYouSureYouWantToLeaveBoard: 'هل أنت متأكد أنك تريد مغادرة اللوحة؟', + areYouSureYouWantToLeaveProject: 'هل أنت متأكد أنك تريد مغادرة المشروع؟', + areYouSureYouWantToRemoveThisManagerFromProject: + 'هل أنت متأكد أنك تريد إزالة هذا المدير من المشروع؟', + areYouSureYouWantToRemoveThisMemberFromBoard: + 'هل أنت متأكد أنك تريد إزالة هذا العضو من اللوحة؟', + attachment: 'مرفق', + attachments: 'مرفقات', + authentication: 'المصادقة', + background: 'الخلفية', + board: 'لوحة', + boardNotFound_title: 'لم يتم العثور على اللوحة', + canComment: 'يمكن التعليق', + canEditContentOfBoard: 'يمكن تعديل محتوى اللوحة.', + canOnlyViewBoard: 'يمكن فقط عرض اللوحة.', + cardActions_title: 'إجراءات البطاقة', + cardNotFound_title: 'لم يتم العثور على البطاقة', + cardOrActionAreDeleted: 'تم حذف البطاقة أو الإجراء.', + color: 'اللون', + copy_inline: 'نسخ', + createBoard_title: 'إنشاء لوحة', + createLabel_title: 'إنشاء ملصق', + createNewOneOrSelectExistingOne: 'أنشئ واحدة جديدة أو اختر
واحدة موجودة.', + createProject_title: 'إنشاء مشروع', + createTextFile_title: 'إنشاء ملف نصي', + currentPassword: 'كلمة المرور الحالية', + dangerZone_title: 'منطقة الخطر', + date: 'تاريخ', + dueDate: 'تاريخ الاستحقاق', + dueDate_title: 'تاريخ الاستحقاق', + deleteAttachment_title: 'حذف المرفق', + deleteBoard_title: 'حذف اللوحة', + deleteCard_title: 'حذف البطاقة', + deleteComment_title: 'حذف التعليق', + deleteLabel_title: 'حذف الملصق', + deleteList_title: 'حذف القائمة', + deleteProject_title: 'حذف المشروع', + deleteTask_title: 'حذف المهمة', + deleteUser_title: 'حذف المستخدم', + description: 'الوصف', + detectAutomatically: 'الكشف تلقائياً', + dropFileToUpload: 'أفلت الملف لرفعه', + editor: 'محرر', + editAttachment_title: 'تعديل المرفق', + editAvatar_title: 'تحرير الصورة الرمزية', + editBoard_title: 'تعديل اللوحة', + editDueDate_title: 'تعديل تاريخ الاستحقاق', + editEmail_title: 'تعديل البريد الإلكتروني', + editInformation_title: 'تعديل المعلومات', + editLabel_title: 'تعديل الملصق', + editPassword_title: 'تعديل كلمة المرور', + editPermissions_title: 'تعديل الأذونات', + editStopwatch_title: 'تعديل المؤقت', + editUsername_title: 'تعديل اسم المستخدم', + email: 'البريد الإلكتروني', + emailAlreadyInUse: 'البريد الإلكتروني مستخدم بالفعل', + enterCardTitle: 'أدخل عنوان البطاقة... [Ctrl+Enter] لفتحها تلقائيًا.', + enterDescription: 'أدخل الوصف...', + enterFilename: 'أدخل اسم الملف', + enterListTitle: 'أدخل عنوان القائمة...', + enterProjectTitle: 'أدخل عنوان المشروع', + enterTaskDescription: 'أدخل وصف المهمة...', + filterByLabels_title: 'تصفية حسب الملصقات', + filterByMembers_title: 'تصفية حسب الأعضاء', + fromComputer_title: 'من الكمبيوتر', + fromTrello: 'من Trello', + general: 'عام', + hours: 'ساعات', + importBoard_title: 'استيراد اللوحة', + invalidCurrentPassword: 'كلمة المرور الحالية غير صالحة', + labels: 'الملصقات', + language: 'اللغة', + leaveBoard_title: 'غادر اللوحة', + leaveProject_title: 'غادر المشروع', + linkIsCopied: 'تم نسخ الرابط', + list: 'القائمة', + listActions_title: 'قائمة الإجراءات', + managers: 'المديرون', + managerActions_title: 'إجراءات المدير', + members: 'الأعضاء', + memberActions_title: 'إجراءات العضو', + minutes: 'الدقائق', + moveCard_title: 'نقل البطاقة', + name: 'الاسم', + newestFirst: 'الأحدث أولاً', + newEmail: 'بريد إلكتروني جديد', + newPassword: 'كلمة سر جديدة', + newUsername: 'مستخدم جديد', + noConnectionToServer: 'لا يوجد اتصال بالخادم', + noBoards: 'لا توجد لوحات', + noLists: 'لاتوجد قوائم', + noProjects: 'لاتوجد مشاريع', + notifications: 'الإشعارات', + noUnreadNotifications: 'لاتوجد إشعارات غير مقروءة', + oldestFirst: 'الأقدم أولاً', + openBoard_title: 'فتح اللوحة', + optional_inline: 'اختياري', + organization: 'المنظمة', + phone: 'الهاتف', + preferences: 'التفضيلات', + pressPasteShortcutToAddAttachmentFromClipboard: + 'نصيحة: اضغط على Ctrl-V (Cmd-V على Mac) لإضافة مرفق من الحافظة.', + project: 'مشروع', + projectNotFound_title: 'المشروع غير موجود', + removeManager_title: 'إزالة المدير', + removeMember_title: 'إزالة العضو', + searchLabels: 'البحث عن التصنيفات...', + searchMembers: 'البحث عن الأعضاء...', + searchUsers: 'البحث عن المستخدمين...', + searchCards: 'البحث عن البطاقات...', + seconds: 'ثواني', + selectBoard: 'اختر لوحة', + selectList: 'اختر قائمة', + selectPermissions_title: 'حدد الأذونات', + selectProject: 'حدد المشروع', + settings: 'الإعدادات', + sortList_title: 'فرز القائمة', + stopwatch: 'المؤقت', + subscribeToMyOwnCardsByDefault: 'الاشتراك في بطاقاتي الخاصة إفتراضياً', + taskActions_title: 'إجراءات المهمة', + tasks: 'المهام', + thereIsNoPreviewAvailableForThisAttachment: 'لا يوجد معاينة متاحة لهذا المرفق.', + time: 'الوقت', + title: 'العنوان', + userActions_title: 'إجراءات المستخدم', + userAddedThisCardToList: '<0>{{user}}<1> تمت إضافة هذه البطاقة إلى {{list}}', + userLeftNewCommentToCard: '{{user}} ترك تعليق جديد «{{comment}}» إلى <2>{{card}}', + userMovedCardFromListToList: '{{user}} انتقل <2>{{card}} من {{fromList}} إلى {{toList}}', + userMovedThisCardFromListToList: + '<0>{{user}}<1> نُقلت هذه البطاقة من {{fromList}} إلى {{toList}}', + username: 'اسم المستخدم', + usernameAlreadyInUse: 'اسم المستخدم تم استخدامه بالفعل', + users: 'المستخدمين', + version: 'الإصدار', + viewer: 'مشاهد', + writeComment: 'اكتب تعليقاً...', + }, + + action: { + addAnotherCard: 'إضافة بطاقة أخرى', + addAnotherList: 'إضافة قائمة أخرى', + addAnotherTask: 'إضافة مهمة أخرى', + addCard: 'إضافة بطاقة', + addCard_title: 'إضافة بطاقة', + addComment: 'إضافة تعليق', + addList: 'إضافة قائمة', + addMember: 'إضافة عضو', + addMoreDetailedDescription: 'إضافة وصف أكثر تفصيلاً', + addTask: 'إضافة مهمة', + addToCard: 'إضافة إلى البطاقة', + addUser: 'إضافة مستخدم', + copyLink_title: 'نسخ الرابط', + createBoard: 'إنشاء لوحة', + createFile: 'إنشاء ملف', + createLabel: 'إنشاء ملصق', + createNewLabel: 'إنشاء ملصق جديد', + createProject: 'إنشاء مشروع', + delete: 'حذف', + deleteAttachment: 'حذف المرفق', + deleteAvatar: 'حذف الصورة الرمزية', + deleteBoard: 'حذف اللوحة', + deleteCard: 'حذف البطاقة', + deleteCard_title: 'حذف البطاقة', + deleteComment: 'حذف التعليق', + deleteImage: 'حذف الصورة', + deleteLabel: 'حذف الملصق', + deleteList: 'حذف القائمة', + deleteList_title: 'حذف القائمة', + deleteProject: 'حذف المشروع', + deleteProject_title: 'حذف المشروع', + deleteTask: 'حذف المهمة', + deleteTask_title: 'حذف المهمة', + deleteUser: 'حذف المستخدم', + duplicate: 'تكرار', + duplicateCard_title: 'تكرار البطاقة', + edit: 'تعديل', + editDueDate_title: 'تعديل تاريخ الاستحقاق', + editDescription_title: 'تعديل الوصف', + editEmail_title: 'تعديل البريد الإلكتروني', + editInformation_title: 'تعديل المعلومات', + editPassword_title: 'تعديل كلمة المرور', + editPermissions: 'تعديل الأذونات', + editStopwatch_title: 'تعديل المؤقت', + editTitle_title: 'تعديل العنوان', + editUsername_title: 'تعديل اسم المستخدم', + hideDetails: 'إخفاء التفاصيل', + import: 'استيراد', + leaveBoard: 'غادر اللوحة', + leaveProject: 'غادر المشروع', + logOut_title: 'تسجيل الخروج', + makeCover_title: 'إصنع غلافاً', + move: 'نقل', + moveCard_title: 'نقل البطاقة', + remove: 'حذف', + removeBackground: 'إزالة الخلفية', + removeCover_title: 'إزالة الغلاف', + removeFromBoard: 'إزالة اللوحة', + removeFromProject: 'إزالة المشروع', + removeManager: 'إزالة المدير', + removeMember: 'إزالة العضو', + save: 'حفظ', + showAllAttachments: 'إظهار جميع المرفقات ({{hidden}} hidden)', + showDetails: 'إظهار التفاصيل', + showFewerAttachments: 'عرض مرفقات أقل', + sortList_title: 'فرز القائمة', + start: 'ابدأ', + stop: 'توقف', + subscribe: 'اشترك', + unsubscribe: 'إلغاء الاشتراك', + uploadNewAvatar: 'رفع صورة رمزية جديدة', + uploadNewImage: 'رفع صورة جديدة', + }, + }, +}; diff --git a/client/src/locales/ar-YE/index.js b/client/src/locales/ar-YE/index.js new file mode 100644 index 00000000..d8a057fd --- /dev/null +++ b/client/src/locales/ar-YE/index.js @@ -0,0 +1,8 @@ +import login from './login'; + +export default { + language: 'ar-YE', + country: 'ye', + name: 'العربية', + embeddedLocale: login, +}; diff --git a/client/src/locales/ar-YE/login.js b/client/src/locales/ar-YE/login.js new file mode 100644 index 00000000..fa3731b0 --- /dev/null +++ b/client/src/locales/ar-YE/login.js @@ -0,0 +1,23 @@ +export default { + translation: { + common: { + emailOrUsername: 'البريد الإلكتروني أو اسم المستخدم', + invalidEmailOrUsername: 'البريد الإلكتروني أو اسم المستخدم غير صالح', + invalidCredentials: 'بيانات الاعتماد غير صالحة', + invalidPassword: 'كلمة المرور غير صالحة', + logInToPlanka: 'تسجيل الدخول إلى Planka', + noInternetConnection: 'لا يوجد اتصال بالإنترنت', + pageNotFound_title: 'الصفحة غير موجودة', + password: 'كلمة المرور', + projectManagement: 'إدارة المشروع', + serverConnectionFailed: 'فشل الاتصال بالخادم', + unknownError: 'خطأ غير معروف، يرجى المحاولة لاحقاً', + useSingleSignOn: 'استخدم تسجيل الدخول الموحد', + }, + + action: { + logIn: 'تسجيل الدخول', + logInWithSSO: 'تسجيل الدخول باستخدام SSO', + }, + }, +}; diff --git a/client/src/locales/index.js b/client/src/locales/index.js index 32b17327..3793b24a 100644 --- a/client/src/locales/index.js +++ b/client/src/locales/index.js @@ -1,3 +1,4 @@ +import arYE from './ar-YE'; import bgBG from './bg-BG'; import csCZ from './cs-CZ'; import daDK from './da-DK'; @@ -25,6 +26,7 @@ import zhCN from './zh-CN'; import zhTW from './zh-TW'; const locales = [ + arYE, bgBG, csCZ, daDK, diff --git a/server/api/models/User.js b/server/api/models/User.js index a4216c8a..2c17bea7 100755 --- a/server/api/models/User.js +++ b/server/api/models/User.js @@ -6,6 +6,7 @@ */ const LANGUAGES = [ + 'ar-YE', 'bg-BG', 'cs-CZ', 'da-DK',