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: "العربية"
}
]