diff --git a/src/assets/locale/ar/chrome.json b/src/assets/locale/ar/chrome.json new file mode 100644 index 0000000..2e75af6 --- /dev/null +++ b/src/assets/locale/ar/chrome.json @@ -0,0 +1,13 @@ +{ + "heading": "إعداد Chrome AI", + "status": { + "label": "تمكين أو تعطيل دعم Chrome AI في مساعد الصفحة" + }, + "error": { + "browser_not_supported": "هذا الإصدار من Chrome غير مدعوم من نموذج Gemini Nano. يرجى التحديث إلى الإصدار 127 أو أحدث", + "ai_not_supported": "الإعداد chrome://flags/#prompt-api-for-gemini-nano غير مفعل. يرجى تفعيله.", + "ai_not_ready": "Gemini Nano غير جاهز بعد؛ تحتاج إلى التحقق مرة أخرى من إعدادات Chrome.", + "internal_error": "حدث خطأ داخلي. يرجى المحاولة مرة أخرى لاحقاً." + }, + "errorDescription": "لاستخدام Chrome AI، تحتاج إلى إصدار متصفح أعلى من 127، وهو متوفر حالياً في قنوات Dev و Canary. بعد تنزيل الإصدار المدعوم، اتبع هذه الخطوات:\n\n1. انتقل إلى `chrome://flags/#prompt-api-for-gemini-nano` واختر \"تمكين\".\n2. انتقل إلى `chrome://flags/#optimization-guide-on-device-model` واختر \"EnabledBypassPrefRequirement\".\n3. انتقل إلى `chrome://components`، ابحث عن \"Optimization Guide On Device Model\"، وانقر على \"التحقق من التحديثات\". سيؤدي هذا إلى تنزيل النموذج. إذا لم تر الإعدادات، كرر الخطوتين 1 و 2 وأعد تشغيل المتصفح." +} \ No newline at end of file diff --git a/src/assets/locale/ar/common.json b/src/assets/locale/ar/common.json new file mode 100644 index 0000000..2f8e349 --- /dev/null +++ b/src/assets/locale/ar/common.json @@ -0,0 +1,128 @@ +{ + "pageAssist": "مساعد الصفحة", + "selectAModel": "اختر نموذجًا", + "save": "حفظ", + "saved": "تم الحفظ", + "cancel": "إلغاء", + "retry": "إعادة المحاولة", + "share": { + "tooltip": { + "share": "مشاركة" + }, + "modal": { + "title": "مشاركة رابط المحادثة" + }, + "form": { + "defaultValue": { + "name": "مجهول", + "title": "محادثة بدون عنوان" + }, + "title": { + "label": "عنوان المحادثة", + "placeholder": "أدخل عنوان المحادثة", + "required": "عنوان المحادثة مطلوب" + }, + "name": { + "label": "اسمك", + "placeholder": "أدخل اسمك", + "required": "اسمك مطلوب" + }, + "btn": { + "save": "إنشاء رابط", + "saving": "جاري إنشاء الرابط..." + } + }, + "notification": { + "successGenerate": "تم نسخ الرابط إلى الحافظة", + "failGenerate": "فشل في إنشاء الرابط" + } + }, + "copyToClipboard": "نسخ إلى الحافظة", + "webSearch": "البحث في الويب", + "regenerate": "إعادة التوليد", + "edit": "تعديل", + "delete": "حذف", + "saveAndSubmit": "حفظ وإرسال", + "editMessage": { + "placeholder": "اكتب رسالة..." + }, + "submit": "إرسال", + "noData": "لا توجد بيانات", + "noHistory": "لا يوجد سجل محادثات", + "chatWithCurrentPage": "الدردشة مع الصفحة الحالية", + "beta": "تجريبي", + "tts": "قراءة بصوت عالٍ", + "currentChatModelSettings": "إعدادات نموذج المحادثة الحالي", + "modelSettings": { + "label": "إعدادات النموذج", + "description": "تعيين خيارات النموذج عالمياً لجميع المحادثات", + "form": { + "keepAlive": { + "label": "الإبقاء نشطاً", + "help": "يتحكم في المدة التي سيظل فيها النموذج محملاً في الذاكرة بعد الطلب (الافتراضي: 5 دقائق)", + "placeholder": "أدخل مدة البقاء نشطاً (مثال: 5م، 10م، 1س)" + }, + "temperature": { + "label": "درجة الحرارة", + "placeholder": "أدخل قيمة درجة الحرارة (مثال: 0.7، 1.0)" + }, + "numCtx": { + "label": "عدد السياقات", + "placeholder": "أدخل قيمة عدد السياقات (الافتراضي: 2048)" + }, + "numPredict": { + "label": "الحد الأقصى للرموز", + "placeholder": "أدخل قيمة الحد الأقصى للرموز (مثال: 2048، 4096)" + }, + "seed": { + "label": "البذرة", + "placeholder": "أدخل قيمة البذرة (مثال: 1234)", + "help": "إمكانية تكرار مخرجات النموذج" + }, + "topK": { + "label": "أعلى K", + "placeholder": "أدخل قيمة أعلى K (مثال: 40، 100)" + }, + "topP": { + "label": "أعلى P", + "placeholder": "أدخل قيمة أعلى P (مثال: 0.9، 0.95)" + }, + "useMMap": { + "label": "استخدام MMap" + }, + "numGpu": { + "label": "عدد وحدات معالجة الرسومات", + "placeholder": "أدخل عدد الطبقات لإرسالها إلى وحدة/وحدات معالجة الرسومات" + }, + "systemPrompt": { + "label": "موجه النظام المؤقت", + "placeholder": "أدخل موجه النظام", + "help": "هذه طريقة سريعة لتعيين موجه النظام في المحادثة الحالية، والذي سيتجاوز موجه النظام المحدد إذا كان موجوداً." + } + }, + "advanced": "المزيد من إعدادات النموذج" + }, + "copilot": { + "summary": "تلخيص", + "explain": "شرح", + "rephrase": "إعادة صياغة", + "translate": "ترجمة", + "custom": "مخصص" + }, + "citations": "الاقتباسات", + "segmented": { + "ollama": "نماذج Ollama", + "custom": "نماذج مخصصة" + }, + "downloadCode": "تنزيل الكود", + "date": { + "pinned": "مثبت", + "today": "اليوم", + "yesterday": "الأمس", + "last7Days": "آخر 7 أيام", + "older": "أقدم" + }, + "pin": "تثبيت", + "unpin": "إلغاء التثبيت", + "generationInfo": "معلومات التوليد" +} diff --git a/src/assets/locale/ar/knowledge.json b/src/assets/locale/ar/knowledge.json new file mode 100644 index 0000000..ae9f6cd --- /dev/null +++ b/src/assets/locale/ar/knowledge.json @@ -0,0 +1,40 @@ +{ + "addBtn": "إضافة معرفة جديدة", + "columns": { + "title": "العنوان", + "status": "الحالة", + "embeddings": "نموذج التضمين", + "createdAt": "تاريخ الإنشاء", + "action": "الإجراءات" + }, + "expandedColumns": { + "name": "الاسم" + }, + "confirm": { + "delete": "هل أنت متأكد أنك تريد حذف هذه المعرفة؟" + }, + "deleteSuccess": "تم حذف المعرفة بنجاح", + "status": { + "pending": "قيد الانتظار", + "finished": "مكتمل", + "processing": "قيد المعالجة", + "failed": "فشل" + }, + "addKnowledge": "إضافة معرفة", + "form": { + "title": { + "label": "عنوان المعرفة", + "placeholder": "أدخل عنوان المعرفة", + "required": "عنوان المعرفة مطلوب" + }, + "uploadFile": { + "label": "رفع ملف", + "uploadText": "اسحب وأفلت ملفًا هنا أو انقر للرفع", + "uploadHint": "أنواع الملفات المدعومة: .pdf, .csv, .txt, .md, .docx", + "required": "الملف مطلوب" + }, + "submit": "إرسال", + "success": "تمت إضافة المعرفة بنجاح" + }, + "noEmbeddingModel": "يرجى إضافة نموذج تضمين من صفحة إعدادات RAG أولاً" +} \ No newline at end of file diff --git a/src/assets/locale/ar/openai.json b/src/assets/locale/ar/openai.json new file mode 100644 index 0000000..58207fd --- /dev/null +++ b/src/assets/locale/ar/openai.json @@ -0,0 +1,90 @@ +{ + "settings": "واجهة برمجة التطبيقات المتوافقة مع OpenAI", + "heading": "واجهة برمجة التطبيقات المتوافقة مع OpenAI", + "subheading": "إدارة وتكوين مزودي واجهة برمجة التطبيقات المتوافقة مع OpenAI هنا.", + "addBtn": "إضافة مزود", + "table": { + "name": "اسم المزود", + "baseUrl": "عنوان URL الأساسي", + "actions": "إجراء" + }, + "modal": { + "titleAdd": "إضافة مزود جديد", + "name": { + "label": "اسم المزود", + "required": "اسم المزود مطلوب.", + "placeholder": "أدخل اسم المزود" + }, + "baseUrl": { + "label": "عنوان URL الأساسي", + "help": "عنوان URL الأساسي لمزود واجهة برمجة التطبيقات OpenAI. مثال (http://localhost:1234/v1)", + "required": "عنوان URL الأساسي مطلوب.", + "placeholder": "أدخل عنوان URL الأساسي" + }, + "apiKey": { + "label": "مفتاح API", + "required": "مفتاح API مطلوب.", + "placeholder": "أدخل مفتاح API" + }, + "submit": "حفظ", + "update": "تحديث", + "deleteConfirm": "هل أنت متأكد أنك تريد حذف هذا المزود؟", + "model": { + "title": "قائمة النماذج", + "subheading": "يرجى تحديد نماذج المحادثة التي تريد استخدامها مع هذا المزود.", + "success": "تمت إضافة نماذج جديدة بنجاح." + }, + "tipLMStudio": "سيقوم Page Assist تلقائيًا بجلب النماذج التي قمت بتحميلها على LM Studio. لست بحاجة إلى إضافتها يدويًا." + }, + "addSuccess": "تمت إضافة المزود بنجاح.", + "deleteSuccess": "تم حذف المزود بنجاح.", + "updateSuccess": "تم تحديث المزود بنجاح.", + "delete": "حذف", + "edit": "تعديل", + "newModel": "إضافة نماذج للمزود", + "noNewModel": "بالنسبة لـ LMStudio و Ollama و Llamafile، نقوم بالجلب ديناميكيًا. لا حاجة للإضافة اليدوية.", + "searchModel": "بحث عن نموذج", + "selectAll": "تحديد الكل", + "save": "حفظ", + "saving": "جاري الحفظ...", + "manageModels": { + "columns": { + "name": "اسم النموذج", + "model_type": "نوع النموذج", + "model_id": "معرف النموذج", + "provider": "اسم المزود", + "actions": "إجراء" + }, + "tooltip": { + "delete": "حذف" + }, + "confirm": { + "delete": "هل أنت متأكد أنك تريد حذف هذا النموذج؟" + }, + "modal": { + "title": "إضافة نموذج مخصص", + "form": { + "name": { + "label": "معرف النموذج", + "placeholder": "llama3.2", + "required": "معرف النموذج مطلوب." + }, + "provider": { + "label": "المزود", + "placeholder": "اختر المزود", + "required": "المزود مطلوب." + }, + "type": { + "label": "نوع النموذج" + } + } + } + }, + "noModelFound": "لم يتم العثور على نموذج. تأكد من إضافة المزود الصحيح مع عنوان URL الأساسي ومفتاح API.", + "radio": { + "chat": "نموذج المحادثة", + "embedding": "نموذج التضمين", + "chatInfo": "يستخدم لإكمال المحادثة وتوليد المحادثات", + "embeddingInfo": "يستخدم لـ RAG ومهام البحث الدلالي الأخرى ذات الصلة." + } +} \ No newline at end of file diff --git a/src/assets/locale/ar/option.json b/src/assets/locale/ar/option.json new file mode 100644 index 0000000..5886434 --- /dev/null +++ b/src/assets/locale/ar/option.json @@ -0,0 +1,28 @@ +{ + "newChat": "محادثة جديدة", + "selectAPrompt": "اختر موجهاً", + "githubRepository": "مستودع GitHub", + "settings": "الإعدادات", + "sidebarTitle": "سجل المحادثات", + "error": "خطأ", + "somethingWentWrong": "حدث خطأ ما", + "validationSelectModel": "الرجاء اختيار نموذج للمتابعة", + "deleteHistoryConfirmation": "هل أنت متأكد أنك تريد حذف هذا السجل؟", + "editHistoryTitle": "أدخل عنواناً جديداً", + "temporaryChat": "محادثة مؤقتة", + "more": { + "copy": { + "group": "نسخ", + "asText": "نسخ كنص", + "asMarkdown": "نسخ كماركداون", + "success": "تم النسخ إلى الحافظة!" + }, + "download": { + "group": "تنزيل", + "text": "ملف نصي (.txt)", + "markdown": "ماركداون (.md)", + "json": "ملف JSON (.json)" + }, + "share": "مشاركة" + } +} \ No newline at end of file diff --git a/src/assets/locale/ar/playground.json b/src/assets/locale/ar/playground.json new file mode 100644 index 0000000..6371d99 --- /dev/null +++ b/src/assets/locale/ar/playground.json @@ -0,0 +1,31 @@ +{ + "ollamaState": { + "searching": "جارٍ البحث عن Ollama الخاص بك 🦙", + "running": "Ollama يعمل 🦙", + "notRunning": "تعذر الاتصال بـ Ollama 🦙", + "connectionError": "يبدو أنك تواجه خطأ في الاتصال. يرجى الرجوع إلى هذا الدليل لاستكشاف الأخطاء وإصلاحها." + }, + "formError": { + "noModel": "الرجاء اختيار نموذج", + "noEmbeddingModel": "الرجاء تعيين نموذج التضمين في صفحة الإعدادات > RAG" + }, + "form": { + "textarea": { + "placeholder": "اكتب رسالة..." + }, + "webSearch": { + "on": "تشغيل", + "off": "إيقاف" + } + }, + "tooltip": { + "searchInternet": "البحث في الإنترنت", + "speechToText": "تحويل الكلام إلى نص", + "uploadImage": "تحميل صورة", + "stopStreaming": "إيقاف البث", + "knowledge": "المعرفة", + "vision": "[تجريبي] محادثة الرؤية" + }, + "sendWhenEnter": "إرسال عند الضغط على Enter", + "welcome": "مرحباً! كيف يمكنني مساعدتك اليوم؟" +} \ No newline at end of file diff --git a/src/assets/locale/ar/settings.json b/src/assets/locale/ar/settings.json new file mode 100644 index 0000000..6de45fd --- /dev/null +++ b/src/assets/locale/ar/settings.json @@ -0,0 +1,358 @@ +{ + "generalSettings": { + "title": "الإعدادات العامة", + "settings": { + "heading": "إعدادات واجهة المستخدم", + "speechRecognitionLang": { + "label": "لغة التعرف على الكلام", + "placeholder": "اختر لغة" + }, + "language": { + "label": "اللغة", + "placeholder": "اختر لغة" + }, + "darkMode": { + "label": "تغيير المظهر", + "options": { + "light": "فاتح", + "dark": "داكن" + } + }, + "copilotResumeLastChat": { + "label": "استئناف آخر محادثة عند فتح اللوحة الجانبية (كوبيلوت)" + }, + "webUIResumeLastChat": { + "label": "استئناف آخر محادثة عند فتح واجهة المستخدم" + }, + "hideCurrentChatModelSettings": { + "label": "إخفاء إعدادات نموذج المحادثة الحالي" + }, + "restoreLastChatModel": { + "label": "استعادة آخر نموذج مستخدم للمحادثات السابقة" + }, + "sendNotificationAfterIndexing": { + "label": "إرسال إشعار بعد الانتهاء من معالجة قاعدة المعرفة" + }, + "generateTitle": { + "label": "توليد العنوان باستخدام الذكاء الاصطناعي" + }, + "ollamaStatus": { + "label": "تمكين أو تعطيل فحص حالة اتصال أولاما" + } + }, + "sidepanelRag": { + "heading": "إعدادات الدردشة مع الموقع", + "ragEnabled": { + "label": "الدردشة مع الموقع باستخدام التضمينات المتجهة" + }, + "maxWebsiteContext": { + "label": "حجم محتوى الموقع في الوضع العادي", + "placeholder": "حجم المحتوى (الافتراضي 4028)" + } + }, + "webSearch": { + "heading": "إدارة البحث على الإنترنت", + "searchMode": { + "label": "إجراء بحث بسيط على الإنترنت" + }, + "provider": { + "label": "محرك البحث", + "placeholder": "اختر محرك بحث" + }, + "totalSearchResults": { + "label": "إجمالي نتائج البحث", + "placeholder": "أدخل إجمالي نتائج البحث" + }, + "visitSpecificWebsite": { + "label": "زيارة الموقع المذكور في الرسالة" + }, + "searxng": { + "url": { + "label": "رابط SearXNG" + } + }, + "braveApi": { + "label": "مفتاح واجهة برنامج Brave", + "placeholder": "أدخل مفتاح واجهة برنامج Brave" + }, + "googleDomain": { + "label": "نطاق جوجل" + } + }, + "system": { + "heading": "إعدادات النظام", + "deleteChatHistory": { + "label": "إعادة تعيين النظام", + "button": "إعادة تعيين الكل", + "confirm": "هل أنت متأكد أنك تريد إجراء إعادة تعيين النظام؟ سيؤدي هذا إلى مسح جميع البيانات ولا يمكن التراجع عنه." + }, + "export": { + "label": "تصدير سجل المحادثات وقاعدة المعرفة والإرشادات", + "button": "تصدير البيانات", + "success": "تم التصدير بنجاح" + }, + "import": { + "label": "استيراد سجل المحادثات وقاعدة المعرفة والإرشادات", + "button": "استيراد البيانات", + "success": "تم الاستيراد بنجاح", + "error": "خطأ في الاستيراد" + } + }, + "tts": { + "heading": "إعدادات تحويل النص إلى كلام", + "ttsEnabled": { + "label": "تمكين تحويل النص إلى كلام" + }, + "ttsProvider": { + "label": "مزود خدمة تحويل النص إلى كلام", + "placeholder": "اختر مزود خدمة" + }, + "ttsVoice": { + "label": "صوت تحويل النص إلى كلام", + "placeholder": "اختر صوتاً" + }, + "ssmlEnabled": { + "label": "تمكين SSML (لغة ترميز توليف الكلام)" + } + } + }, + "manageModels": { + "title": "إدارة النماذج", + "addBtn": "إضافة نموذج جديد", + "columns": { + "name": "الاسم", + "digest": "الملخص", + "modifiedAt": "تم التعديل في", + "size": "الحجم", + "actions": "الإجراءات" + }, + "expandedColumns": { + "parentModel": "النموذج الأصلي", + "format": "التنسيق", + "family": "العائلة", + "parameterSize": "حجم المعلمة", + "quantizationLevel": "مستوى التكميم" + }, + "tooltip": { + "delete": "حذف النموذج", + "repull": "إعادة سحب النموذج" + }, + "confirm": { + "delete": "هل أنت متأكد أنك تريد حذف هذا النموذج؟", + "repull": "هل أنت متأكد أنك تريد إعادة سحب هذا النموذج؟" + }, + "modal": { + "title": "إضافة نموذج جديد", + "placeholder": "أدخل اسم النموذج", + "pull": "سحب النموذج" + }, + "notification": { + "pullModel": "جاري سحب النموذج", + "pullModelDescription": "جاري سحب نموذج {{modelName}}. لمزيد من التفاصيل، تحقق من أيقونة الإضافة.", + "success": "نجاح", + "error": "خطأ", + "successDescription": "تم سحب النموذج بنجاح", + "successDeleteDescription": "تم حذف النموذج بنجاح", + "someError": "حدث خطأ ما. يرجى المحاولة مرة أخرى لاحقاً" + } + }, + "managePrompts": { + "title": "إدارة الإرشادات", + "addBtn": "إضافة إرشاد جديد", + "option1": "عادي", + "option2": "RAG", + "questionPrompt": "إرشاد السؤال", + "segmented": { + "custom": "إرشادات مخصصة", + "copilot": "إرشادات كوبيلوت" + }, + "columns": { + "title": "العنوان", + "prompt": "الإرشاد", + "type": "نوع الإرشاد", + "actions": "الإجراءات" + }, + "systemPrompt": "إرشاد النظام", + "quickPrompt": "إرشاد سريع", + "tooltip": { + "delete": "حذف الإرشاد", + "edit": "تعديل الإرشاد" + }, + "confirm": { + "delete": "هل أنت متأكد أنك تريد حذف هذا الإرشاد؟ لا يمكن التراجع عن هذا الإجراء." + }, + "modal": { + "addTitle": "إضافة إرشاد جديد", + "editTitle": "تعديل الإرشاد" + }, + "form": { + "title": { + "label": "العنوان", + "placeholder": "إرشادي الرائع", + "required": "الرجاء إدخال عنوان" + }, + "prompt": { + "label": "الإرشاد", + "placeholder": "أدخل الإرشاد", + "required": "الرجاء إدخال إرشاد", + "help": "يمكنك استخدام {key} كمتغير في إرشادك.", + "missingTextPlaceholder": "المتغير {text} مفقود في الإرشاد. الرجاء إضافته." + }, + "isSystem": { + "label": "إرشاد نظام" + }, + "btnSave": { + "saving": "جاري إضافة الإرشاد...", + "save": "إضافة الإرشاد" + }, + "btnEdit": { + "saving": "جاري تحديث الإرشاد...", + "save": "تحديث الإرشاد" + } + }, + "notification": { + "addSuccess": "تمت إضافة الإرشاد", + "addSuccessDesc": "تمت إضافة الإرشاد بنجاح", + "error": "خطأ", + "someError": "حدث خطأ ما. يرجى المحاولة مرة أخرى لاحقاً", + "updatedSuccess": "تم تحديث الإرشاد", + "updatedSuccessDesc": "تم تحديث الإرشاد بنجاح", + "deletedSuccess": "تم حذف الإرشاد", + "deletedSuccessDesc": "تم حذف الإرشاد بنجاح" + } + }, + "manageShare": { + "title": "إدارة المشاركة", + "heading": "تكوين رابط مشاركة الصفحة", + "form": { + "url": { + "label": "رابط مشاركة الصفحة", + "placeholder": "أدخل رابط مشاركة الصفحة", + "required": "الرجاء إدخال رابط مشاركة الصفحة!", + "help": "لأسباب تتعلق بالخصوصية، يمكنك استضافة مشاركة الصفحة ذاتياً وتوفير الرابط هنا. تعلم المزيد." + } + }, + "webshare": { + "heading": "مشاركة الويب", + "columns": { + "title": "العنوان", + "url": "الرابط", + "actions": "الإجراءات" + }, + "tooltip": { + "delete": "حذف المشاركة" + }, + "confirm": { + "delete": "هل أنت متأكد أنك تريد حذف هذه المشاركة؟ لا يمكن التراجع عن هذا الإجراء." + }, + "label": "إدارة مشاركة الصفحة", + "description": "تمكين أو تعطيل ميزة مشاركة الصفحة" + }, + "notification": { + "pageShareSuccess": "تم تحديث رابط مشاركة الصفحة بنجاح", + "someError": "حدث خطأ ما. يرجى المحاولة مرة أخرى لاحقاً", + "webShareDeleteSuccess": "تم حذف مشاركة الويب بنجاح" + } + }, + "ollamaSettings": { + "title": "إعدادات Ollama", + "heading": "تكوين Ollama", + "settings": { + "ollamaUrl": { + "label": "رابط Ollama", + "placeholder": "أدخل رابط Ollama" + }, + "advanced": { + "label": "تكوين رابط Ollama المتقدم", + "urlRewriteEnabled": { + "label": "تمكين أو تعطيل رابط المصدر المخصص" + }, + "rewriteUrl": { + "label": "رابط المصدر المخصص", + "placeholder": "أدخل رابط المصدر المخصص" + }, + "headers": { + "label": "الترويسات المخصصة", + "add": "إضافة ترويسة", + "key": { + "label": "مفتاح الترويسة", + "placeholder": "التفويض" + }, + "value": { + "label": "قيمة الترويسة", + "placeholder": "رمز Bearer" + } + }, + "help": "إذا كنت تواجه مشاكل في الاتصال مع Ollama في مساعد الصفحة، يمكنك تكوين رابط مصدر مخصص. لمعرفة المزيد حول التكوين، انقر هنا." + } + } + }, + "manageSearch": { + "title": "إدارة البحث في الويب", + "heading": "تكوين البحث في الويب" + }, + "about": { + "title": "حول", + "heading": "حول", + "chromeVersion": "إصدار مساعد الصفحة", + "ollamaVersion": "إصدار Ollama", + "support": "يمكنك دعم مشروع مساعد الصفحة من خلال التبرع أو الرعاية عبر المنصات التالية:", + "koFi": "ادعم على Ko-fi", + "githubSponsor": "كن راعياً على GitHub", + "githubRepo": "مستودع GitHub" + }, + "manageKnowledge": { + "title": "إدارة المعرفة", + "heading": "تكوين قاعدة المعرفة" + }, + "rag": { + "title": "إعدادات RAG", + "ragSettings": { + "label": "إعدادات RAG", + "model": { + "label": "نموذج التضمين", + "required": "الرجاء اختيار نموذج", + "help": "يوصى بشدة باستخدام نماذج التضمين مثل `nomic-embed-text`.", + "placeholder": "اختر نموذجاً" + }, + "chunkSize": { + "label": "حجم القطعة", + "placeholder": "أدخل حجم القطعة", + "required": "الرجاء إدخال حجم القطعة" + }, + "chunkOverlap": { + "label": "تداخل القطع", + "placeholder": "أدخل تداخل القطع", + "required": "الرجاء إدخال تداخل القطع" + }, + "totalFilePerKB": { + "label": "حد رفع الملفات الافتراضي لقاعدة المعرفة", + "placeholder": "أدخل حد رفع الملفات الافتراضي (مثال: 10)", + "required": "الرجاء إدخال حد رفع الملفات الافتراضي" + }, + "noOfRetrievedDocs": { + "label": "عدد المستندات المسترجعة", + "placeholder": "أدخل عدد المستندات المسترجعة", + "required": "الرجاء إدخال عدد المستندات المسترجعة" + } + }, + "prompt": { + "label": "تكوين إرشاد RAG", + "option1": "عادي", + "option2": "ويب", + "alert": "تكوين إرشاد النظام هنا مهمل. يرجى استخدام قسم إدارة الإرشادات لإضافة أو تعديل الإرشادات. سيتم إزالة هذا القسم في إصدار مستقبلي", + "systemPrompt": "إرشاد النظام", + "systemPromptPlaceholder": "أدخل إرشاد النظام", + "webSearchPrompt": "إرشاد بحث الويب", + "webSearchPromptHelp": "لا تقم بإزالة `{search_results}` من الإرشاد.", + "webSearchPromptError": "الرجاء إدخال إرشاد بحث الويب", + "webSearchPromptPlaceholder": "أدخل إرشاد بحث الويب", + "webSearchFollowUpPrompt": "إرشاد متابعة بحث الويب", + "webSearchFollowUpPromptHelp": "لا تقم بإزالة `{chat_history}` و `{question}` من الإرشاد.", + "webSearchFollowUpPromptError": "الرجاء إدخال إرشاد متابعة بحث الويب!", + "webSearchFollowUpPromptPlaceholder": "إرشاد متابعة بحث الويب الخاص بك" + } + }, + "chromeAiSettings": { + "title": "إعدادات Chrome AI" + }} diff --git a/src/assets/locale/ar/sidepanel.json b/src/assets/locale/ar/sidepanel.json new file mode 100644 index 0000000..2db6314 --- /dev/null +++ b/src/assets/locale/ar/sidepanel.json @@ -0,0 +1,7 @@ +{ + "tooltip": { + "embed": "قد يستغرق تضمين الصفحة بضع دقائق. يرجى الانتظار...", + "clear": "مسح سجل المحادثة", + "history": "سجل المحادثة" + } +} \ No newline at end of file diff --git a/src/i18n/index.ts b/src/i18n/index.ts index 5897a1e..72b7a93 100644 --- a/src/i18n/index.ts +++ b/src/i18n/index.ts @@ -16,6 +16,7 @@ import { da } from "./lang/da"; import { no } from "./lang/no"; import { sv } from "./lang/sv"; import { ko } from "./lang/ko"; +import { ar } from "./lang/ar" i18n @@ -43,6 +44,7 @@ i18n de: de, sv: sv, ko: ko, + ar: ar }, fallbackLng: "en", lng: localStorage.getItem("i18nextLng") || "en", diff --git a/src/i18n/lang/ar.ts b/src/i18n/lang/ar.ts new file mode 100644 index 0000000..87d94c1 --- /dev/null +++ b/src/i18n/lang/ar.ts @@ -0,0 +1,19 @@ +import option from "@/assets/locale/ar/option.json"; +import playground from "@/assets/locale/ar/playground.json"; +import common from "@/assets/locale/ar/common.json"; +import sidepanel from "@/assets/locale/ar/sidepanel.json"; +import settings from "@/assets/locale/ar/settings.json"; +import knowledge from "@/assets/locale/ar/knowledge.json"; +import chrome from "@/assets/locale/ar/chrome.json"; +import openai from "@/assets/locale/ar/openai.json"; + +export const ar = { + option, + playground, + common, + sidepanel, + settings, + knowledge, + chrome, + openai +} \ No newline at end of file diff --git a/src/i18n/support-language.ts b/src/i18n/support-language.ts index 4787ab6..9a88674 100644 --- a/src/i18n/support-language.ts +++ b/src/i18n/support-language.ts @@ -63,5 +63,9 @@ export const supportLanguage = [ { value: "ko", label: "한국어" + }, + { + value: "ar", + label: "العربية" } ]