mirror of
https://github.com/lobehub/lobe-chat.git
synced 2026-06-13 19:20:04 +00:00
✨ feat: adding Arabic Language Support (#1049)
* 🌐 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
This commit is contained in:
@@ -5,6 +5,7 @@ module.exports = defineConfig({
|
||||
entryLocale: 'zh-CN',
|
||||
output: 'locales',
|
||||
outputLocales: [
|
||||
'ar',
|
||||
'zh-TW',
|
||||
'en-US',
|
||||
'ru-RU',
|
||||
|
||||
@@ -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": "تحميل الصورة"
|
||||
}
|
||||
}
|
||||
@@ -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}}"
|
||||
}
|
||||
}
|
||||
@@ -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": "إدخال كلمة المرور لفتح التطبيق"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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": "الإضافات الأخيرة"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"dbV1": {
|
||||
"action": {
|
||||
"clearDB": "مسح البيانات المحلية",
|
||||
"downloadBackup": "تنزيل نسخة احتياطية للبيانات",
|
||||
"reUpgrade": "إعادة الترقية",
|
||||
"start": "ابدأ الاستخدام",
|
||||
"upgrade": "ترقية فورية"
|
||||
},
|
||||
"clear": {
|
||||
"confirm": "سيتم مسح البيانات المحلية (دون تأثير على الإعدادات العامة)، يرجى التأكد من تنزيل نسخة احتياطية للبيانات."
|
||||
},
|
||||
"description": "في الإصدار الجديد، تم تحقيق قفزة هائلة في تخزين بيانات LobeChat. لذا نحتاج إلى ترقية البيانات القديمة لتوفير تجربة استخدام أفضل لك.",
|
||||
"features": {
|
||||
"capability": {
|
||||
"desc": "بناءً على تقنية IndexedDB، يمكنها استيعاب رسائل المحادثات طوال حياتك",
|
||||
"title": "سعة كبيرة"
|
||||
},
|
||||
"performance": {
|
||||
"desc": "ملايين الرسائل مفهرسة تلقائيًا، استجابة فورية للاستعلامات بالميلي ثانية",
|
||||
"title": "أداء عالي"
|
||||
},
|
||||
"use": {
|
||||
"desc": "دعم البحث في العناوين والوصف والعلامات ومحتوى الرسائل وحتى النصوص المترجمة، مما يعزز كفاءة البحث اليومي بشكل كبير",
|
||||
"title": "أكثر سهولة في الاستخدام"
|
||||
}
|
||||
},
|
||||
"title": "تطور بيانات LobeChat",
|
||||
"upgrade": {
|
||||
"error": {
|
||||
"subTitle": "نأسف جدًا، حدث استثناء أثناء عملية ترقية قاعدة البيانات. يرجى تجربة الحلول التالية: أ. مسح البيانات المحلية ثم إعادة استيراد بيانات النسخ الاحتياطي؛ ب. انقر على زر \"إعادة الترقية\".<br><br> إذا استمرت المشكلة، يرجى <1>تقديم مشكلتك</1>، سنقوم بمساعدتك في أقرب وقت ممكن",
|
||||
"title": "فشل ترقية قاعدة البيانات"
|
||||
},
|
||||
"success": {
|
||||
"subTitle": "تم ترقية قاعدة بيانات LobeChat إلى أحدث إصدار، ابدأ التجربة الآن",
|
||||
"title": "نجاح ترقية قاعدة البيانات"
|
||||
}
|
||||
},
|
||||
"upgradeTip": "من المتوقع أن تستغرق عملية الترقية حوالي 10-20 ثانية، يرجى عدم إغلاق LobeChat خلال عملية الترقية"
|
||||
},
|
||||
"migrateError": {
|
||||
"missVersion": "البيانات المستوردة تفتقد رقم الإصدار، يرجى التحقق من الملف وإعادة المحاولة",
|
||||
"noMigration": "لم يتم العثور على خطة هجرة تتوافق مع الإصدار الحالي، يرجى التحقق من رقم الإصدار وإعادة المحاولة. إذا استمرت المشكلة، يرجى تقديم ملاحظاتك"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
{
|
||||
"debug": {
|
||||
"arguments": "متغيرات الاستدعاء",
|
||||
"function_call": "استدعاء الدالة",
|
||||
"off": "إيقاف التصحيح",
|
||||
"on": "عرض معلومات استدعاء البرنامج المساعد",
|
||||
"response": "الرد"
|
||||
},
|
||||
"detailModal": {
|
||||
"info": {
|
||||
"description": "وصف واجهة برمجة التطبيقات",
|
||||
"name": "اسم واجهة برمجة التطبيقات"
|
||||
},
|
||||
"tabs": {
|
||||
"info": "قدرات البرنامج المساعد",
|
||||
"manifest": "ملف التثبيت",
|
||||
"settings": "الإعدادات"
|
||||
},
|
||||
"title": "تفاصيل البرنامج المساعد"
|
||||
},
|
||||
"dev": {
|
||||
"confirmDeleteDevPlugin": "سيتم حذف البرنامج المساعد المحلي، وبمجرد الحذف لن يمكن استعادته، هل ترغب في حذف هذا البرنامج المساعد؟",
|
||||
"customParams": {
|
||||
"useProxy": {
|
||||
"label": "تثبيت عبر الوكيل (في حالة حدوث أخطاء الوصول عبر النطاقات المتقاطعة، يمكنك تجربة تفعيل هذا الخيار ثم إعادة التثبيت)"
|
||||
}
|
||||
},
|
||||
"deleteSuccess": "تم حذف البرنامج المساعد بنجاح",
|
||||
"manifest": {
|
||||
"identifier": {
|
||||
"desc": "العلامة المميزة للبرنامج المساعد",
|
||||
"label": "المعرف"
|
||||
},
|
||||
"mode": {
|
||||
"local": "تكوين بصري",
|
||||
"local-tooltip": "غير مدعوم مؤقتًا",
|
||||
"url": "رابط عبر الإنترنت"
|
||||
},
|
||||
"name": {
|
||||
"desc": "عنوان البرنامج المساعد",
|
||||
"label": "العنوان",
|
||||
"placeholder": "محرك البحث"
|
||||
}
|
||||
},
|
||||
"meta": {
|
||||
"author": {
|
||||
"desc": "مؤلف البرنامج المساعد",
|
||||
"label": "المؤلف"
|
||||
},
|
||||
"avatar": {
|
||||
"desc": "رمز البرنامج المساعد، يمكن استخدام الرموز التعبيرية أو روابط URL",
|
||||
"label": "الرمز"
|
||||
},
|
||||
"description": {
|
||||
"desc": "وصف البرنامج المساعد",
|
||||
"label": "الوصف",
|
||||
"placeholder": "البحث في محركات البحث للحصول على المعلومات"
|
||||
},
|
||||
"formFieldRequired": "هذا الحقل مطلوب",
|
||||
"homepage": {
|
||||
"desc": "صفحة البداية للبرنامج المساعد",
|
||||
"label": "الصفحة الرئيسية"
|
||||
},
|
||||
"identifier": {
|
||||
"desc": "العلامة المميزة للبرنامج المساعد، سيتم التعرف عليها تلقائيًا من خلال الملف التعريفي",
|
||||
"errorDuplicate": "تكرار العلامة المميزة مع برنامج مساعد موجود، يرجى تعديل العلامة المميزة",
|
||||
"label": "المعرف",
|
||||
"pattenErrorMessage": "يمكن إدخال الأحرف الإنجليزية والأرقام والرمزين - و_ فقط"
|
||||
},
|
||||
"manifest": {
|
||||
"desc": "سيقوم LobeChat بتثبيت البرنامج المساعد من خلال هذا الرابط",
|
||||
"label": "ملف وصف البرنامج المساعد (Manifest) URL",
|
||||
"preview": "معاينة الملف التعريفي",
|
||||
"refresh": "تحديث"
|
||||
},
|
||||
"title": {
|
||||
"desc": "عنوان البرنامج المساعد",
|
||||
"label": "العنوان",
|
||||
"placeholder": "محرك البحث"
|
||||
}
|
||||
},
|
||||
"metaConfig": "تكوين معلومات البرنامج المساعد",
|
||||
"modalDesc": "بعد إضافة البرنامج المساعد المخصص، يمكن استخدامه للتحقق من تطوير البرنامج المساعد، كما يمكن استخدامه مباشرة في الدردشة. للحصول على معلومات حول تطوير البرنامج المساعد، يرجى الرجوع إلى <1>وثائق التطوير↗</>",
|
||||
"openai": {
|
||||
"importUrl": "استيراد من رابط URL",
|
||||
"schema": "مخطط"
|
||||
},
|
||||
"preview": {
|
||||
"card": "معاينة عرض البرنامج المساعد",
|
||||
"desc": "معاينة وصف البرنامج المساعد",
|
||||
"title": "معاينة اسم البرنامج المساعد"
|
||||
},
|
||||
"save": "تثبيت البرنامج المساعد",
|
||||
"saveSuccess": "تم حفظ إعدادات البرنامج المساعد بنجاح",
|
||||
"tabs": {
|
||||
"manifest": "قائمة وصف الوظائف (Manifest)",
|
||||
"meta": "معلومات البرنامج المساعد"
|
||||
},
|
||||
"title": {
|
||||
"create": "إضافة برنامج مساعد مخصص",
|
||||
"edit": "تحرير برنامج مساعد مخصص"
|
||||
},
|
||||
"type": {
|
||||
"lobe": "برنامج مساعد LobeChat",
|
||||
"openai": "برنامج مساعد OpenAI"
|
||||
},
|
||||
"update": "تحديث",
|
||||
"updateSuccess": "تم تحديث إعدادات البرنامج المساعد بنجاح"
|
||||
},
|
||||
"error": {
|
||||
"fetchError": "فشل طلب الرابط المعطى للملف، يرجى التأكد من صحة الرابط والسماح بالوصول عبر النطاقات المختلفة",
|
||||
"installError": "فشل تثبيت الإضافة {{name}}",
|
||||
"manifestInvalid": "الملف غير مطابق للمواصفات، نتيجة التحقق: \n\n {{error}}",
|
||||
"noManifest": "ملف الوصف غير موجود",
|
||||
"openAPIInvalid": "فشل تحليل OpenAPI، الخطأ: \n\n {{error}}",
|
||||
"reinstallError": "فشل تحديث الإضافة {{name}}",
|
||||
"urlError": "الرابط لا يعيد محتوى بتنسيق JSON، يرجى التأكد من صحة الرابط"
|
||||
},
|
||||
"list": {
|
||||
"item": {
|
||||
"deprecated.title": "مهجور",
|
||||
"local.config": "التكوين",
|
||||
"local.title": "مخصص"
|
||||
}
|
||||
},
|
||||
"loading": {
|
||||
"content": "جاري استدعاء الإضافة...",
|
||||
"plugin": "جاري تشغيل الإضافة..."
|
||||
},
|
||||
"pluginList": "قائمة الإضافات",
|
||||
"plugins": {
|
||||
"loading": "جاري فحص الأدوات...",
|
||||
"unknown": "أداة غير معروفة"
|
||||
},
|
||||
"setting": "إعدادات الإضافة",
|
||||
"settings": {
|
||||
"indexUrl": {
|
||||
"title": "فهرس السوق",
|
||||
"tooltip": "غير مدعوم حاليا للتحرير عبر الإنترنت، يرجى ضبطه عند نشر المتغيرات البيئية"
|
||||
},
|
||||
"modalDesc": "بعد ضبط عنوان سوق الإضافات، يمكن استخدام سوق الإضافات المخصص",
|
||||
"title": "ضبط سوق الإضافات"
|
||||
},
|
||||
"store": {
|
||||
"actions": {
|
||||
"confirmUninstall": "سيتم إلغاء تثبيت الإضافة، وسيتم مسح تكوين الإضافة، يرجى تأكيد العملية",
|
||||
"detail": "التفاصيل",
|
||||
"install": "تثبيت",
|
||||
"manifest": "تحرير ملف التثبيت",
|
||||
"settings": "الإعدادات",
|
||||
"uninstall": "إلغاء التثبيت"
|
||||
},
|
||||
"communityPlugin": "مجتمع ثالث",
|
||||
"customPlugin": "مخصص",
|
||||
"empty": "لا توجد إضافات مثبتة حاليا",
|
||||
"installAllPlugins": "تثبيت الكل",
|
||||
"networkError": "فشل الحصول على متجر الإضافات، يرجى التحقق من الاتصال بالشبكة وإعادة المحاولة",
|
||||
"placeholder": "ابحث عن اسم الإضافة أو الكلمات الرئيسية...",
|
||||
"releasedAt": "صدر في {{createdAt}}",
|
||||
"tabs": {
|
||||
"all": "الكل",
|
||||
"installed": "مثبتة"
|
||||
},
|
||||
"title": "متجر الإضافات"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,306 @@
|
||||
{
|
||||
"danger": {
|
||||
"clear": {
|
||||
"action": "مسح الآن",
|
||||
"confirm": "هل تؤكد مسح جميع بيانات المحادثات؟",
|
||||
"desc": "سيتم مسح جميع بيانات الجلسة بما في ذلك المساعد والملفات والرسائل والإضافات",
|
||||
"success": "تم مسح جميع رسائل الجلسة",
|
||||
"title": "مسح جميع رسائل الجلسة"
|
||||
},
|
||||
"reset": {
|
||||
"action": "إعادة تعيين الآن",
|
||||
"confirm": "هل تؤكد إعادة تعيين جميع الإعدادات؟",
|
||||
"currentVersion": "الإصدار الحالي",
|
||||
"desc": "إعادة تعيين جميع عناصر الإعدادات إلى القيم الافتراضية",
|
||||
"title": "إعادة تعيين جميع الإعدادات"
|
||||
}
|
||||
},
|
||||
"header": {
|
||||
"global": "إعدادات عامة",
|
||||
"session": "إعدادات الجلسة",
|
||||
"sessionWithName": "إعدادات الجلسة · {{name}}"
|
||||
},
|
||||
"llm": {
|
||||
"AzureOpenAI": {
|
||||
"endpoint": {
|
||||
"desc": "يمكن العثور على هذه القيمة في قسم 'المفتاح والنقطة النهائية' عند التحقق من الموارد في بوابة Azure",
|
||||
"placeholder": "https://docs-test-001.openai.azure.com",
|
||||
"title": "عنوان واجهة برمجة التطبيقات لـ Azure"
|
||||
},
|
||||
"models": {
|
||||
"desc": "النماذج المدعومة",
|
||||
"title": "قائمة النماذج"
|
||||
},
|
||||
"title": "إعدادات Azure OpenAI",
|
||||
"token": {
|
||||
"desc": "يمكن العثور على هذه القيمة في قسم 'المفتاح والنقطة النهائية' عند التحقق من الموارد في بوابة Azure. يمكن استخدام KEY1 أو KEY2",
|
||||
"placeholder": "مفتاح واجهة برمجة التطبيقات لـ Azure",
|
||||
"title": "مفتاح واجهة برمجة التطبيقات"
|
||||
}
|
||||
},
|
||||
"OpenAI": {
|
||||
"azureApiVersion": {
|
||||
"desc": "إصدار واجهة برمجة التطبيقات لـ Azure، يتبع تنسيق YYYY-MM-DD، اطلع على [أحدث الإصدارات](https://learn.microsoft.com/zh-cn/azure/ai-services/openai/reference#chat-completions)",
|
||||
"fetch": "الحصول على القائمة",
|
||||
"title": "إصدار واجهة برمجة التطبيقات لـ Azure"
|
||||
},
|
||||
"check": {
|
||||
"button": "فحص",
|
||||
"desc": "اختبار مفتاح واجهة البرمجة التطبيقية وعنوان الوكيل للتأكد من ملئهما بشكل صحيح",
|
||||
"pass": "تم الفحص بنجاح",
|
||||
"title": "فحص الاتصال"
|
||||
},
|
||||
"customModelName": {
|
||||
"desc": "إضافة نموذج مخصص، يمكن استخدام فاصلة (,) للنماذج المتعددة",
|
||||
"placeholder": "نموذج1،نموذج2،نموذج3",
|
||||
"title": "اسم النموذج المخصص"
|
||||
},
|
||||
"endpoint": {
|
||||
"desc": "بالإضافة إلى العنوان الافتراضي، يجب أن يتضمن http(s)://",
|
||||
"placeholder": "https://api.openai.com/v1",
|
||||
"title": "عنوان وكيل الواجهة"
|
||||
},
|
||||
"models": {
|
||||
"count": "يدعم {{count}} نموذج",
|
||||
"desc": "النماذج المدعومة",
|
||||
"fetch": "الحصول على قائمة النماذج",
|
||||
"notSupport": "Azure OpenAI غير مدعوم حالياً لعرض قائمة النماذج",
|
||||
"notSupportTip": "يجب عليك التأكد بنفسك من تطابق اسم النموذج مع اسم النشر",
|
||||
"refetch": "الحصول على قائمة النماذج مرة أخرى",
|
||||
"title": "قائمة النماذج"
|
||||
},
|
||||
"title": "إعدادات OpenAI",
|
||||
"token": {
|
||||
"desc": "استخدام مفتاح OpenAI الخاص بك",
|
||||
"placeholder": "مفتاح واجهة برمجة التطبيقات لـ OpenAI",
|
||||
"title": "مفتاح واجهة برمجة التطبيقات"
|
||||
},
|
||||
"useAzure": {
|
||||
"desc": "استخدام خدمة OpenAI المقدمة من Azure",
|
||||
"fetch": "الحصول على القائمة",
|
||||
"serverConfig": "المسؤول قام بتكوين خدمة Azure OpenAI على الخادم، ويتم منع التبديل",
|
||||
"title": "استخدام Azure OpenAI"
|
||||
}
|
||||
},
|
||||
"waitingForMore": "يتم <1>التخطيط لتوفير</1> المزيد من النماذج، ترقبوا المزيد ✨"
|
||||
},
|
||||
"plugin": {
|
||||
"addTooltip": "إضافة البرنامج المساعد",
|
||||
"clearDeprecated": "مسح البرامج المساعدة الغير صالحة",
|
||||
"empty": "لا توجد برامج مساعدة مثبتة حاليًا، نرحب بك لزيارة <1>متجر البرامج المساعدة</1> للاستكشاف",
|
||||
"installStatus": {
|
||||
"deprecated": "تم إلغاء التثبيت"
|
||||
},
|
||||
"settings": {
|
||||
"hint": "يرجى ملء الإعدادات التالية وفقًا للوصف",
|
||||
"title": "إعدادات البرنامج المساعد {{id}}",
|
||||
"tooltip": "إعدادات البرنامج المساعد"
|
||||
},
|
||||
"store": "متجر البرامج المساعد"
|
||||
},
|
||||
"settingAgent": {
|
||||
"avatar": {
|
||||
"title": "الصورة الرمزية"
|
||||
},
|
||||
"backgroundColor": {
|
||||
"title": "لون الخلفية"
|
||||
},
|
||||
"description": {
|
||||
"placeholder": "الرجاء إدخال وصف المساعد",
|
||||
"title": "وصف المساعد"
|
||||
},
|
||||
"name": {
|
||||
"placeholder": "الرجاء إدخال اسم المساعد",
|
||||
"title": "الاسم"
|
||||
},
|
||||
"prompt": {
|
||||
"placeholder": "الرجاء إدخال كلمة الإشارة للشخصية",
|
||||
"title": "ضبط الشخصية"
|
||||
},
|
||||
"tag": {
|
||||
"placeholder": "الرجاء إدخال العلامة",
|
||||
"title": "العلامة"
|
||||
},
|
||||
"title": "معلومات المساعد"
|
||||
},
|
||||
"settingChat": {
|
||||
"autoCreateTopicThreshold": {
|
||||
"desc": "عند تجاوز عدد الرسائل الحالي هذا القيمة، سيتم إنشاء موضوع تلقائيًا",
|
||||
"title": "عتبة إنشاء الموضوع التلقائي"
|
||||
},
|
||||
"chatStyleType": {
|
||||
"title": "نوع نافذة الدردشة",
|
||||
"type": {
|
||||
"chat": "نمط المحادثة",
|
||||
"docs": "نمط الوثائق"
|
||||
}
|
||||
},
|
||||
"compressThreshold": {
|
||||
"desc": "عندما يتجاوز عدد الرسائل التاريخية غير المضغوطة هذه القيمة، سيتم ضغطها",
|
||||
"title": "عتبة ضغط طول الرسائل التاريخية"
|
||||
},
|
||||
"enableAutoCreateTopic": {
|
||||
"desc": "هل يجب إنشاء موضوع تلقائيًا أثناء الدردشة، يسري ذلك فقط في المواضيع المؤقتة",
|
||||
"title": "تمكين إنشاء الموضوع تلقائيًا"
|
||||
},
|
||||
"enableCompressThreshold": {
|
||||
"title": "هل تريد تمكين عتبة ضغط طول الرسائل التاريخية"
|
||||
},
|
||||
"enableHistoryCount": {
|
||||
"alias": "غير محدود",
|
||||
"limited": "يحتوي فقط على {{number}} رسالة محادثة",
|
||||
"title": "تحديد عدد الرسائل التاريخية",
|
||||
"unlimited": "غير محدود"
|
||||
},
|
||||
"historyCount": {
|
||||
"desc": "عدد الرسائل التي يتم إرفاقها في كل طلب (تشمل الأسئلة والأجوبة الجديدة. يُحسب كل سؤال وجواب كرسالة واحدة)",
|
||||
"title": "عدد الرسائل المرفقة"
|
||||
},
|
||||
"inputTemplate": {
|
||||
"desc": "سيتم ملء أحدث رسالة من المستخدم في هذا القالب",
|
||||
"placeholder": "القالب المُعالج مسبقًا {{text}} سيتم استبداله بالمعلومات المُدخلة في الوقت الحقيقي",
|
||||
"title": "معالجة مُدخلات المستخدم"
|
||||
},
|
||||
"title": "إعدادات الدردشة"
|
||||
},
|
||||
"settingModel": {
|
||||
"enableMaxTokens": {
|
||||
"title": "تمكين الحد الأقصى للردود"
|
||||
},
|
||||
"frequencyPenalty": {
|
||||
"desc": "كلما زادت القيمة، زاد احتمال تقليل تكرار الكلمات",
|
||||
"title": "عقوبة التكرار"
|
||||
},
|
||||
"maxTokens": {
|
||||
"desc": "عدد الرموز الأقصى المستخدمة في التفاعل الواحد",
|
||||
"title": "الحد الأقصى للردود"
|
||||
},
|
||||
"model": {
|
||||
"desc": "نموذج ChatGPT",
|
||||
"list": {
|
||||
"gpt-3.5-turbo": "GPT 3.5",
|
||||
"gpt-3.5-turbo-16k": "GPT 3.5 (16K)",
|
||||
"gpt-4": "GPT 4",
|
||||
"gpt-4-32k": "GPT 4 (32K)"
|
||||
},
|
||||
"title": "النموذج"
|
||||
},
|
||||
"presencePenalty": {
|
||||
"desc": "كلما زادت القيمة، زاد احتمال التوسع في مواضيع جديدة",
|
||||
"title": "جديد الحديث"
|
||||
},
|
||||
"temperature": {
|
||||
"desc": "كلما زادت القيمة، زادت الردود عشوائية أكثر",
|
||||
"title": "التباين",
|
||||
"titleWithValue": "التباين {{value}}"
|
||||
},
|
||||
"title": "إعدادات النموذج",
|
||||
"topP": {
|
||||
"desc": "مشابه للتباين ولكن لا يجب تغييره مع التباين",
|
||||
"title": "العينة الأساسية"
|
||||
}
|
||||
},
|
||||
"settingPlugin": {
|
||||
"title": "قائمة الإضافات"
|
||||
},
|
||||
"settingSystem": {
|
||||
"accessCode": {
|
||||
"desc": "قام المسؤول بتمكين الوصول المشفر",
|
||||
"placeholder": "الرجاء إدخال كلمة المرور",
|
||||
"title": "كلمة المرور"
|
||||
},
|
||||
"title": "إعدادات النظام"
|
||||
},
|
||||
"settingTTS": {
|
||||
"openai": {
|
||||
"sttModel": "نموذج تحويل النص إلى كلام من OpenAI",
|
||||
"ttsModel": "نموذج توليد الكلام من OpenAI"
|
||||
},
|
||||
"showAllLocaleVoice": {
|
||||
"desc": "إذا تم إيقافه، سيتم عرض مصادر الصوت الخاصة باللغة الحالية فقط",
|
||||
"title": "عرض جميع مصادر الصوت للغات"
|
||||
},
|
||||
"stt": "إعدادات التحويل من الصوت إلى نص",
|
||||
"sttAutoStop": {
|
||||
"desc": "عند الإيقاف، لن يتم إيقاف تحويل الصوت إلى نص تلقائيًا، وسيتطلب الأمر النقر على زر الإيقاف يدويًا",
|
||||
"title": "إيقاف تحويل الصوت إلى نص تلقائيًا"
|
||||
},
|
||||
"sttLocale": {
|
||||
"desc": "لغة الصوت المدخلة، يمكن أن يساعد هذا الخيار في زيادة دقة تحويل الصوت إلى نص",
|
||||
"title": "لغة تحويل الصوت إلى نص"
|
||||
},
|
||||
"sttService": {
|
||||
"desc": "حيث يكون المتصفح هو خدمة التحويل الصوتي الأصلية",
|
||||
"title": "خدمة تحويل الصوت إلى نص"
|
||||
},
|
||||
"title": "خدمة الصوت",
|
||||
"tts": "إعدادات توليد الكلام",
|
||||
"ttsService": {
|
||||
"desc": "إذا كنت تستخدم خدمة توليد الكلام من OpenAI، يجب التأكد من تمكين خدمة نموذج OpenAI",
|
||||
"title": "خدمة توليد الكلام"
|
||||
},
|
||||
"voice": {
|
||||
"desc": "حدد صوتًا للمساعد الحالي، تختلف مصادر الصوت المدعومة بحسب خدمة توليد الكلام",
|
||||
"preview": "معاينة الصوت",
|
||||
"title": "مصدر توليد الكلام"
|
||||
}
|
||||
},
|
||||
"settingTheme": {
|
||||
"avatar": {
|
||||
"title": "الصورة الرمزية"
|
||||
},
|
||||
"fontSize": {
|
||||
"desc": "حجم الخط لمحتوى المحادثة",
|
||||
"marks": {
|
||||
"large": "كبير",
|
||||
"normal": "عادي",
|
||||
"small": "صغير"
|
||||
},
|
||||
"title": "حجم الخط"
|
||||
},
|
||||
"lang": {
|
||||
"autoMode": "متابعة النظام",
|
||||
"title": "اللغة"
|
||||
},
|
||||
"neutralColor": {
|
||||
"desc": "تخصيص درجات اللون الرمادي للاتجاهات المختلفة",
|
||||
"title": "اللون الأحادي"
|
||||
},
|
||||
"primaryColor": {
|
||||
"desc": "تخصيص لون السمة الرئيسي",
|
||||
"title": "لون السمة"
|
||||
},
|
||||
"themeMode": {
|
||||
"auto": "تلقائي",
|
||||
"dark": "داكن",
|
||||
"light": "فاتح",
|
||||
"title": "السمة"
|
||||
},
|
||||
"title": "إعدادات السمة"
|
||||
},
|
||||
"submitAgentModal": {
|
||||
"button": "تقديم المساعد",
|
||||
"identifier": "معرف المساعد",
|
||||
"metaMiss": "يرجى استكمال معلومات المساعد قبل التقديم، يجب أن تتضمن الاسم والوصف والعلامة",
|
||||
"placeholder": "الرجاء إدخال معرف المساعد، يجب أن يكون فريدًا، مثل تطوير الويب",
|
||||
"tooltips": "مشاركة في سوق المساعدين"
|
||||
},
|
||||
"tab": {
|
||||
"agent": "المساعد الافتراضي",
|
||||
"common": "إعدادات عامة",
|
||||
"llm": "نموذج اللغة",
|
||||
"tts": "خدمة الكلام"
|
||||
},
|
||||
"tools": {
|
||||
"builtins": {
|
||||
"groupName": "الامتدادات المدمجة"
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "ممكّنة {{num}}",
|
||||
"groupName": "الإضافات",
|
||||
"noEnabled": "لا توجد إضافات ممكّنة حاليًا",
|
||||
"store": "متجر الإضافات"
|
||||
},
|
||||
"title": "أدوات الامتداد"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"dalle": {
|
||||
"autoGenerate": "توليد تلقائي",
|
||||
"downloading": "صلاحية روابط الصور المُولَّدة بواسطة DallE3 تدوم ساعة واحدة فقط، يتم تحميل الصور إلى الجهاز المحلي...",
|
||||
"generate": "توليد",
|
||||
"generating": "جارٍ التوليد...",
|
||||
"images": "الصور:"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"button": {
|
||||
"import": "استيراد التكوين",
|
||||
"start": "ابدأ الآن"
|
||||
},
|
||||
"header": "مرحبًا بكم في الاستخدام",
|
||||
"pickAgent": "أو اختيار قالب مساعد من القائمة التالية",
|
||||
"skip": "تخطى الإنشاء",
|
||||
"slogan": {
|
||||
"desc1": "قم بتشغيل عقلك الجماعي وأشعل شرارة التفكير. مساعدك الذكي، دائمًا موجود.",
|
||||
"desc2": "أنشئ مساعدك الأول ولنبدأ!",
|
||||
"title": "امنح نفسك عقلاً أذكى"
|
||||
}
|
||||
}
|
||||
@@ -117,6 +117,7 @@
|
||||
"remark": "^14",
|
||||
"remark-gfm": "^3",
|
||||
"remark-html": "^15",
|
||||
"rtl-detect": "^1.1.2",
|
||||
"semver": "^7",
|
||||
"sharp": "0.33.1",
|
||||
"swr": "^2",
|
||||
@@ -148,6 +149,7 @@
|
||||
"@types/node": "^20",
|
||||
"@types/react": "^18",
|
||||
"@types/react-dom": "^18",
|
||||
"@types/rtl-detect": "^1.0.3",
|
||||
"@types/semver": "^7",
|
||||
"@types/systemjs": "^6",
|
||||
"@types/ua-parser-js": "^0.7",
|
||||
|
||||
+3
-2
@@ -1,6 +1,7 @@
|
||||
import { Viewport } from 'next';
|
||||
import { cookies } from 'next/headers';
|
||||
import { PropsWithChildren } from 'react';
|
||||
import { isRtlLang } from 'rtl-detect';
|
||||
|
||||
import Analytics from '@/components/Analytics';
|
||||
import { DEFAULT_LANG, LOBE_LOCALE_COOKIE } from '@/const/locale';
|
||||
@@ -20,9 +21,9 @@ const RootLayout = ({ children }: PropsWithChildren) => {
|
||||
const neutralColor = cookieStore.get(LOBE_THEME_NEUTRAL_COLOR);
|
||||
const primaryColor = cookieStore.get(LOBE_THEME_PRIMARY_COLOR);
|
||||
const lang = cookieStore.get(LOBE_LOCALE_COOKIE);
|
||||
|
||||
const direction = isRtlLang(lang?.value || DEFAULT_LANG) ? 'rtl' : 'ltr';
|
||||
return (
|
||||
<html lang={lang?.value || DEFAULT_LANG} suppressHydrationWarning>
|
||||
<html dir={direction} lang={lang?.value || DEFAULT_LANG} suppressHydrationWarning>
|
||||
<body>
|
||||
<StyleRegistry>
|
||||
<Layout
|
||||
|
||||
@@ -2,6 +2,7 @@ import i18n from 'i18next';
|
||||
import LanguageDetector from 'i18next-browser-languagedetector';
|
||||
import resourcesToBackend from 'i18next-resources-to-backend';
|
||||
import { initReactI18next } from 'react-i18next';
|
||||
import { isRtlLang } from 'rtl-detect';
|
||||
|
||||
import { getClientConfig } from '@/config/client';
|
||||
import { DEFAULT_LANG, LOBE_LOCALE_COOKIE } from '@/const/locale';
|
||||
@@ -23,7 +24,13 @@ export const createI18nNext = (lang?: string) => {
|
||||
return import(`@/../locales/${normalizeLocale(lng)}/${ns}.json`);
|
||||
}),
|
||||
);
|
||||
|
||||
// Dynamically set HTML direction on language change
|
||||
instance.on('languageChanged', (lng) => {
|
||||
if (typeof window !== 'undefined') {
|
||||
const direction = isRtlLang(lng) ? 'rtl' : 'ltr';
|
||||
document.documentElement.dir = direction;
|
||||
}
|
||||
});
|
||||
return {
|
||||
init: () =>
|
||||
instance.init({
|
||||
|
||||
@@ -51,6 +51,7 @@ export default {
|
||||
title: '导入数据',
|
||||
},
|
||||
lang: {
|
||||
'ar': '阿拉伯语',
|
||||
'bn': '孟加拉语',
|
||||
'cs-CZ': '捷克语',
|
||||
'da-DK': '丹麦语',
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import resources from './default';
|
||||
|
||||
export const locales = [
|
||||
'ar',
|
||||
'de-DE',
|
||||
'en-US',
|
||||
'es-ES',
|
||||
@@ -41,6 +42,10 @@ type LocaleOptions = {
|
||||
}[];
|
||||
|
||||
export const localeOptions: LocaleOptions = [
|
||||
{
|
||||
label: 'العربية',
|
||||
value: 'ar',
|
||||
},
|
||||
{
|
||||
label: '简体中文',
|
||||
value: 'zh-CN',
|
||||
|
||||
Reference in New Issue
Block a user