Skip to content

Commit

Permalink
✨ feat: adding Arabic Language Support (#1049)
Browse files Browse the repository at this point in the history
* 🌐 feat(lang): Add Arabic language support

* 🌐 feat(lang): Add Arabic to LocaleOptions & fix RTL direction

* 🌐 feat(lang): Add Arabic to LocaleOptions & fix RTL direction

* 🎨 style(lang): Improve RTL support and use native Arabic label
  • Loading branch information
MEClouds committed Jan 15, 2024
1 parent 260caa3 commit a325ef9
Show file tree
Hide file tree
Showing 15 changed files with 872 additions and 3 deletions.
1 change: 1 addition & 0 deletions .i18nrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ module.exports = defineConfig({
entryLocale: 'zh-CN',
output: 'locales',
outputLocales: [
'ar',
'zh-TW',
'en-US',
'ru-RU',
Expand Down
96 changes: 96 additions & 0 deletions locales/ar/chat.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
{
"agentDefaultMessage": "مرحبًا، أنا **{{name}}**، يمكنك البدء في الدردشة معي على الفور، أو يمكنك الانتقال إلى [إعدادات المساعد](/chat/settings#session={{id}}) لتحسين معلوماتي.",
"agentDefaultMessageWithSystemRole": "مرحبًا، أنا **{{name}}**، {{systemRole}}، دعنا نبدأ الدردشة!",
"backToBottom": "العودة إلى الأسفل",
"clearCurrentMessages": "مسح رسائل الجلسة الحالية",
"confirmClearCurrentMessages": "سيتم مسح رسائل الجلسة الحالية قريبًا، وبمجرد المسح لن يمكن استعادتها، يرجى تأكيد الإجراء الخاص بك",
"confirmRemoveSessionItemAlert": "سيتم حذف هذا المساعد قريبًا، وبمجرد الحذف لن يمكن استعادته، يرجى تأكيد الإجراء الخاص بك",
"defaultAgent": "المساعد الافتراضي",
"defaultSession": "المساعد الافتراضي",
"duplicateTitle": "{{title}} نسخة",
"historyRange": "نطاق التاريخ",
"inbox": {
"defaultMessage": "مرحبًا، أنا مساعدك الذكي، يمكنك أن تسألني أي شيء وسأحاول الإجابة عليك. إذا كنت بحاجة إلى مساعد أكثر احترافية أو مخصصة، يمكنك النقر على `+` لإنشاء مساعد مخصص",
"desc": "قم بتشغيل مجموعة الدماغ وأشعل شرارة التفكير. مساعدك الذكي، هنا حيث يمكنك التواصل بكل شيء",
"title": "دردشة عشوائية"
},
"input": {
"onlyAdd": "إضافة الرسالة فقط",
"send": "إرسال",
"sendWithCmdEnter": "اضغط {{meta}} + Enter للإرسال",
"sendWithEnter": "اضغط Enter للإرسال",
"stop": "توقف",
"warp": "تغيير السطر"
},
"messageAction": {
"delAndRegenerate": "حذف وإعادة الإنشاء",
"regenerate": "إعادة الإنشاء"
},
"newAgent": "مساعد جديد",
"noDescription": "لا توجد وصف",
"pin": "تثبيت",
"pinOff": "إلغاء التثبيت",
"regenerate": "إعادة الإنشاء",
"roleAndArchive": "الدور والأرشيف",
"searchAgentPlaceholder": "البحث عن مساعد ومحادثة...",
"sendPlaceholder": "أدخل محتوى الدردشة...",
"sessionList": "قائمة المساعدين",
"shareModal": {
"download": "تحميل اللقطة",
"imageType": "نوع الصورة",
"screenshot": "لقطة شاشة",
"settings": "إعدادات التصدير",
"shareToShareGPT": "إنشاء رابط مشاركة ShareGPT",
"withBackground": "تضمين صورة الخلفية",
"withFooter": "تضمين تذييل",
"withPluginInfo": "تضمين معلومات البرنامج المساعد",
"withSystemRole": "تضمين دور المساعد"
},
"stt": {
"action": "إدخال صوتي",
"loading": "جارٍ التعرف...",
"prettifying": "جارٍ التجميل..."
},
"temp": "مؤقت",
"tokenDetail": "إعداد الدور: {{systemRoleToken}} · رسائل الجلسة: {{chatsToken}} · إعداد الأدوات: {{toolsToken}}",
"tokenTag": {
"overload": "تجاوز الحد",
"remained": "متبقي",
"used": "مستخدم"
},
"topic": {
"actions": {
"autoRename": "إعادة تسمية ذكية",
"duplicate": "إنشاء نسخة",
"export": "تصدير الموضوع"
},
"confirmRemoveAll": "سيتم حذف جميع المواضيع قريبًا، وبمجرد الحذف لن يمكن استعادتها، يرجى التحلي بالحذر.",
"confirmRemoveTopic": "سيتم حذف هذا الموضوع قريبًا، وبمجرد الحذف لن يمكن استعادته، يرجى التحلي بالحذر.",
"confirmRemoveUnstarred": "سيتم حذف المواضيع غير المحفوظة قريبًا، وبمجرد الحذف لن يمكن استعادتها، يرجى التحلي بالحذر.",
"defaultTitle": "الموضوع الافتراضي",
"guide": {
"desc": "انقر فوق زر الإرسال الأيسر لحفظ الجلسة الحالية كموضوع تاريخي وبدء جلسة جديدة",
"title": "قائمة المواضيع"
},
"openNewTopic": "فتح موضوع جديد",
"removeAll": "حذف جميع المواضيع",
"removeUnstarred": "حذف المواضيع غير المحفوظة",
"saveCurrentMessages": "حفظ الجلسة الحالية كموضوع",
"searchPlaceholder": "البحث في المواضيع...",
"title": "الموضوع"
},
"translate": {
"action": "ترجمة",
"clear": "مسح الترجمة"
},
"tts": {
"action": "قراءة صوتية",
"clear": "مسح الصوت"
},
"updateAgent": "تحديث معلومات المساعد",
"upload": {
"actionTooltip": "تحميل الصورة",
"dragDesc": "اسحب الملفات إلى هنا، يدعم تحميل عدة صور. اضغط على Shift لإرسال الصور مباشرة",
"dragTitle": "تحميل الصورة"
}
}
114 changes: 114 additions & 0 deletions locales/ar/common.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
{
"about": "حول",
"advanceSettings": "إعدادات متقدمة",
"agentMaxToken": "أقصى طول للجلسة",
"agentModel": "النموذج",
"agentProfile": "ملف المساعد",
"appInitializing": "جاري تهيئة LobeChat، يرجى الانتظار ...",
"archive": "أرشيف",
"autoGenerate": "توليد تلقائي",
"autoGenerateTooltip": "إكمال تلقائي بناءً على الكلمات المقترحة لوصف المساعد",
"cancel": "إلغاء",
"changelog": "سجل التغييرات",
"close": "إغلاق",
"confirmRemoveSessionItemAlert": "سيتم حذف هذا المساعد قريبًا، وبمجرد الحذف لن يمكن استعادته، يرجى تأكيد الإجراء",
"copy": "نسخ",
"copySuccess": "تم النسخ بنجاح",
"defaultAgent": "مساعد افتراضي",
"defaultSession": "جلسة افتراضية",
"delete": "حذف",
"duplicate": "إنشاء نسخة",
"edit": "تحرير",
"export": "تصدير الإعدادات",
"exportType": {
"agent": "تصدير إعدادات المساعد",
"agentWithMessage": "تصدير المساعد والرسائل",
"all": "تصدير الإعدادات العامة وجميع بيانات المساعد",
"allAgent": "تصدير جميع إعدادات المساعد",
"allAgentWithMessage": "تصدير جميع المساعدين والرسائل",
"globalSetting": "تصدير الإعدادات العامة"
},
"feedback": "تقديم ملاحظات",
"historyRange": "نطاق التاريخ",
"import": "استيراد الإعدادات",
"importModal": {
"finish": {
"onlySettings": "تم استيراد إعدادات النظام بنجاح",
"start": "ابدأ الاستخدام",
"subTitle": "تم استيراد البيانات بنجاح، وقت الاستيراد {{duration}} ثانية. تفاصيل الاستيراد كالتالي:",
"title": "اكتمال عملية الاستيراد"
},
"loading": "جاري استيراد البيانات، يرجى الانتظار...",
"result": {
"added": "تمت الإضافة بنجاح",
"errors": "حدثت أخطاء أثناء الاستيراد",
"messages": "الرسائل",
"sessions": "الجلسات",
"skips": "التخطيات",
"topics": "المواضيع",
"type": "نوع البيانات"
},
"title": "استيراد البيانات"
},
"lang": {
"bn": "البنغالية",
"cs-CZ": "التشيكية",
"da-DK": "الدنماركية",
"de-DE": "الألمانية",
"el-GR": "اليونانية",
"en": "الإنجليزية",
"en-US": "الإنجليزية",
"es-ES": "الإسبانية",
"fi-FI": "الفنلندية",
"fr-FR": "الفرنسية",
"hi-IN": "الهندية",
"hu-HU": "الهنغارية",
"id-ID": "الإندونيسية",
"it-IT": "الإيطالية",
"ja-JP": "اليابانية",
"ko-KR": "الكورية",
"nl-NL": "الهولندية",
"no-NO": "النرويجية",
"pl-PL": "البولندية",
"pt-BR": "البرتغالية",
"pt-PT": "البرتغالية",
"ro-RO": "الرومانية",
"ru-RU": "الروسية",
"sk-SK": "السلوفاكية",
"sr-RS": "الصربية",
"sv-SE": "السويدية",
"th-TH": "التايلاندية",
"tr-TR": "التركية",
"uk-UA": "الأوكرانية",
"vi-VN": "الفيتنامية",
"zh": "الصينية المبسطة",
"zh-CN": "الصينية المبسطة",
"zh-TW": "الصينية التقليدية"
},
"layoutInitializing": "جاري تحميل التخطيط...",
"noDescription": "لا توجد وصف",
"ok": "موافق",
"password": "كلمة المرور",
"pin": "تثبيت في الأعلى",
"pinOff": "إلغاء التثبيت",
"regenerate": "إعادة توليد",
"rename": "إعادة تسمية",
"reset": "إعادة تعيين",
"retry": "إعادة المحاولة",
"send": "إرسال",
"setting": "الإعدادات",
"share": "مشاركة",
"stop": "إيقاف",
"tab": {
"chat": "الدردشة",
"market": "الاكتشاف",
"setting": "الإعدادات"
},
"temp": "مؤقت",
"updateAgent": "تحديث معلومات الوكيل",
"upgradeVersion": {
"action": "ترقية",
"hasNew": "يوجد تحديث متاح",
"newVersion": "هناك إصدار جديد متاح: {{version}}"
}
}
72 changes: 72 additions & 0 deletions locales/ar/error.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
{
"pluginSettings": {
"desc": "أكمل الإعدادات التالية لبدء استخدام هذا المكون الإضافي",
"title": "تكوين مكون الإضافة {{name}}"
},
"response": {
"400": "عذرًا، الخادم غير قادر على فهم طلبك، يرجى التحقق من صحة معلمات الطلب الخاصة بك",
"401": "عذرًا، رفض الخادم طلبك، قد يكون بسبب صلاحياتك غير الكافية أو عدم تقديم التحقق من الهوية الصالحة",
"403": "عذرًا، رفض الخادم طلبك، ليس لديك إذن للوصول إلى هذا المحتوى",
"404": "عذرًا، الخادم لا يمكنه العثور على الصفحة أو المورد المطلوب، يرجى التحقق من صحة عنوان URL الخاص بك",
"405": "عذرًا، الخادم لا يدعم طريقة الطلب المستخدمة، يرجى التحقق من صحة طريقة الطلب الخاصة بك",
"406": "عذرًا، الخادم غير قادر على استكمال الطلب وفقًا لخصائص المحتوى التي طلبتها",
"407": "عذرًا، تحتاج إلى مصادقة الوكيل لمتابعة هذا الطلب",
"408": "عذرًا، تجاوز الخادم الوقت المحدد في انتظار الطلب، يرجى التحقق من اتصالك بالشبكة والمحاولة مرة أخرى",
"409": "عذرًا، يوجد تضارب في الطلب الذي لا يمكن معالجته، قد يكون بسبب عدم توافق حالة المورد مع الطلب",
"410": "عذرًا، تمت إزالة المورد الذي طلبته بشكل دائم ولا يمكن العثور عليه",
"411": "عذرًا، الخادم غير قادر على معالجة الطلب الذي لا يحتوي على طول محتوى صالح",
"412": "عذرًا، لم يتم تلبية شروط الخادم الجانبية لطلبك ولا يمكن استكمال الطلب",
"413": "عذرًا، حجم بيانات طلبك كبير جدًا والخادم غير قادر على معالجته",
"414": "عذرًا، طول عنوان URI الخاص بطلبك كبير جدًا والخادم غير قادر على معالجته",
"415": "عذرًا، الخادم غير قادر على معالجة تنسيق الوسائط المرفقة بالطلب",
"416": "عذرًا، الخادم غير قادر على تلبية نطاق الطلب الذي قدمته",
"417": "عذرًا، الخادم غير قادر على تلبية قيم توقعاتك",
"422": "عذرًا، الطلب لديه تنسيق صحيح، ولكن بسبب وجود أخطاء دلالية، لا يمكن الاستجابة",
"423": "عذرًا، تم قفل المورد الذي طلبته",
"424": "عذرًا، بسبب فشل الطلب السابق، لا يمكن استكمال الطلب الحالي",
"426": "عذرًا، يتطلب الخادم ترقية عميلك إلى إصدار بروتوكول أعلى",
"428": "عذرًا، يتطلب الخادم شروطًا مسبقة، ويجب أن يحتوي طلبك على رؤوس الشروط الصحيحة",
"429": "عذرًا، طلبك كثير جدًا والخادم متعب قليلاً، يرجى المحاولة مرة أخرى لاحقًا",
"431": "عذرًا، حقول رأس الطلب الخاصة بك كبيرة جدًا والخادم غير قادر على معالجتها",
"451": "عذرًا، بسبب الأسباب القانونية، يرفض الخادم توفير هذا المورد",
"500": "عذرًا، يبدو أن الخادم واجه بعض الصعوبات ولا يمكنه حاليًا استكمال طلبك، يرجى المحاولة مرة أخرى لاحقًا",
"502": "عذرًا، يبدو أن الخادم قد ضل الطريق ولا يمكنه حاليًا تقديم الخدمة، يرجى المحاولة مرة أخرى لاحقًا",
"503": "عذرًا، الخادم غير قادر حاليًا على معالجة طلبك، قد يكون بسبب الحمل الزائد أو الصيانة الجارية، يرجى المحاولة مرة أخرى لاحقًا",
"504": "عذرًا، الخادم لم ينتظر ردًا من الخادم الأصلي، يرجى المحاولة مرة أخرى لاحقًا",
"InvalidAccessCode": "كلمة المرور غير صحيحة أو فارغة، يرجى إدخال كلمة مرور الوصول الصحيحة أو إضافة مفتاح API الخاص بك",
"NoAPIKey": "مفتاح API الخاص بـ OpenAI فارغ، يرجى إضافة مفتاح API الخاص بـ OpenAI",
"OpenAIBizError": "حدث خطأ في طلب خدمة OpenAI، يرجى التحقق من المعلومات أدناه وإعادة المحاولة",
"PluginApiNotFound": "عذرًا، لا يوجد API للإضافة في وصف الإضافة، يرجى التحقق من تطابق طريقة الطلب الخاصة بك مع API الوصف",
"PluginApiParamsError": "عذرًا، فشلت التحقق من صحة معلمات الطلب للإضافة، يرجى التحقق من تطابق المعلمات مع معلومات الوصف",
"PluginGatewayError": "عذرًا، حدث خطأ في بوابة الإضافة، يرجى التحقق من تكوين بوابة الإضافة",
"PluginManifestInvalid": "عذرًا، فشلت التحقق من صحة وصف الإضافة، يرجى التحقق من تنسيق وصف الإضافة",
"PluginManifestNotFound": "عذرًا، لم يتم العثور على وصف الإضافة (manifest.json) في الخادم، يرجى التحقق من صحة عنوان ملف وصف الإضافة",
"PluginMarketIndexInvalid": "عذرًا، فشلت التحقق من صحة فهرس الإضافات، يرجى التحقق من تنسيق ملف الفهرس",
"PluginMarketIndexNotFound": "عذرًا، لم يتم العثور على فهرس الإضافات في الخادم، يرجى التحقق من صحة عنوان الفهرس",
"PluginMetaInvalid": "عذرًا، فشلت التحقق من صحة بيانات الإضافة، يرجى التحقق من تنسيق بيانات الإضافة",
"PluginMetaNotFound": "عذرًا، لم يتم العثور على معلومات تكوين الإضافة في الفهرس",
"PluginOpenApiInitError": "عذرًا، فشل تهيئة عميل OpenAPI، يرجى التحقق من معلومات تكوين OpenAPI",
"PluginServerError": "خطأ في استجابة الخادم لطلب الإضافة، يرجى التحقق من ملف وصف الإضافة وتكوين الإضافة وتنفيذ الخادم وفقًا لمعلومات الخطأ أدناه",
"PluginSettingsInvalid": "تحتاج هذه الإضافة إلى تكوين صحيح قبل الاستخدام، يرجى التحقق من صحة تكوينك"
},
"stt": {
"responseError": "فشل طلب الخدمة، يرجى التحقق من الإعدادات أو إعادة المحاولة"
},
"tts": {
"responseError": "فشل طلب الخدمة، يرجى التحقق من الإعدادات أو إعادة المحاولة"
},
"unlock": {
"apikey": {
"addProxyUrl": "إضافة عنوان الوكيل لـ OpenAI (اختياري)",
"description": "قم بإدخال مفتاح OpenAI API الخاص بك لبدء الجلسة. لن يتم تسجيل مفتاح الخاص بك من قبل التطبيق",
"title": "استخدام مفتاح API مخصص"
},
"closeMessage": "إغلاق الرسالة",
"confirm": "تأكيد وإعادة المحاولة",
"password": {
"description": "قام المسؤول بتشفير التطبيق، قم بإدخال كلمة مرور التطبيق لفتح التطبيق. يتعين إدخال كلمة المرور مرة واحدة فقط",
"placeholder": "الرجاء إدخال كلمة المرور",
"title": "إدخال كلمة المرور لفتح التطبيق"
}
}
}
30 changes: 30 additions & 0 deletions locales/ar/market.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"addAgent": "إضافة وكيل",
"guide": {
"func1": {
"desc1": "في نافذة الدردشة، انتقل إلى صفحة إعدادات الوكيل التي ترغب في تقديمها من الزاوية اليمنى العلوية.",
"desc2": "انقر فوق زر تقديم إلى سوق الوكلاء في الزاوية اليمنى العلوية.",
"tag": "الطريقة الأولى",
"title": "تقديم عبر LobeChat"
},
"func2": {
"button": "انتقل إلى مستودع وكلاء Github",
"desc": "إذا كنت ترغب في إضافة الوكيل إلى الفهرس، يرجى استخدام agent-template.json أو agent-template-full.json لإنشاء إدخال في دليل plugins، وكتابة وصف موجز ووضع علامات بشكل مناسب، ثم إنشاء طلب سحب.",
"tag": "الطريقة الثانية",
"title": "تقديم عبر Github"
}
},
"search": {
"placeholder": "ابحث عن اسم الوكيل أو وصفه أو كلمات رئيسية..."
},
"sidebar": {
"comment": "منطقة النقاش",
"prompt": "كلمة تلميح",
"title": "تفاصيل الوكيل"
},
"submitAgent": "تقديم الوكيل",
"title": {
"allAgents": "جميع الوكلاء",
"recentSubmits": "الإضافات الأخيرة"
}
}
Loading

0 comments on commit a325ef9

Please sign in to comment.