diff --git a/lib/i18n/locales.ts b/lib/i18n/locales.ts index 8be8d4418..9daa7da77 100644 --- a/lib/i18n/locales.ts +++ b/lib/i18n/locales.ts @@ -18,4 +18,5 @@ export const supportedLocales = [ { code: 'en-US', label: 'English', shortLabel: 'EN' }, { code: 'ja-JP', label: '日本語', shortLabel: 'JA' }, { code: 'ru-RU', label: 'Русский', shortLabel: 'RU' }, + { code: 'ar-SA', label: 'العربية', shortLabel: 'AR' }, ] as const satisfies readonly LocaleEntry[]; diff --git a/lib/i18n/locales/ar-SA.json b/lib/i18n/locales/ar-SA.json new file mode 100644 index 000000000..6f9186f65 --- /dev/null +++ b/lib/i18n/locales/ar-SA.json @@ -0,0 +1,912 @@ +{ + "common": { + "you": "أنت", + "confirm": "تأكيد", + "cancel": "إلغاء", + "loading": "جارٍ التحميل..." + }, + "home": { + "slogan": "التعلّم التوليدي في فصل تفاعلي متعدد الوكلاء", + "greetingWithName": "مرحبًا، {{name}}" + }, + "toolbar": { + "pdfParser": "محلل PDF", + "pdfUpload": "رفع PDF", + "removePdf": "إزالة الملف", + "webSearchOn": "مُفعّل", + "webSearchOff": "انقر للتفعيل", + "webSearchDesc": "البحث في الإنترنت عن معلومات محدّثة قبل التوليد", + "webSearchProvider": "مزوّد البحث", + "webSearchNoProvider": "قم بإعداد مفتاح API للبحث من صفحة الإعدادات", + "selectProvider": "اختر المزوّد", + "configureProvider": "إعداد المزوّد", + "configureProviderHint": "قم بتكوين مزوّد نماذج واحد على الأقل لتوليد المقررات", + "enterClassroom": "دخول الفصل", + "advancedSettings": "إعدادات متقدمة", + "ttsTitle": "تحويل النص إلى كلام", + "ttsHint": "اختر صوتًا للمعلم الذكي", + "ttsPreview": "معاينة", + "ttsPreviewing": "جارٍ التشغيل..." + }, + "export": { + "pptx": "تصدير PPTX", + "resourcePack": "تصدير حزمة الموارد", + "resourcePackDesc": "PPTX + صفحات تفاعلية", + "classroomZip": "تصدير ملف الفصل ZIP", + "classroomZipDesc": "هيكل المقرر + ملفات الوسائط", + "exporting": "جارٍ التصدير...", + "exportSuccess": "تم التصدير بنجاح", + "exportFailed": "فشل التصدير" + }, + "import": { + "classroom": "استيراد فصل", + "parsing": "جارٍ تحليل ملف ZIP...", + "validating": "جارٍ التحقق من البيانات...", + "writingCourse": "جارٍ كتابة بيانات المقرر...", + "writingMedia": "جارٍ كتابة ملفات الوسائط...", + "success": "تم استيراد الفصل بنجاح", + "error": { + "invalidZip": "ملف غير صالح. يرجى اختيار ملف .maic.zip صالح.", + "invalidManifest": "ملف فصل غير صالح: ملف manifest.json مفقود أو تالف.", + "missingData": "ملف فصل غير صالح: بيانات المقرر المطلوبة مفقودة.", + "storageFull": "فشل الاستيراد: مساحة تخزين المتصفح ممتلئة. حاول حذف فصول قديمة." + } + }, + "chat": { + "lecture": "المحاضرة", + "noConversations": "لا توجد محادثات", + "startConversation": "اكتب رسالة أدناه لبدء المحادثة", + "noMessages": "لا توجد رسائل بعد", + "ended": "انتهت", + "unknown": "غير معروف", + "stopDiscussion": "إيقاف النقاش", + "endQA": "إنهاء الأسئلة والأجوبة", + "tabs": { + "lecture": "الملاحظات", + "chat": "المحادثة" + }, + "lectureNotes": { + "empty": "ستظهر الملاحظات هنا بعد تشغيل المحاضرة", + "emptyHint": "اضغط تشغيل لبدء المحاضرة", + "pageLabel": "الصفحة {{n}}", + "currentPage": "الحالية" + }, + "badge": { + "qa": "أسئلة", + "discussion": "نقاش", + "lecture": "محاضرة" + } + }, + "actions": { + "names": { + "spotlight": "تسليط الضوء", + "laser": "مؤشر ليزر", + "wb_open": "فتح السبورة", + "wb_draw_text": "نص على السبورة", + "wb_draw_shape": "شكل على السبورة", + "wb_draw_chart": "رسم بياني على السبورة", + "wb_draw_latex": "معادلة على السبورة", + "wb_draw_table": "جدول على السبورة", + "wb_draw_line": "خط على السبورة", + "wb_clear": "مسح السبورة", + "wb_delete": "حذف العنصر", + "wb_close": "إغلاق السبورة", + "discussion": "نقاش" + }, + "status": { + "inputStreaming": "في الانتظار", + "inputAvailable": "جارٍ التنفيذ", + "outputAvailable": "مكتمل", + "outputError": "خطأ", + "outputDenied": "مرفوض", + "running": "جارٍ التنفيذ", + "result": "مكتمل", + "error": "خطأ" + } + }, + "agentBar": { + "readyToLearn": "هل أنت مستعد للتعلّم معنا؟", + "expandedTitle": "إعداد أدوار الفصل", + "configTooltip": "انقر لتكوين أدوار الفصل", + "voiceLabel": "الصوت", + "voiceLoading": "جارٍ التحميل...", + "voiceAutoAssign": "سيتم تعيين الأصوات تلقائيًا" + }, + "proactiveCard": { + "discussion": "نقاش", + "join": "انضمام", + "skip": "تخطي", + "pause": "إيقاف مؤقت", + "resume": "استئناف" + }, + "voice": { + "startListening": "إدخال صوتي", + "stopListening": "إيقاف التسجيل" + }, + "stage": { + "currentScene": "المشهد الحالي", + "generating": "جارٍ التوليد...", + "paused": "متوقف مؤقتًا", + "generationFailed": "فشل التوليد", + "confirmSwitchTitle": "تبديل المشهد", + "confirmSwitchMessage": "يوجد موضوع قيد التقدم حاليًا. سيؤدي تبديل المشهد إلى إنهاء الموضوع الحالي. هل أنت متأكد؟", + "generatingNextPage": "جارٍ توليد المشهد، يرجى الانتظار...", + "fullscreen": "ملء الشاشة", + "exitFullscreen": "الخروج من ملء الشاشة" + }, + "whiteboard": { + "title": "السبورة التفاعلية", + "open": "فتح السبورة", + "clear": "مسح السبورة", + "minimize": "تصغير السبورة", + "ready": "السبورة جاهزة", + "readyHint": "ستظهر العناصر هنا عند إضافتها بواسطة الذكاء الاصطناعي", + "clearSuccess": "تم مسح السبورة بنجاح", + "clearError": "فشل مسح السبورة: ", + "resetView": "إعادة تعيين العرض", + "restoreError": "فشل استعادة السبورة: ", + "history": "السجل", + "restore": "استعادة", + "noHistory": "لا يوجد سجل بعد", + "restored": "تمت استعادة السبورة", + "elementCount": "{{count}} عنصر" + }, + "quiz": { + "title": "اختبار", + "subtitle": "اختبر معلوماتك", + "questionsCount": "أسئلة", + "totalPrefix": "", + "pointsSuffix": "نقاط", + "startQuiz": "بدء الاختبار", + "multipleChoiceHint": "(اختيار متعدد — حدد جميع الإجابات الصحيحة)", + "inputPlaceholder": "اكتب إجابتك هنا...", + "charCount": "حرف", + "yourAnswer": "إجابتك:", + "notAnswered": "لم تتم الإجابة", + "aiComment": "ملاحظات الذكاء الاصطناعي", + "singleChoice": "اختيار واحد", + "multipleChoice": "اختيار متعدد", + "shortAnswer": "إجابة قصيرة", + "analysis": "التحليل: ", + "excellent": "ممتاز!", + "keepGoing": "استمر!", + "needsReview": "يحتاج مراجعة", + "correct": "صحيح", + "incorrect": "خطأ", + "answering": "قيد الإجابة", + "submitAnswers": "إرسال الإجابات", + "aiGrading": "الذكاء الاصطناعي يصحح...", + "aiGradingWait": "يرجى الانتظار، جارٍ تحليل إجاباتك", + "quizReport": "تقرير الاختبار", + "retry": "إعادة المحاولة" + }, + "roundtable": { + "teacher": "المعلم", + "you": "أنت", + "inputPlaceholder": "اكتب رسالتك...", + "listening": "جارٍ الاستماع...", + "processing": "جارٍ المعالجة...", + "noSpeechDetected": "لم يتم اكتشاف كلام، يرجى المحاولة مرة أخرى", + "discussionEnded": "انتهى النقاش", + "qaEnded": "انتهت الأسئلة والأجوبة", + "thinking": "يفكر", + "yourTurn": "دورك", + "stopDiscussion": "إيقاف النقاش", + "autoPlay": "تشغيل تلقائي", + "autoPlayOff": "إيقاف التشغيل التلقائي", + "speed": "السرعة", + "voiceInput": "إدخال صوتي", + "voiceInputDisabled": "الإدخال الصوتي معطّل", + "textInput": "إدخال نصي", + "stopRecording": "إيقاف التسجيل", + "startRecording": "بدء التسجيل" + }, + "pbl": { + "legacyFormat": "يستخدم مشهد التعلم القائم على المشاريع هذا تنسيقًا قديمًا. يرجى إعادة توليد المقرر.", + "emptyProject": "لم يتم توليد مشروع التعلم القائم على المشاريع بعد. يرجى إنشاؤه عبر توليد المقرر.", + "roleSelection": { + "title": "اختر دورك", + "description": "حدد دورًا لبدء التعاون في المشروع" + }, + "workspace": { + "restart": "إعادة البدء", + "confirmRestart": "إعادة تعيين كل التقدم؟", + "confirm": "تأكيد", + "cancel": "إلغاء" + }, + "issueboard": { + "title": "لوحة المهام", + "noIssues": "لا توجد مهام بعد", + "statusDone": "مكتمل", + "statusActive": "نشط", + "statusPending": "معلّق" + }, + "chat": { + "title": "نقاش المشروع", + "currentIssue": "المهمة الحالية", + "mentionHint": "استخدم @question للسؤال، و@judge للتقديم للمراجعة", + "placeholder": "اكتب رسالة...", + "send": "إرسال", + "issueCompleteMessage": "تم إكمال المهمة \"{{completed}}\"! الانتقال إلى المهمة التالية: \"{{next}}\"", + "allCompleteMessage": "🎉 تم إكمال جميع المهام! عمل رائع في المشروع!" + }, + "guide": { + "howItWorks": "كيف يعمل", + "help": "مساعدة", + "title": "مساعدة", + "step1": { + "title": "الخطوة 1: اختر دورًا", + "desc": "بعد توليد المشروع، حدد دورًا من القائمة (الأدوار غير النظامية مميزة بـ 🟢)" + }, + "step2": { + "title": "الخطوة 2: أكمل المهام", + "desc": "كل مهمة تمثل نشاطًا تعليميًا:", + "s1": { + "title": "عرض المهمة الحالية", + "desc": "تحقق من عنوان المهمة ووصفها والمسؤول عنها" + }, + "s2": { + "title": "الحصول على إرشادات", + "example": "@question من أين أبدأ؟\n@question كيف أنفذ هذه الميزة؟", + "desc": "يقدم وكيل الأسئلة أسئلة إرشادية وتلميحات (بدون إجابات مباشرة)" + }, + "s3": { + "title": "تقديم عملك", + "example": "@judge لقد انتهيت، يرجى مراجعة ملاحظاتي", + "desc": "يقوم وكيل التقييم بتقييم عملك وتقديم ملاحظات:", + "complete": "ينتقل تلقائيًا إلى المهمة التالية", + "revision": "حسّن بناءً على الملاحظات" + } + }, + "step3": { + "title": "الخطوة 3: أكمل المشروع", + "desc": "عند إتمام جميع المهام، يعرض النظام \"🎉 اكتمل المشروع!\"" + } + } + }, + "share": { + "notReady": "متاح بعد اكتمال التوليد" + }, + "classroom": { + "recentClassrooms": "الأخيرة", + "today": "اليوم", + "yesterday": "أمس", + "daysAgo": "أيام مضت", + "slides": "شرائح", + "nameCopied": "تم نسخ الاسم", + "deleteConfirmTitle": "حذف", + "delete": "حذف", + "rename": "إعادة تسمية", + "renamePlaceholder": "أدخل اسم الفصل", + "renameFailed": "فشلت إعادة تسمية الفصل" + }, + "upload": { + "pdfSizeLimit": "يدعم ملفات PDF حتى 50 ميغابايت", + "generateFailed": "فشل توليد الفصل، يرجى المحاولة مرة أخرى", + "requirementPlaceholder": "أخبرني بأي شيء تريد تعلمه، مثلاً:\n\"علمني بايثون من الصفر في 30 دقيقة\"\n\"اشرح تحويل فورييه على السبورة\"\n\"كيف تلعب لعبة أفالون\"", + "requirementRequired": "يرجى إدخال متطلبات المقرر", + "fileTooLarge": "الملف كبير جدًا. يرجى اختيار ملف PDF أصغر من 50 ميغابايت" + }, + "generation": { + "analyzingPdf": "تحليل مستند PDF", + "analyzingPdfDesc": "جارٍ استخراج هيكل المستند ومحتواه...", + "pdfLoadFailed": "فشل تحميل ملف PDF، يرجى المحاولة مرة أخرى", + "pdfParseFailed": "فشل تحليل PDF", + "streamNotReadable": "تعذرت قراءة تدفق التوليد", + "generatingOutlines": "صياغة مخطط المقرر", + "generatingOutlinesDesc": "جارٍ هيكلة مسار التعلم...", + "generatingSlideContent": "توليد محتوى الصفحة", + "generatingSlideContentDesc": "جارٍ إنشاء الشرائح والاختبارات والمحتوى التفاعلي...", + "generatingActions": "توليد إجراءات التدريس", + "generatingActionsDesc": "جارٍ تنسيق السرد والتسليط والتفاعلات...", + "generationComplete": "اكتمل التوليد!", + "generationFailed": "فشل التوليد", + "generatingCourse": "جارٍ توليد المقرر", + "openingClassroom": "جارٍ فتح الفصل...", + "outlineReady": "تم توليد مخطط المقرر", + "generatingFirstPage": "جارٍ توليد الصفحة الأولى...", + "firstPageReady": "الصفحة الأولى جاهزة! جارٍ فتح الفصل...", + "speechFailed": "فشل توليد الكلام", + "retryScene": "إعادة المحاولة", + "retryingScene": "جارٍ إعادة التوليد...", + "backToHome": "العودة للرئيسية", + "sessionNotFound": "الجلسة غير موجودة", + "sessionNotFoundDesc": "يرجى ملء متطلبات المقرر لبدء عملية التوليد.", + "goBackAndRetry": "العودة وإعادة المحاولة", + "classroomReady": "تم توليد بيئة التعلم الذكية المخصصة لك بنجاح.", + "aiWorking": "وكلاء الذكاء الاصطناعي يعملون...", + "textTruncated": "نص المستند طويل، سيتم استخدام أول {{n}} حرف للتوليد", + "imageTruncated": "تم العثور على {{total}} صورة، متجاوزة الحد الأقصى البالغ {{max}} صورة. الصور الإضافية ستستخدم الأوصاف النصية فقط", + "agentGeneration": "توليد أدوار الفصل", + "agentGenerationDesc": "جارٍ توليد الأدوار بناءً على محتوى المقرر...", + "agentRevealTitle": "أدوار فصلك", + "viewAgents": "عرض الأدوار", + "continue": "متابعة", + "outlineRetrying": "مشكلة في توليد المخطط، جارٍ إعادة المحاولة...", + "outlineEmptyResponse": "لم يُرجع النموذج مخططات صالحة. يرجى التحقق من تكوين النموذج والمحاولة مرة أخرى", + "outlineGenerateFailed": "فشل توليد المخطط، يرجى المحاولة لاحقًا", + "webSearching": "بحث في الإنترنت", + "webSearchingDesc": "جارٍ البحث في الإنترنت عن معلومات محدّثة", + "webSearchFailed": "فشل البحث في الإنترنت" + }, + "settings": { + "title": "الإعدادات", + "description": "تكوين إعدادات التطبيق", + "language": "اللغة", + "languageDesc": "اختر لغة الواجهة", + "theme": "المظهر", + "themeDesc": "اختر وضع المظهر (فاتح/داكن/النظام)", + "themeOptions": { + "light": "فاتح", + "dark": "داكن", + "system": "النظام" + }, + "apiKey": "مفتاح API", + "apiKeyDesc": "تكوين مفتاح API الخاص بك", + "apiBaseUrl": "عنوان نقطة نهاية API", + "apiBaseUrlDesc": "تكوين عنوان نقطة نهاية API", + "apiKeyRequired": "لا يمكن أن يكون مفتاح API فارغًا", + "model": "تكوين النموذج", + "modelDesc": "تكوين نماذج الذكاء الاصطناعي", + "modelPlaceholder": "أدخل أو اختر اسم النموذج", + "ttsModel": "نموذج تحويل النص إلى كلام", + "ttsModelDesc": "تكوين نماذج تحويل النص إلى كلام", + "ttsModelPlaceholder": "أدخل أو اختر اسم نموذج TTS", + "ttsModelOptions": { + "openaiTts": "OpenAI TTS", + "azureTts": "Azure TTS" + }, + "availableModels": "النماذج المتاحة", + "modelSelectedViaVoice": "يتم تحديد النموذج حسب اختيار الصوت", + "testConnection": "اختبار الاتصال", + "testConnectionDesc": "اختبار توفر تكوين API الحالي", + "testing": "جارٍ الاختبار...", + "agentSettings": "إعدادات الوكلاء", + "agentSettingsDesc": "اختر الوكلاء المشاركين في المحادثة. اختر واحدًا لوضع الوكيل الفردي، أو اختر عدة وكلاء لوضع التعاون متعدد الوكلاء.", + "agentMode": "وضع الوكلاء", + "agentModePreset": "مُعدّ مسبقًا", + "agentModeAuto": "توليد تلقائي", + "agentModeAutoDesc": "سيقوم الذكاء الاصطناعي بتوليد أدوار مناسبة تلقائيًا", + "autoAgentCount": "عدد الوكلاء", + "autoAgentCountDesc": "عدد الوكلاء للتوليد التلقائي (بما في ذلك المعلم)", + "atLeastOneAgent": "يرجى اختيار وكيل واحد على الأقل", + "singleAgentMode": "وضع الوكيل الفردي", + "directAnswer": "إجابة مباشرة", + "multiAgentMode": "وضع متعدد الوكلاء", + "agentsCollaborating": "نقاش تعاوني", + "agentsCollaboratingCount": "تم اختيار {{count}} وكلاء للنقاش التعاوني", + "maxTurns": "الحد الأقصى لأدوار النقاش", + "maxTurnsDesc": "الحد الأقصى لعدد أدوار النقاش بين الوكلاء (كل وكيل يكمل الإجراءات والرد يُحسب كدور واحد)", + "priority": "الأولوية", + "actions": "الإجراءات", + "actionCount": "{{count}} إجراءات", + "selectedAgent": "الوكيل المختار", + "selectedAgents": "الوكلاء المختارون", + "required": "مطلوب", + "agentNames": { + "default-1": "المعلم الذكي", + "default-2": "المساعد الذكي", + "default-3": "مُحيي الفصل", + "default-4": "العقل الفضولي", + "default-5": "مُدوّن الملاحظات", + "default-6": "المفكر العميق" + }, + "agentRoles": { + "teacher": "معلم", + "assistant": "مساعد", + "student": "طالب" + }, + "agentDescriptions": { + "default-1": "المعلم الرئيسي بشروحات واضحة ومنظمة", + "default-2": "يدعم التعلم ويساعد في توضيح النقاط الرئيسية", + "default-3": "يضفي الفكاهة والحيوية على الفصل", + "default-4": "فضولي دائمًا، يحب السؤال عن الأسباب والكيفية", + "default-5": "يسجّل ملاحظات الدرس وينظمها بدقة", + "default-6": "يفكر بعمق ويستكشف جوهر المواضيع" + }, + "close": "إغلاق", + "save": "حفظ", + "providers": "LLM", + "addProviderDescription": "أضف مزوّدي نماذج مخصصين لتوسيع نماذج الذكاء الاصطناعي المتاحة", + "providerNames": { + "openai": "OpenAI", + "anthropic": "Claude", + "google": "Gemini", + "deepseek": "DeepSeek", + "qwen": "Qwen", + "kimi": "Kimi", + "minimax": "MiniMax", + "glm": "GLM", + "siliconflow": "SiliconFlow", + "doubao": "Doubao", + "ollama": "Ollama (محلي)" + }, + "providerTypes": { + "openai": "بروتوكول OpenAI", + "anthropic": "بروتوكول Claude", + "google": "بروتوكول Gemini" + }, + "modelCount": "نماذج", + "modelSingular": "نموذج", + "defaultModel": "النموذج الافتراضي", + "webSearch": "بحث الإنترنت", + "mcp": "MCP", + "knowledgeBase": "قاعدة المعرفة", + "documentParser": "محلل المستندات", + "conversationSettings": "المحادثة", + "keyboardShortcuts": "اختصارات لوحة المفاتيح", + "generalSettings": "عام", + "systemSettings": "النظام", + "addProvider": "إضافة", + "importFromClipboard": "استيراد من الحافظة", + "apiSecret": "مفتاح API", + "apiHost": "العنوان الأساسي", + "requestUrl": "عنوان الطلب", + "models": "النماذج", + "addModel": "جديد", + "reset": "إعادة تعيين", + "fetch": "جلب", + "connectionSuccess": "نجح الاتصال", + "connectionFailed": "فشل الاتصال", + "capabilities": { + "vision": "الرؤية", + "tools": "الأدوات", + "streaming": "التدفق" + }, + "contextWindow": "السياق", + "contextShort": "سياق", + "outputWindow": "المخرجات", + "addProviderButton": "إضافة", + "addProviderDialog": "إضافة مزوّد نماذج", + "providerName": "الاسم", + "providerNamePlaceholder": "مثلاً: بروكسي OpenAI الخاص بي", + "providerNameRequired": "يرجى إدخال اسم المزوّد", + "providerApiMode": "وضع API", + "apiModeOpenAI": "بروتوكول OpenAI", + "apiModeAnthropic": "بروتوكول Claude", + "apiModeGoogle": "بروتوكول Gemini", + "defaultBaseUrl": "العنوان الأساسي الافتراضي", + "providerIcon": "رابط أيقونة المزوّد", + "requiresApiKey": "يتطلب مفتاح API", + "deleteProvider": "حذف المزوّد", + "deleteProviderConfirm": "هل أنت متأكد من حذف هذا المزوّد؟", + "addCustomTTSProvider": "إضافة مزوّد TTS مخصص", + "addCustomASRProvider": "إضافة مزوّد ASR مخصص", + "addCustomAudioProviderDescription": "إضافة مزوّد صوتي مخصص متوافق مع OpenAI", + "customVoices": "الأصوات", + "voiceIdPlaceholder": "معرّف الصوت (مثلاً alloy)", + "voiceNamePlaceholder": "اسم العرض", + "addVoice": "إضافة", + "modelNamePlaceholder": "اسم العرض", + "defaultModelHint": "اسم النموذج المُرسل في طلبات API (مثلاً kokoro, tts-1)", + "noVoicesAdded": "لم تتم إضافة أصوات بعد. أضف أصواتًا أدناه لاختيار صوت لكل وكيل.", + "noModelsAdded": "لم تتم إضافة نماذج بعد. أضف نماذج أدناه لتمكين اختيار النموذج.", + "noModelsWarning": "يرجى إضافة نموذج واحد على الأقل أدناه قبل استخدام هذا المزوّد.", + "asrNoTranscription": "لم يتم توليد نسخ نصي. حاول التحدث بصوت أعلى أو لفترة أطول.", + "cannotDeleteBuiltIn": "لا يمكن حذف المزوّد المُدمج", + "resetToDefault": "إعادة التعيين للافتراضي", + "resetToDefaultDescription": "استعادة قائمة النماذج للتكوين الافتراضي (سيتم الاحتفاظ بمفتاح API والعنوان الأساسي)", + "resetConfirmDescription": "سيؤدي هذا إلى إزالة جميع النماذج المخصصة واستعادة قائمة النماذج الافتراضية المُدمجة. سيتم الاحتفاظ بمفتاح API والعنوان الأساسي.", + "confirmReset": "تأكيد إعادة التعيين", + "resetSuccess": "تمت إعادة التعيين للتكوين الافتراضي بنجاح", + "saveSuccess": "تم حفظ الإعدادات", + "saveFailed": "فشل حفظ الإعدادات، يرجى المحاولة مرة أخرى", + "cannotDeleteBuiltInModel": "لا يمكن حذف النموذج المُدمج", + "cannotEditBuiltInModel": "لا يمكن تعديل النموذج المُدمج", + "modelIdRequired": "يرجى إدخال معرّف النموذج", + "noModelsAvailable": "لا توجد نماذج متاحة للاختبار", + "providerMetadata": "بيانات المزوّد الوصفية", + "editModel": "تعديل النموذج", + "editModelDescription": "تعديل تكوين النموذج وقدراته", + "addNewModel": "نموذج جديد", + "addNewModelDescription": "إضافة تكوين نموذج جديد", + "modelId": "معرّف النموذج", + "modelIdPlaceholder": "مثلاً، gpt-4o", + "modelName": "اسم العرض", + "modelNamePlaceholder": "اختياري", + "modelCapabilities": "القدرات", + "advancedSettings": "إعدادات متقدمة", + "contextWindowLabel": "نافذة السياق", + "contextWindowPlaceholder": "مثلاً، 128000", + "outputWindowLabel": "الحد الأقصى لرموز المخرجات", + "outputWindowPlaceholder": "مثلاً، 4096", + "testModel": "اختبار النموذج", + "deleteModel": "حذف", + "cancelEdit": "إلغاء", + "saveModel": "حفظ", + "modelsManagementDescription": "إدارة نماذج هذا المزوّد. لاختيار النموذج النشط، انتقل إلى \"عام\".", + "howToUse": "كيفية الاستخدام", + "step1ConfigureProvider": "انتقل إلى \"مزوّدو النماذج\"، اختر أو أضف مزوّدًا، وقم بتكوين إعدادات الاتصال (مفتاح API، العنوان الأساسي، إلخ.)", + "step2SelectModel": "اختر النموذج الذي تريد استخدامه في \"النموذج النشط\" أدناه", + "step3StartUsing": "بعد الحفظ، سيستخدم النظام النموذج المحدد", + "activeModel": "النموذج النشط", + "activeModelDescription": "اختر النموذج لمحادثات الذكاء الاصطناعي وتوليد المحتوى", + "selectModel": "اختر النموذج", + "searchModels": "البحث في النماذج", + "noModelsFound": "لم يتم العثور على نماذج مطابقة", + "noConfiguredProviders": "لا يوجد مزوّدون مُكوّنون", + "configureProvidersFirst": "يرجى تكوين إعدادات اتصال المزوّد في \"مزوّدو النماذج\" على اليسار", + "currentlyUsing": "قيد الاستخدام حاليًا", + "ttsSettings": "تحويل النص إلى كلام", + "asrSettings": "التعرف على الكلام", + "audioSettings": "إعدادات الصوت", + "ttsSection": "تحويل النص إلى كلام (TTS)", + "asrSection": "التعرف التلقائي على الكلام (ASR)", + "ttsDescription": "TTS (تحويل النص إلى كلام) - تحويل النص إلى صوت مسموع", + "asrDescription": "ASR (التعرف التلقائي على الكلام) - تحويل الكلام إلى نص", + "enableTTS": "تفعيل تحويل النص إلى كلام", + "ttsEnabledDescription": "عند التفعيل، سيتم توليد الصوت أثناء إنشاء المقرر", + "ttsVoiceConfigHint": "يمكن تكوين صوت كل وكيل في \"إعداد أدوار الفصل\" في الصفحة الرئيسية", + "enableASR": "تفعيل التعرف على الكلام", + "asrEnabledDescription": "عند التفعيل، يمكن للطلاب استخدام الميكروفون للإدخال الصوتي", + "ttsProvider": "مزوّد TTS", + "ttsLanguageFilter": "تصفية اللغة", + "allLanguages": "جميع اللغات", + "ttsVoice": "الصوت", + "ttsSpeed": "السرعة", + "ttsBaseUrl": "العنوان الأساسي", + "ttsApiKey": "مفتاح API", + "doubaoAppId": "معرّف التطبيق", + "doubaoAccessKey": "مفتاح الوصول", + "asrProvider": "مزوّد ASR", + "asrLanguage": "لغة التعرف", + "asrBaseUrl": "العنوان الأساسي", + "asrApiKey": "مفتاح API", + "enterApiKey": "أدخل مفتاح API", + "enterCustomBaseUrl": "أدخل عنوانًا أساسيًا مخصصًا", + "browserNativeNote": "التعرف على الكلام المُدمج في المتصفح لا يحتاج تكوينًا وهو مجاني تمامًا", + "providerOpenAITTS": "OpenAI TTS (gpt-4o-mini-tts)", + "providerAzureTTS": "Azure TTS", + "providerGLMTTS": "GLM TTS", + "providerQwenTTS": "Qwen TTS (سحابة علي بابا بايليان)", + "providerDoubaoTTS": "Doubao TTS 2.0 (فولكينجين)", + "providerElevenLabsTTS": "ElevenLabs TTS", + "providerMiniMaxTTS": "MiniMax TTS", + "providerBrowserNativeTTS": "تحويل النص إلى كلام المدمج في المتصفح", + "providerOpenAIWhisper": "OpenAI ASR (gpt-4o-mini-transcribe)", + "providerBrowserNative": "التعرّف على الكلام المدمج في المتصفح", + "providerQwenASR": "Qwen ASR (سحابة علي بابا بايليان)", + "providerUnpdf": "unpdf (مُدمج)", + "providerMinerU": "MinerU", + "browserNativeTTSNote": "TTS المُدمج في المتصفح لا يحتاج تكوينًا وهو مجاني تمامًا، يستخدم أصوات النظام المُدمجة", + "testTTS": "اختبار TTS", + "testASR": "اختبار ASR", + "testSuccess": "نجح الاختبار", + "testFailed": "فشل الاختبار", + "ttsTestText": "نص اختبار TTS", + "ttsTestSuccess": "نجح اختبار TTS، تم تشغيل الصوت", + "ttsTestFailed": "فشل اختبار TTS", + "asrTestSuccess": "نجح التعرف على الكلام", + "asrTestFailed": "فشل التعرف على الكلام", + "asrProcessing": "جارٍ المعالجة...", + "asrResult": "نتيجة التعرف", + "asrNotSupported": "المتصفح لا يدعم واجهة التعرف على الكلام", + "browserTTSNotSupported": "المتصفح لا يدعم ميزة تحويل النص إلى كلام", + "browserTTSNoVoices": "لا توجد أصوات TTS متاحة في المتصفح الحالي", + "microphoneAccessDenied": "تم رفض الوصول إلى الميكروفون", + "microphoneAccessFailed": "فشل الوصول إلى الميكروفون", + "asrResultPlaceholder": "ستظهر نتيجة التعرف بعد التسجيل", + "useThisProvider": "استخدام هذا المزوّد", + "fetchVoices": "جلب قائمة الأصوات", + "fetchingVoices": "جارٍ الجلب...", + "voicesFetched": "تم جلب الأصوات", + "fetchVoicesFailed": "فشل جلب الأصوات", + "voiceApiKeyRequired": "مفتاح API مطلوب", + "voiceBaseUrlRequired": "العنوان الأساسي مطلوب", + "ttsTestTextPlaceholder": "أدخل نصًا للتحويل", + "ttsTestTextDefault": "مرحبًا، هذا كلام تجريبي.", + "startRecording": "بدء التسجيل", + "stopRecording": "إيقاف التسجيل", + "recording": "جارٍ التسجيل...", + "transcribing": "جارٍ النسخ...", + "transcriptionResult": "نتيجة النسخ", + "noTranscriptionResult": "لا توجد نتيجة نسخ", + "baseUrlOptional": "العنوان الأساسي (اختياري)", + "defaultValue": "الافتراضي", + "voiceMarin": "موصى به - أفضل جودة", + "voiceCedar": "موصى به - أفضل جودة", + "voiceAlloy": "محايد، متوازن", + "voiceAsh": "ثابت، احترافي", + "voiceBallad": "أنيق، غنائي", + "voiceCoral": "دافئ، ودّي", + "voiceEcho": "ذكوري، واضح", + "voiceFable": "سردي، حيوي", + "voiceNova": "أنثوي، مشرق", + "voiceOnyx": "ذكوري، عميق", + "voiceSage": "حكيم، هادئ", + "voiceShimmer": "أنثوي، ناعم", + "voiceVerse": "طبيعي، سلس", + "glmVoiceTongtong": "الصوت الافتراضي", + "glmVoiceChuichui": "صوت تشويتشوي", + "glmVoiceXiaochen": "صوت شياوتشن", + "glmVoiceJam": "صوت جام", + "glmVoiceKazi": "صوت كازي", + "glmVoiceDouji": "صوت دوجي", + "glmVoiceLuodo": "صوت لوودو", + "qwenVoiceCherry": "مشرق، دافئ وطبيعي", + "qwenVoiceSerena": "لطيف وناعم", + "qwenVoiceEthan": "نشيط وحيوي", + "qwenVoiceChelsie": "شخصية أنمي افتراضية", + "qwenVoiceMomo": "مرح ومبتهج", + "qwenVoiceVivian": "لطيف وجريء", + "qwenVoiceMoon": "رائع ووسيم", + "qwenVoiceMaia": "مثقف ولطيف", + "qwenVoiceKai": "منتجع صحي لأذنيك", + "qwenVoiceNofish": "مصمم لا يستطيع نطق الحروف المفخمة", + "qwenVoiceBella": "فتاة صغيرة لا تسكر", + "qwenVoiceJennifer": "صوت أنثوي أمريكي بمستوى احترافي وسينمائي", + "qwenVoiceRyan": "أداء سريع ودرامي", + "qwenVoiceKaterina": "سيدة ناضجة بإيقاع لا يُنسى", + "qwenVoiceAiden": "شاب أمريكي يتقن الطبخ", + "qwenVoiceEldricSage": "حكيم ثابت ورصين", + "qwenVoiceMia": "لطيفة كماء الربيع، مهذبة كالثلج", + "qwenVoiceMochi": "طفل ذكي ببراءة الأطفال", + "qwenVoiceBellona": "صوت عالٍ، نطق واضح، شخصيات حية", + "qwenVoiceVincent": "صوت أجش فريد يروي حكايات الحرب والشرف", + "qwenVoiceBunny": "فتاة صغيرة فائقة اللطافة", + "qwenVoiceNeil": "مذيع أخبار محترف", + "qwenVoiceElias": "مدرّب محترف", + "qwenVoiceArthur": "صوت بسيط نقعته السنين والتبغ الجاف", + "qwenVoiceNini": "صوت ناعم ولزج كعجينة الأرز", + "qwenVoiceEbona": "همسها كمفتاح صدئ", + "qwenVoiceSeren": "صوت لطيف ومهدئ يساعدك على النوم", + "qwenVoicePip": "مشاغب لكن مليء ببراءة الطفولة", + "qwenVoiceStella": "صوت فتاة حلوة مشوشة يصبح عاليًا عند الصراخ", + "qwenVoiceBodega": "عم إسباني متحمس", + "qwenVoiceSonrisa": "سيدة لاتينية متحمسة", + "qwenVoiceAlek": "برد أمة المعارك، دفء تحت المعطف الصوفي", + "qwenVoiceDolce": "عم إيطالي كسول", + "qwenVoiceSohee": "أخت كورية لطيفة ومبتهجة", + "qwenVoiceOnoAnna": "صديقة طفولة مشاغبة", + "qwenVoiceLenn": "شاب ألماني عقلاني يرتدي بدلة ويستمع لما بعد البانك", + "qwenVoiceEmilien": "أخ فرنسي رومانسي", + "qwenVoiceAndre": "صوت ذكوري جذاب، طبيعي وهادئ", + "qwenVoiceRadioGol": "شاعر كرة القدم راديو غول!", + "qwenVoiceJada": "سيدة شنغهاي نشيطة", + "qwenVoiceDylan": "شاب من بكين", + "qwenVoiceLi": "معلمة يوغا صبورة", + "qwenVoiceMarcus": "وجه عريض، كلمات قليلة، قلب صلب - نكهة شانشي القديمة", + "qwenVoiceRoy": "شاب تايواني فكاهي وصريح", + "qwenVoicePeter": "محترف الكومنتاتور في فن الكروستوك من تيانجين", + "qwenVoiceSunny": "فتاة سيشوان حلوة", + "qwenVoiceEric": "رجل نبيل من تشنغدو", + "qwenVoiceRocky": "شاب هونغ كونغ فكاهي", + "qwenVoiceKiki": "فتاة هونغ كونغ حلوة", + "lang_auto": "اكتشاف تلقائي", + "lang_zh": "中文", + "lang_yue": "粵語", + "lang_en": "English", + "lang_ja": "日本語", + "lang_ko": "한국어", + "lang_es": "Español", + "lang_fr": "Français", + "lang_de": "Deutsch", + "lang_ru": "Русский", + "lang_ar": "العربية", + "lang_pt": "Português", + "lang_it": "Italiano", + "lang_af": "Afrikaans", + "lang_hy": "Հայերեն", + "lang_az": "Azərbaycan", + "lang_be": "Беларуская", + "lang_bs": "Bosanski", + "lang_bg": "Български", + "lang_ca": "Català", + "lang_hr": "Hrvatski", + "lang_cs": "Čeština", + "lang_da": "Dansk", + "lang_nl": "Nederlands", + "lang_et": "Eesti", + "lang_fi": "Suomi", + "lang_gl": "Galego", + "lang_el": "Ελληνικά", + "lang_he": "עברית", + "lang_hi": "हिन्दी", + "lang_hu": "Magyar", + "lang_is": "Íslenska", + "lang_id": "Bahasa Indonesia", + "lang_kn": "ಕನ್ನಡ", + "lang_kk": "Қазақша", + "lang_lv": "Latviešu", + "lang_lt": "Lietuvių", + "lang_mk": "Македонски", + "lang_ms": "Bahasa Melayu", + "lang_mr": "मराठी", + "lang_mi": "Te Reo Māori", + "lang_ne": "नेपाली", + "lang_no": "Norsk", + "lang_fa": "فارسی", + "lang_pl": "Polski", + "lang_ro": "Română", + "lang_sr": "Српски", + "lang_sk": "Slovenčina", + "lang_sl": "Slovenščina", + "lang_sw": "Kiswahili", + "lang_sv": "Svenska", + "lang_tl": "Tagalog", + "lang_fil": "Filipino", + "lang_ta": "தமிழ்", + "lang_th": "ไทย", + "lang_tr": "Türkçe", + "lang_uk": "Українська", + "lang_ur": "اردو", + "lang_vi": "Tiếng Việt", + "lang_cy": "Cymraeg", + "lang_zh-CN": "中文(简体,中国)", + "lang_zh-TW": "中文(繁體,台灣)", + "lang_zh-HK": "粵語(香港)", + "lang_yue-Hant-HK": "粵語(繁體)", + "lang_en-US": "English (United States)", + "lang_en-GB": "English (United Kingdom)", + "lang_en-AU": "English (Australia)", + "lang_en-CA": "English (Canada)", + "lang_en-IN": "English (India)", + "lang_en-NZ": "English (New Zealand)", + "lang_en-ZA": "English (South Africa)", + "lang_ja-JP": "日本語(日本)", + "lang_ko-KR": "한국어(대한민국)", + "lang_de-DE": "Deutsch (Deutschland)", + "lang_fr-FR": "Français (France)", + "lang_es-ES": "Español (España)", + "lang_es-MX": "Español (México)", + "lang_es-AR": "Español (Argentina)", + "lang_es-CO": "Español (Colombia)", + "lang_it-IT": "Italiano (Italia)", + "lang_pt-BR": "Português (Brasil)", + "lang_pt-PT": "Português (Portugal)", + "lang_ru-RU": "Русский (Россия)", + "lang_nl-NL": "Nederlands (Nederland)", + "lang_pl-PL": "Polski (Polska)", + "lang_cs-CZ": "Čeština (Česko)", + "lang_da-DK": "Dansk (Danmark)", + "lang_fi-FI": "Suomi (Suomi)", + "lang_sv-SE": "Svenska (Sverige)", + "lang_no-NO": "Norsk (Norge)", + "lang_tr-TR": "Türkçe (Türkiye)", + "lang_el-GR": "Ελληνικά (Ελλάδα)", + "lang_hu-HU": "Magyar (Magyarország)", + "lang_ro-RO": "Română (România)", + "lang_sk-SK": "Slovenčina (Slovensko)", + "lang_bg-BG": "Български (България)", + "lang_hr-HR": "Hrvatski (Hrvatska)", + "lang_ca-ES": "Català (Espanya)", + "lang_ar-SA": "العربية (السعودية)", + "lang_ar-EG": "العربية (مصر)", + "lang_he-IL": "עברית (ישראל)", + "lang_hi-IN": "हिन्दी (भारत)", + "lang_th-TH": "ไทย (ประเทศไทย)", + "lang_vi-VN": "Tiếng Việt (Việt Nam)", + "lang_id-ID": "Bahasa Indonesia (Indonesia)", + "lang_ms-MY": "Bahasa Melayu (Malaysia)", + "lang_fil-PH": "Filipino (Pilipinas)", + "lang_af-ZA": "Afrikaans (Suid-Afrika)", + "lang_uk-UA": "Українська (Україна)", + "pdfSettings": "تحليل PDF", + "pdfParsingSettings": "إعدادات تحليل PDF", + "pdfDescription": "اختر محرك تحليل PDF مع دعم استخراج النص ومعالجة الصور والتعرف على الجداول", + "pdfProvider": "محلل PDF", + "pdfFeatures": "الميزات المدعومة", + "pdfApiKey": "مفتاح API", + "pdfBaseUrl": "العنوان الأساسي", + "mineruDescription": "MinerU هي خدمة تحليل PDF تجارية تدعم ميزات متقدمة مثل استخراج الجداول والتعرف على المعادلات وتحليل التخطيط.", + "mineruApiKeyRequired": "تحتاج إلى التقدم للحصول على مفتاح API من موقع MinerU قبل الاستخدام.", + "mineruWarning": "تحذير", + "mineruCostWarning": "MinerU خدمة تجارية وقد تتكبد رسومًا. يرجى مراجعة موقع MinerU لتفاصيل الأسعار.", + "enterMinerUApiKey": "أدخل مفتاح API لـ MinerU", + "mineruLocalDescription": "يدعم MinerU النشر المحلي مع تحليل PDF متقدم (جداول، معادلات، تحليل تخطيط). يتطلب نشر خدمة MinerU أولاً.", + "mineruServerAddress": "عنوان خادم MinerU المحلي (مثلاً، http://localhost:8080)", + "mineruApiKeyOptional": "مطلوب فقط إذا كان الخادم يتطلب مصادقة", + "optionalApiKey": "مفتاح API اختياري", + "featureText": "استخراج النص", + "featureImages": "استخراج الصور", + "featureTables": "استخراج الجداول", + "featureFormulas": "التعرف على المعادلات", + "featureLayoutAnalysis": "تحليل التخطيط", + "featureMetadata": "البيانات الوصفية", + "enableImageGeneration": "تفعيل توليد الصور بالذكاء الاصطناعي", + "imageGenerationDisabledHint": "عند التفعيل، سيتم توليد الصور تلقائيًا أثناء إنشاء المقرر", + "imageSettings": "توليد الصور", + "imageSection": "تحويل النص إلى صورة", + "imageProvider": "مزوّد توليد الصور", + "imageModel": "نموذج توليد الصور", + "providerSeedream": "Seedream (ByteDance)", + "providerQwenImage": "Qwen Image (Alibaba)", + "providerNanoBanana": "Nano Banana (Gemini)", + "providerMiniMaxImage": "MiniMax Image", + "providerGrokImage": "Grok Image (xAI)", + "testImageGeneration": "اختبار توليد الصور", + "testImageConnectivity": "اختبار الاتصال", + "imageConnectivitySuccess": "تم الاتصال بخدمة الصور بنجاح", + "imageConnectivityFailed": "فشل الاتصال بخدمة الصور", + "imageTestSuccess": "نجح اختبار توليد الصور", + "imageTestFailed": "فشل اختبار توليد الصور", + "imageTestPromptPlaceholder": "أدخل وصف الصورة للاختبار", + "imageTestPromptDefault": "قطة لطيفة تجلس على مكتب", + "imageGenerating": "جارٍ توليد الصورة...", + "imageGenerationFailed": "فشل توليد الصورة", + "enableVideoGeneration": "تفعيل توليد الفيديو بالذكاء الاصطناعي", + "videoGenerationDisabledHint": "عند التفعيل، سيتم توليد الفيديوهات تلقائيًا أثناء إنشاء المقرر", + "videoSettings": "توليد الفيديو", + "videoSection": "تحويل النص إلى فيديو", + "videoProvider": "مزوّد توليد الفيديو", + "videoModel": "نموذج توليد الفيديو", + "providerSeedance": "Seedance (ByteDance)", + "providerKling": "Kling (Kuaishou)", + "providerVeo": "Veo (Google)", + "providerSora": "Sora (OpenAI)", + "providerMiniMaxVideo": "MiniMax Video", + "providerGrokVideo": "Grok Video (xAI)", + "testVideoGeneration": "اختبار توليد الفيديو", + "testVideoConnectivity": "اختبار الاتصال", + "videoConnectivitySuccess": "تم الاتصال بخدمة الفيديو بنجاح", + "videoConnectivityFailed": "فشل الاتصال بخدمة الفيديو", + "testingConnection": "جارٍ الاختبار...", + "videoTestSuccess": "نجح اختبار توليد الفيديو", + "videoTestFailed": "فشل اختبار توليد الفيديو", + "videoTestPromptDefault": "قطة لطيفة تمشي على مكتب", + "videoGenerating": "جارٍ توليد الفيديو (تقريبًا 1-2 دقيقة)...", + "videoGenerationWarning": "توليد الفيديو يستغرق عادةً 1-2 دقيقة، يرجى الصبر", + "mediaRetry": "إعادة المحاولة", + "mediaContentSensitive": "عذرًا، هذا المحتوى لم يجتز فحص السلامة.", + "mediaGenerationDisabled": "التوليد معطّل في الإعدادات", + "singleAgent": "وكيل فردي", + "multiAgent": "وكلاء متعددون", + "selectAgents": "اختيار الوكلاء", + "noVisionWarning": "النموذج الحالي لا يدعم الرؤية. يمكن وضع الصور في الشرائح، لكن النموذج لا يستطيع فهم محتوى الصور لتحسين الاختيار والتخطيط", + "serverConfigured": "الخادم", + "serverConfiguredNotice": "قام المسؤول بتكوين مفتاح API لهذا المزوّد على الخادم. يمكنك استخدامه مباشرةً أو إدخال مفتاحك الخاص للتجاوز.", + "optionalOverride": "اختياري — اتركه فارغًا لاستخدام تكوين الخادم", + "setupNeeded": "يلزم الإعداد", + "modelNotConfigured": "يرجى اختيار نموذج للبدء", + "dangerZone": "منطقة الخطر", + "clearCache": "مسح الذاكرة المؤقتة المحلية", + "clearCacheDescription": "حذف جميع البيانات المخزنة محليًا، بما في ذلك سجلات الفصول وتاريخ المحادثات وذاكرة الصوت المؤقتة وإعدادات التطبيق. لا يمكن التراجع عن هذا الإجراء.", + "clearCacheConfirmTitle": "هل أنت متأكد من مسح جميع الذاكرة المؤقتة؟", + "clearCacheConfirmDescription": "سيتم حذف جميع البيانات التالية نهائيًا ولا يمكن استردادها:", + "clearCacheConfirmItems": "الفصول والمشاهد، تاريخ المحادثات، ذاكرة الصوت والصور المؤقتة، إعدادات التطبيق والتفضيلات", + "clearCacheConfirmInput": "اكتب \"DELETE\" للمتابعة", + "clearCacheConfirmPhrase": "DELETE", + "clearCacheButton": "حذف جميع البيانات نهائيًا", + "clearCacheSuccess": "تم مسح الذاكرة المؤقتة، ستتم إعادة تحميل الصفحة قريبًا", + "clearCacheFailed": "فشل مسح الذاكرة المؤقتة، يرجى المحاولة مرة أخرى", + "webSearchSettings": "بحث الإنترنت", + "webSearchApiKey": "مفتاح API لـ Tavily", + "webSearchApiKeyPlaceholder": "أدخل مفتاح API لـ Tavily", + "webSearchApiKeyPlaceholderServer": "تم تكوين مفتاح الخادم، يمكنك التجاوز اختياريًا", + "webSearchApiKeyHint": "احصل على مفتاح API من tavily.com للبحث في الإنترنت", + "webSearchBaseUrl": "العنوان الأساسي", + "webSearchServerConfigured": "تم تكوين مفتاح API لـ Tavily على الخادم", + "optional": "اختياري" + }, + "profile": { + "title": "الملف الشخصي", + "defaultNickname": "متعلّم", + "chooseAvatar": "اختر صورة رمزية", + "uploadAvatar": "رفع", + "bioPlaceholder": "أخبرنا عن نفسك — سيقوم المعلم الذكي بتخصيص الدروس لك...", + "avatarHint": "ستظهر صورتك الرمزية في نقاشات الفصل والمحادثات", + "fileTooLarge": "الصورة كبيرة جدًا — يرجى اختيار صورة أقل من 5 ميغابايت", + "invalidFileType": "يرجى اختيار ملف صورة", + "editTooltip": "انقر لتعديل الملف الشخصي" + }, + "media": { + "imageCapability": "توليد الصور", + "imageHint": "توليد صور في الشرائح", + "videoCapability": "توليد الفيديو", + "videoHint": "توليد فيديوهات في الشرائح", + "ttsCapability": "تحويل النص إلى كلام", + "ttsHint": "المعلم الذكي يتحدث بصوت مسموع", + "asrCapability": "التعرف على الكلام", + "asrHint": "إدخال صوتي للنقاش", + "provider": "المزوّد", + "model": "النموذج", + "voice": "الصوت", + "speed": "السرعة", + "language": "اللغة" + }, + "accessCode": { + "title": "أدخل رمز الوصول", + "placeholder": "رمز الوصول", + "error": "رمز الوصول غير صالح. يرجى المحاولة مرة أخرى." + } +}