import type { TranslationDictionary } from '@/types/i18n.types';

export const ar: TranslationDictionary = {
  common: {
    save: 'حفظ',
    cancel: 'إلغاء',
    delete: 'حذف',
    edit: 'تعديل',
    create: 'إنشاء',
    search: 'بحث',
    filter: 'تصفية',
    loading: 'جار التحميل...',
    noResults: 'لا توجد نتائج',
    confirm: 'تأكيد',
    back: 'رجوع',
    next: 'التالي',
    previous: 'السابق',
    close: 'إغلاق',
    retry: 'إعادة المحاولة',
    error: 'خطأ',
    success: 'نجاح',
    warning: 'تحذير',
    info: 'معلومات',
    healthy: 'سليم',
    degraded: 'متدهور',
    unhealthy: 'غير سليم',
    up: 'يعمل',
    down: 'متوقف',
    responseTime: 'زمن الاستجابة',
    unknown: 'غير معروف',
    operational: 'قيد التشغيل',
    notAvailable: 'غير متوفر',
    yes: 'نعم',
    no: 'لا',
    never: 'أبداً',
    accessDenied: 'ليست لديك صلاحية الوصول إلى هذه الصفحة.',
    brandName: 'Claw',
    brandVersion: 'Claw الإصدار {version}',
    select: 'اختيار',
    download: 'تنزيل',
    noDataAvailable: 'لا توجد بيانات متاحة',
    showingPage: 'عرض الصفحة {page} من {total}',
  },
  auth: {
    login: 'تسجيل الدخول',
    logout: 'تسجيل الخروج',
    email: 'البريد الإلكتروني',
    password: 'كلمة المرور',
    loginTitle: 'تسجيل الدخول إلى Claw',
    loginSubtitle: 'أدخل بيانات الاعتماد للمتابعة',
    loginButton: 'تسجيل الدخول',
    logoutButton: 'تسجيل الخروج',
    sessionExpired: 'انتهت صلاحية الجلسة. يرجى تسجيل الدخول مرة أخرى.',
    invalidCredentials: 'بريد إلكتروني أو كلمة مرور غير صحيحة',
    welcomeTitle: 'مرحباً بك في Claw',
    welcomeSubtitle: 'منصة تنظيم الذكاء الاصطناعي',
    passwordPlaceholder: 'أدخل كلمة المرور',
    signingIn: 'جار تسجيل الدخول...',
    loginFailed: 'فشل تسجيل الدخول. حاول مرة أخرى.',
    tagline: 'Claw - تنسيق ذكاء اصطناعي محلي أولاً',
    authenticating: 'جاري المصادقة...',
    emailPlaceholder: 'you@example.com',
  },
  nav: {
    dashboard: 'لوحة التحكم',
    chat: 'المحادثة',
    compareModels: 'مقارنة النماذج',
    consensusMode: 'وضع الإجماع',
    escalationChain: 'سلسلة التصعيد',
    repairLab: 'مختبر الإصلاح',
    decomposeLab: 'مُفكّك المهام',
    bestOfNLab: 'توليد الأفضل من N',
    verifierLab: 'المُدقِّق',
    pipelineLab: 'مختبر الأنابيب',
    costEnsemble: 'المجموعة الموعية بالتكلفة',
    rolePackLab: 'حزمة الأدوار',
    connectors: 'الموصلات',
    models: 'النماذج',
    modelCatalog: 'فهرس النماذج',
    modelLocalFrontier: 'النماذج المتقدمة',
    localModels: 'النماذج المحلية',
    routing: 'التوجيه',
    replayLab: 'مختبر الإعادة',
    recoveryLab: 'محرك الاستعادة',
    adaptiveInsights: 'الرؤى التكيُّفية',
    memory: 'الذاكرة',
    context: 'حزم السياق',
    files: 'الملفات',
    observability: 'الرصد',
    audits: 'سجلات التدقيق',
    logs: 'السجلات',
    admin: 'الإدارة',
    settings: 'الإعدادات',
    workspace: 'مساحة العمل',
    workspaceActions: 'الإجراءات',
    workspaceApprovals: 'الموافقات',
    workspaceSyncHealth: 'صحة المزامنة',
    agent: 'الوكيل',
    agentTerminal: 'الطرفية',
    agentRepos: 'المستودعات',
    agentCapabilities: 'القدرات',
    agentActivity: 'النشاط',
    agentRecipes: 'الوصفات',
    agentMarketplace: 'المتجر',
    agentActivityMemory: 'ذاكرة النشاط',
    discovery: 'اكتشاف النماذج',
    workspaceProviders: 'المزودون',
    workspaceAppConfigs: 'تهيئة التطبيقات',
    workspaceGmail: 'بريد Gmail',
    workspaceJira: 'Jira',
    workspaceSourceControl: 'التحكم بالمصدر',
    workspaceSlack: 'Slack',
    workspaceDocs: 'المستندات',
    workspaceConfluence: 'Confluence',
    workspaceFigma: 'Figma',
    workspaceWorkflows: 'سير العمل',
    researchProviders: 'مزودو البحث',
    researchRuns: 'جلسات البحث',
    research: 'البحث',
    workspaceInbox: 'صندوق الوارد',
    workspaceSemanticSearch: 'البحث الدلالي',
    workspaceDigest: 'الموجز',
    workspaceAutomationPreferences: 'تفضيلات الأتمتة',
    workspaceEmailSignatures: 'تواقيع البريد الإلكتروني',
    workspaceEmailTemplates: 'قوالب البريد الإلكتروني',
    workspaceImplHandoffs: 'تسليمات البرمجة',
    adminAiActionPolicies: 'سياسات إجراءات الذكاء الاصطناعي',
    adminSuggestionRules: 'قواعد الاقتراحات',
    adminWebhookDeliveries: 'تسليمات الويب هوك',
  },
  chat: {
    newThread: 'محادثة جديدة',
    threads: 'المحادثات',
    searchThreads: 'بحث في المحادثات...',
    noThreads: 'لا توجد محادثات بعد',
    noThreadsDesc: 'ابدأ محادثة جديدة للانطلاق',
    sendMessage: 'إرسال الرسالة',
    typeMessage: 'اكتب رسالة...',
    deleteThread: 'حذف المحادثة',
    deleteThreadConfirm: 'هل أنت متأكد من حذف هذه المحادثة؟',
    threadCreated: 'تم إنشاء المحادثة',
    threadCreateFailed: 'فشل إنشاء المحادثة',
    threadDeleted: 'تم حذف المحادثة',
    threadDeleteFailed: 'فشل حذف المحادثة',
    threadUpdateFailed: 'فشل تحديث المحادثة',
    messageSendFailed: 'فشل إرسال الرسالة',
    feedbackFailed: 'فشل حفظ التقييم',
    regenerateFailed: 'فشل إعادة توليد الرسالة',
    aiThinking: 'الذكاء الاصطناعي يفكر...',
    fallbackRetrying: 'إعادة المحاولة بنموذج بديل...',
    providerFailed: 'فشل',
    tryingProvider: 'جار المحاولة',
    allProvidersFailed: 'فشل جميع المزودين في توليد رد',
    imageGeneration: 'توليد الصور',
    generatedImage: 'الصورة المُولَّدة',
    downloadImage: 'تنزيل الصورة',
    fileGeneration: 'توليد الملفات',
    generatingFile: 'جار توليد الملف...',
    fileGenerationFailed: 'فشل توليد الملف',
    downloadFile: 'تنزيل الملف',
    convertingFile: 'جار تحويل الملف',
    providerModel: 'المزود / النموذج',
    pinThread: 'تثبيت المحادثة',
    unpinThread: 'إلغاء التثبيت',
    archiveThread: 'أرشفة المحادثة',
    unarchiveThread: 'إلغاء الأرشفة',
    threadPinned: 'تم تثبيت المحادثة',
    threadUnpinned: 'تم إلغاء تثبيت المحادثة',
    threadArchived: 'تمت أرشفة المحادثة',
    threadUnarchived: 'تم إلغاء أرشفة المحادثة',
    pinFailed: 'فشل تحديث حالة التثبيت',
    archiveFailed: 'فشل تحديث حالة الأرشفة',
    showArchived: 'إظهار المؤرشف',
    hideArchived: 'إخفاء المؤرشف',
    provenance: 'مصدر الرسالة',
    provenanceProvider: 'المزود',
    provenanceModel: 'النموذج',
    provenanceLatency: 'زمن الاستجابة',
    provenanceInputTokens: 'الرموز المدخلة',
    provenanceOutputTokens: 'الرموز الصادرة',
    provenanceEstimatedCost: 'التكلفة التقديرية',
    provenanceRoutingMode: 'وضع التوجيه',
    provenanceFallbackUsed: 'تم استخدام البديل',
    provenanceYes: 'نعم',
    provenanceNo: 'لا',
    globalSearch: 'بحث في المحادثات',
    globalSearchPlaceholder: 'البحث في جميع المحادثات...',
    globalSearchNoResults: 'لا توجد محادثات',
    systemPrompt: 'موجّه النظام',
    systemPromptPlaceholder: 'تعليمات للذكاء الاصطناعي...',
    temperature: 'درجة الحرارة',
    temperatureDescription: 'تتحكم بالعشوائية. أقل = أكثر تركيزاً، أعلى = أكثر إبداعاً.',
    maxTokens: 'الحد الأقصى للرموز',
    maxTokensDescription: 'الحد الأقصى لطول رد الذكاء الاصطناعي.',
    threadSettings: 'إعدادات المحادثة',
    preferredModel: 'النموذج الافتراضي',
    preferredModelDescription: 'النموذج الافتراضي لهذه المحادثة. يمكن تجاوزه لكل رسالة.',
    settingsSaved: 'تم حفظ إعدادات المحادثة',
    helpful: 'مفيد',
    notHelpful: 'غير مفيد',
    feedbackSaved: 'تم حفظ التقييم',
    attachFiles: 'إرفاق ملفات',
    noFiles: 'لم يتم رفع أي ملفات بعد',
    selectedFiles: 'تم إرفاق {count} ملف',
    contextPacks: 'حزم السياق',
    contextPacksDescription: 'اختر حزم السياق لتضمينها في هذه المحادثة.',
    noContextPacks: 'لم يتم إنشاء حزم سياق بعد',
    reRouted: 'أُعيد التوجيه',
    reRoutedFrom: 'أُعيد التوجيه من {provider}/{model}',
    weakResponse: 'تم اكتشاف رد ضعيف',
    qualityScore: 'الجودة: {score}٪',
    judgeReferee: 'المحكّم والمُدقِّق',
    judgeRefereeDescription: 'تفعيل النقد والتحقق المدعوم بالذكاء الاصطناعي للردود لدقة أعلى.',
    judgeVerified: 'تم التحقق',
    judgeRevised: 'تمت المراجعة',
    judgeEscalated: 'تم التصعيد',
    judgeCriticFeedback: 'ملاحظات الناقد',
    judgeReasoning: 'تعليل المحكّم',
    judgeEvaluating: 'جار التحقق من الرد...',
    judgeModelLabel: 'نموذج المحكّم',
    judgeModelAuto: 'تلقائي (qwen3:1.7b)',
    judgeModelDescription: 'تجاوز النموذج المحلي المستخدم للحكم النهائي',
    judgeOpenReview: 'عرض رد المحكّم',
    judgeReviewTitle: 'مراجعة المحكّم',
    judgeReviewDescription: 'افحص الإجابة الأصلية وقرار المحكّم والرد الناتج عنه.',
    judgeDecisionLabel: 'القرار',
    judgeConfidenceLabel: 'الثقة',
    judgeSummary: 'ملخص المحكّم',
    judgeResponse: 'رد المحكّم',
    judgeOriginalAnswer: 'الإجابة الأصلية',
    judgeRevisedAnswer: 'الإجابة المراجعة',
    judgeEscalatedAnswer: 'الإجابة المصعَّدة',
    judgeExecutionModel: 'نموذج التنفيذ',
    judgeJudgeModel: 'نموذج المحكّم',
    judgeCriticModel: 'نموذج الناقد',
    judgeCriticScore: 'درجة الناقد',
    judgeJudgeLatency: 'زمن استجابة المحكّم',
    judgeTotalLatency: 'إجمالي زمن المراجعة',
    judgeRecommendedChanges: 'التعديلات الموصى بها',
    judgeNoCriticFeedback: 'لم تُسجَّل ملاحظات ناقد لهذه المراجعة.',
    judgeResponseTypeSummary: 'ملخص',
    judgeResponseTypeRevisedAnswer: 'إجابة مراجعة',
    judgeResponseTypeEscalatedAnswer: 'إجابة مصعَّدة',
    judgeResponseTypeVerificationNote: 'ملاحظة تحقق',
    qualityThreshold: 'عتبة الجودة',
    qualityThresholdDescription:
      'الحد الأدنى لدرجة الجودة قبل إعادة التوجيه (0 = قبول الكل، 1 = صارم جداً)',
    maxReRouteAttempts: 'أقصى محاولات إعادة التوجيه',
    maxReRouteAttemptsDescription: 'العدد الأقصى لمحاولات إعادة التوجيه لكل رسالة (0-5)',
    reRouteReasonShort: 'قصير جداً',
    reRouteReasonRefusal: 'تم اكتشاف رفض',
    reRouteReasonRepetition: 'تكرار مفرط',
    reRouteReasonEcho: 'صدى للموجّه',
    reRouteReasonLowWords: 'عدد كلمات قليل',
    backToThreads: 'العودة إلى المحادثات',
    loadingThread: 'جار تحميل المحادثة...',
    selectOrStartTitle: 'اختر محادثة أو ابدأ محادثة جديدة',
    selectOrStartDesc:
      'اختر محادثة موجودة من الشريط الجانبي أو أنشئ واحدة جديدة للتفاعل مع نماذج الذكاء الاصطناعي المُهيَّأة.',
    untitled: 'بدون عنوان',
    attachedFile: 'الملف المرفق',
    beginningOfConversation: 'بداية المحادثة',
    composerPlaceholder: 'اكتب رسالتك...',
    currentAiProgress: 'تقدم الذكاء الاصطناعي الحالي',
    fileGenerationCancelled: 'تم إلغاء إنشاء الملف',
    fileGenerationFailedRetry: 'فشل إنشاء الملف. هل تريد إعادة المحاولة؟',
    generationCancelled: 'تم إلغاء الإنشاء',
    imageGenerationFailedRetry: 'فشل إنشاء الصورة. هل تريد إعادة المحاولة؟',
    judge: 'مُقيِّم',
    live: 'مباشر',
    loadingImage: 'جاري تحميل الصورة...',
    loadingMessages: 'جاري تحميل الرسائل...',
    loadingMoreThreads: 'جاري تحميل المزيد من المحادثات...',
    loadingOlderMessages: 'جاري تحميل الرسائل الأقدم...',
    loadingThreads: 'جاري تحميل المحادثات...',
    manyMemories: '{count} ذاكرة',
    modelThinking: 'النموذج يفكر...',
    noMatchingThreads: 'لا توجد محادثات مطابقة',
    noMessagesYet: 'لا توجد رسائل بعد',
    noVisibleAnswer: 'لا توجد إجابة مرئية',
    oneMemory: 'ذاكرة واحدة',
    open: 'فتح',
    preparingDownload: 'جاري تحضير التنزيل...',
    regenerate: 'إعادة الإنشاء',
    searching: 'جاري البحث...',
    threadActions: 'إجراءات المحادثة',
    toggleProvenance: 'تبديل المصدر',
    tryAnotherModel: 'جرّب نموذجًا آخر',
    tryingFallback: 'جاري تجربة البديل...',
    verifyingWith: 'جاري التحقق باستخدام {model}',
    visibleAiProgress: 'تقدم الذكاء الاصطناعي المرئي',
    useMemoryLabel: 'استخدام الذاكرة في هذه المحادثة',
    useMemoryDescription: 'عند الإيقاف، لن يتم إدخال أي ذكريات في الموجه.',
    useContextLabel: 'استخدام حزم السياق في هذه المحادثة',
    useContextDescription: 'عند الإيقاف، يتم تجاهل الحزم المرفقة.',
  },
  receipt: {
    openLabel: 'إظهار ما استخدمه الذكاء الاصطناعي',
    contextUsed: 'السياق المستخدم',
    dialogTitle: 'لماذا هذه الإجابة',
    dialogDescription: 'الذكريات وعناصر الحزم التي أثرت على هذا الرد.',
    loading: 'جارٍ تحميل الإيصال...',
    notAvailable: 'لا يتوفر إيصال لهذه الرسالة.',
    memoriesCount: '{value} ذكريات',
    packItemsCount: '{value} عناصر حزمة',
    tokenBudget: 'الرموز: {used} / {total}',
    memoriesHeading: 'الذكريات',
    packItemsHeading: 'عناصر الحزمة',
    warningsHeading: 'تحذيرات',
    scoreLabel: 'النتيجة {value}',
    pinnedBadge: 'مثبت',
    redactedPlaceholder: '(مخفي — تم إخفاء المحتوى)',
  },
  preview: {
    openLabel: 'معاينة السياق',
    dialogTitle: 'ما الذي سيراه الذكاء الاصطناعي',
    dialogDescription: 'تشغيل تجريبي لاسترجاع الذاكرة وحزم السياق للمسودة الحالية.',
    loading: 'جارٍ إنشاء المعاينة...',
    failed: 'فشلت المعاينة؛ سيستمر الإرسال التالي في العمل.',
    empty: 'لن يتم إدخال أي سياق لهذه المسودة.',
    memoryCount: '{value} ذكريات',
    packCount: '{value} عناصر حزمة',
    tokenBudget: 'الرموز: {used} / {total}',
    memoriesHeading: 'الذكريات',
    packItemsHeading: 'عناصر الحزمة',
    redactedPlaceholder: '(مخفي — تم إخفاء المحتوى)',
  },
  connectors: {
    title: 'الموصلات',
    description: 'إدارة اتصالات مزودي الذكاء الاصطناعي',
    createConnector: 'إنشاء موصل',
    editConnector: 'تعديل الموصل',
    deleteConnector: 'حذف الموصل',
    testConnection: 'اختبار الاتصال',
    testingConnection: 'جار الاختبار...',
    syncModels: 'مزامنة النماذج',
    name: 'الاسم',
    nameHelp: 'اسم واضح لتمييز هذا الموصل في لوحة التحكم.',
    provider: 'المزود',
    providerHelp: 'مزود الذكاء الاصطناعي الذي سيتصل به هذا الموصل.',
    authType: 'نوع المصادقة',
    authTypeHelp: 'كيفية المصادقة مع المزود. يستخدم معظم المزودين مفتاح API.',
    apiKey: 'مفتاح API',
    apiKeyHelp: 'مفتاح API السري من المزود. سيتم تشفيره عند التخزين.',
    baseUrl: 'الرابط الأساسي',
    baseUrlHelp: 'تجاوز نقطة نهاية API الافتراضية. اتركه فارغاً لاستخدام الافتراضي.',
    region: 'المنطقة',
    regionHelp: 'منطقة AWS التي تم نشر نقطة Bedrock فيها.',
    status: 'الحالة',
    healthy: 'سليم',
    degraded: 'متدهور',
    error: 'خطأ',
    noConnectors: 'لا توجد موصلات مُهيَّأة',
    noConnectorsDesc: 'أضف موصلاً لبدء استخدام مزودي الذكاء الاصطناعي',
    connectorCreated: 'تم إنشاء الموصل',
    connectorCreateFailed: 'فشل إنشاء الموصل',
    connectorUpdated: 'تم تحديث الموصل',
    connectorUpdateFailed: 'فشل تحديث الموصل',
    connectorDeleted: 'تم حذف الموصل',
    connectorDeleteFailed: 'فشل حذف الموصل',
    testSuccessful: 'نجح اختبار الاتصال',
    testFailed: 'فشل اختبار الاتصال',
    modelsSynced: 'تمت مزامنة النماذج بنجاح',
    syncFailed: 'فشل مزامنة النماذج',
    testBeforeCreate: 'احفظ الموصل أولاً، ثم اختبره من قائمة الموصلات.',
    loadingConnectors: 'جار تحميل الموصلات...',
    loadingConnector: 'جار تحميل الموصل...',
    addConnector: 'إضافة موصل',
    loadFailed: 'فشل تحميل الموصلات.',
    connectorDetail: 'تفاصيل الموصل',
    connectorNotFound: 'الموصل غير موجود',
    backToConnectors: 'العودة إلى الموصلات',
    syncing: 'جار المزامنة...',
    enabled: 'مُفعَّل',
    disabled: 'مُعطَّل',
    configuration: 'التهيئة',
    healthHistory: 'سجل الصحة',
    healthHistoryDesc: 'سيتوفر تتبع سجل الصحة في تحديث مستقبلي.',
    models: 'النماذج',
    oneModel: '{count} نموذج',
    manyModels: '{count} نموذج',
    updatedAt: 'تم التحديث في {date}',
    addConnectorDesc: 'إضافة موصّل جديد لمزوّد الذكاء الاصطناعي',
    apiKeyPlaceholder: 'أدخل مفتاح API',
    apiKeyPlaceholderEdit: 'اترك الحقل فارغًا للاحتفاظ بالقيمة الحالية',
    baseUrlOptional: 'عنوان URL الأساسي (اختياري)',
    baseUrlPlaceholder: 'https://api.example.com',
    defaultLabel: 'افتراضي',
    editConnectorDesc: 'تحديث إعدادات الموصّل',
    namePlaceholder: 'مثال: OpenAI Production',
    regionPlaceholder: 'مثال: us-east-1',
    saveFirstThenTest: 'احفظ الموصّل أولًا ثم اختبره',
    selectProvider: 'اختر مزوّدًا',
  },
  memory: {
    title: 'الذاكرة',
    description: 'إدارة سجلات ذاكرة الذكاء الاصطناعي',
    createMemory: 'إنشاء ذاكرة',
    editMemory: 'تعديل الذاكرة',
    deleteMemory: 'حذف الذاكرة',
    type: 'النوع',
    content: 'المحتوى',
    enabled: 'مُفعَّلة',
    disabled: 'مُعطَّلة',
    noMemories: 'لا توجد سجلات ذاكرة',
    noMemoriesDesc: 'أنشئ سجلات ذاكرة لمنح الذكاء الاصطناعي سياقاً',
    memoryCreated: 'تم إنشاء الذاكرة',
    memoryCreateFailed: 'فشل إنشاء الذاكرة',
    memoryUpdated: 'تم تحديث الذاكرة',
    memoryUpdateFailed: 'فشل تحديث الذاكرة',
    memoryDeleted: 'تم حذف الذاكرة',
    memoryDeleteFailed: 'فشل حذف الذاكرة',
    memoryToggled: 'تم تبديل حالة الذاكرة',
    memoryToggleFailed: 'فشل تبديل حالة الذاكرة',
    loadFailed: 'فشل تحميل سجلات الذاكرة.',
    loadingMemories: 'جار تحميل سجلات الذاكرة...',
    addMemory: 'إضافة ذاكرة',
    contentPlaceholder: 'أدخل محتوى الذاكرة...',
    createMemoryDesc: 'إنشاء إدخال ذاكرة جديد',
    editMemoryDesc: 'تحديث تفاصيل الذاكرة',
    source: 'المصدر',
    typeSummary: 'ملخص',
    typeFact: 'حقيقة',
    typePreference: 'تفضيل',
    typeInstruction: 'تعليمات',
    filterAllTypes: 'جميع الأنواع',
    tabSaved: 'محفوظة',
    tabSuggestions: 'الاقتراحات',
    tabAudit: 'السجل',
    searchPlaceholder: 'ابحث في الذاكرة...',
    filterAllScopes: 'كل النطاقات',
    filterAllSources: 'كل المصادر',
    filterAllSensitivities: 'كل مستويات الحساسية',
    scopeUser: 'شخصي',
    scopeThread: 'هذه المحادثة',
    scopeWorkspace: 'مساحة العمل',
    scopeProject: 'المشروع',
    sourceUserManual: 'تم الإنشاء يدويًا',
    sourceAiExtracted: 'مستخرج من المحادثة',
    sourceAutomation: 'تم تعلمه آليًا',
    sourceImported: 'مستورد',
    sensitivityNormal: 'عادية',
    sensitivitySensitive: 'حساسة',
    sensitivityRedacted: 'مخفية',
    loadingSuggestions: 'جارٍ تحميل الاقتراحات...',
    loadingAudit: 'جارٍ تحميل السجل...',
    noSuggestions: 'لا توجد اقتراحات حاليًا',
    noAudit: 'لا توجد سجلات بعد',
    auditNoMemoryId: '(تم حذف الذاكرة)',
    approveSuggestion: 'اعتماد',
    rejectSuggestion: 'رفض',
    rejectAndSuppress: 'رفض وكتم المشابهات',
    suggestionConfidence: 'الثقة: {value}%',
    suggestionReason: 'السبب: {value}',
  },
  files: {
    title: 'الملفات',
    description: 'رفع وإدارة الملفات لسياق الذكاء الاصطناعي',
    uploadFile: 'رفع ملف',
    deleteFile: 'حذف الملف',
    dragDrop: 'اسحب وأفلت الملفات هنا، أو انقر للاستعراض',
    maxSize: 'الحد الأقصى لحجم الملف: 50 ميغابايت',
    noFiles: 'لم يتم رفع ملفات',
    noFilesDesc: 'ارفع ملفات لاستخدامها كسياق للذكاء الاصطناعي',
    fileUploaded: 'تم رفع الملف',
    fileUploadFailed: 'فشل رفع الملف',
    fileDeleted: 'تم حذف الملف',
    fileDeleteFailed: 'فشل حذف الملف',
    uploadFailed: 'فشل رفع الملف',
    loadFailed: 'فشل تحميل الملفات.',
    loadingFiles: 'جار تحميل الملفات...',
    allTypesAccepted: 'جميع أنواع الملفات مقبولة',
    chunkIndex: 'الجزء رقم {index}',
    chunksTitle: 'أجزاء الملف',
    dropFileHere: 'أفلِت الملف هنا',
    dropOrClick: 'أفلِت الملف هنا أو انقر للتصفح',
    fileFallback: 'ملف',
    noChunks: 'لا توجد أجزاء متاحة',
    uploading: 'جاري الرفع...',
    uploadNewFile: 'رفع ملف جديد',
    viewChunks: 'عرض الأجزاء',
    statusPending: 'قيد الانتظار',
    statusProcessing: 'قيد المعالجة',
    statusCompleted: 'مكتمل',
    statusFailed: 'فشل',
  },
  context: {
    title: 'حزم السياق',
    description: 'تنظيم السياق لمحادثات الذكاء الاصطناعي',
    createPack: 'إنشاء حزمة سياق',
    addItem: 'إضافة عنصر',
    name: 'الاسم',
    scope: 'النطاق',
    noContextPacks: 'لا توجد حزم سياق',
    noContextPacksDesc: 'أنشئ حزم سياق لتنظيم سياق الذكاء الاصطناعي',
    packCreated: 'تم إنشاء حزمة السياق',
    packCreateFailed: 'فشل إنشاء حزمة السياق',
    packUpdated: 'تم تحديث حزمة السياق',
    packUpdateFailed: 'فشل تحديث حزمة السياق',
    packDeleted: 'تم حذف حزمة السياق',
    packDeleteFailed: 'فشل حذف حزمة السياق',
    itemAdded: 'تمت إضافة العنصر إلى الحزمة',
    itemAddFailed: 'فشل إضافة العنصر',
    itemUpdated: 'تم تحديث عنصر الحزمة',
    itemUpdateFailed: 'فشل تحديث العنصر',
    itemRemoved: 'تمت إزالة العنصر من الحزمة',
    itemRemoveFailed: 'فشل إزالة العنصر',
    loadFailed: 'فشل تحميل حزم السياق.',
    contextPack: 'حزمة السياق',
    packDetailsDesc: 'تفاصيل الحزمة وعناصرها',
    backToPacks: 'العودة إلى الحزم',
    deletePack: 'حذف الحزمة',
    deleting: 'جار الحذف...',
    loadingPackDetails: 'جار تحميل تفاصيل الحزمة...',
    noItems: 'لا توجد عناصر في هذه الحزمة',
    noItemsDesc: 'أضف ملاحظات نصية أو تعليمات أو مراجع ملفات إلى حزمة السياق هذه.',
    loadingContextPacks: 'جار تحميل حزم السياق...',
    addItemDesc: 'أضف ملاحظة نصية أو تعليمات أو مرجع ملف إلى حزمة السياق هذه.',
    adding: 'جار الإضافة...',
    content: 'المحتوى',
    contentPlaceholder: 'أدخل المحتوى...',
    fileId: 'معرّف الملف',
    fileIdPlaceholder: 'أدخل معرّف الملف',
    itemType: 'النوع',
    selectType: 'اختر نوعاً',
    createPackDesc: 'إنشاء حزمة سياق جديدة',
    creating: 'جاري الإنشاء...',
    descriptionOptional: 'الوصف (اختياري)',
    descriptionPlaceholder: 'صِف الغرض من هذه الحزمة',
    namePlaceholder: 'مثال: سياق مشروع Alpha',
    scopeOptional: 'النطاق (اختياري)',
    scopePlaceholder: 'مثال: عام، مشروع، مستخدم',
    typeNote: 'ملاحظة',
    typeInstruction: 'تعليمات',
    typeFileReference: 'مرجع ملف',
  },
  routing: {
    title: 'سياسات التوجيه',
    description: 'تهيئة توجيه نماذج الذكاء الاصطناعي',
    createPolicy: 'إنشاء سياسة',
    editPolicy: 'تعديل السياسة',
    deletePolicy: 'حذف السياسة',
    name: 'الاسم',
    mode: 'وضع التوجيه',
    priority: 'الأولوية',
    active: 'نشط',
    noPolicies: 'لا توجد سياسات توجيه',
    noPoliciesDesc: 'أنشئ سياسات توجيه للتحكم في اختيار النموذج',
    policyCreated: 'تم إنشاء السياسة',
    policyCreateFailed: 'فشل إنشاء السياسة',
    policyUpdated: 'تم تحديث السياسة',
    policyUpdateFailed: 'فشل تحديث السياسة',
    policyDeleted: 'تم حذف السياسة',
    policyDeleteFailed: 'فشل حذف السياسة',
    status: 'الحالة',
    inactive: 'غير نشط',
    activate: 'تفعيل',
    deactivate: 'إلغاء التفعيل',
    loadFailed: 'فشل تحميل إعدادات التوجيه.',
    defaultRoutingMode: 'وضع التوجيه الافتراضي',
    defaultRoutingModeDesc: 'اختر كيف يوزّع المُوجِّه المحلي الطلبات على النماذج',
    defaultMode: 'الوضع الافتراضي',
    fallbackSettings: 'إعدادات الاحتياطي',
    fallbackSettingsDesc: 'تهيئة سلوك إعادة المحاولة والمهلة',
    maxRetries: 'أقصى محاولات الإعادة',
    timeoutMs: 'المهلة (ملي ثانية)',
    loadingPolicies: 'جار تحميل السياسات...',
    noPoliciesConfigured: 'لا توجد سياسات توجيه مُهيَّأة.',
    complexityLabel: 'التعقيد',
    complexitySimple: 'بسيط',
    complexityMedium: 'متوسط',
    complexityComplex: 'معقّد',
    complexityExpert: 'خبير',
    routingExplanation: 'شرح التوجيه',
    explanationSummary: 'ملخص القرار',
    explanationFactors: 'عوامل القرار',
    routingDurationMs: 'مدة التوجيه',
    modalityLabel: 'النمط المكتشف',
    modalityText: 'نص',
    modalityCode: 'برمجة',
    modalityImageInput: 'فهم الصور',
    modalityImageOutput: 'توليد الصور',
    modalityAudioInput: 'صوت / كلام',
    modalityVideoInput: 'تحليل الفيديو',
    modalityPdfInput: 'مستند / PDF',
    modalityWebSearch: 'بحث الويب',
    modalityToolCalling: 'استدعاء الأدوات',
    modalityStructuredOutput: 'إخراج مُهيكَل',
    modalityOcr: 'التعرف الضوئي / استخراج النص',
    modalityReasoning: 'استدلال عميق',
    namePlaceholder: 'سياسة التوجيه الخاصة بي',
    selectModePlaceholder: 'اختر وضع التوجيه',
    editPolicyDesc: 'تحديث تهيئة سياسة التوجيه.',
    createPolicyDesc: 'إنشاء سياسة توجيه جديدة للتحكم في توزيع الطلبات.',
    weightsJsonLabel: 'أوزان التقييم (JSON، اختياري)',
    weightsJsonPlaceholder: '{"capability": 0.2, "domain": 0.1, ...}',
    weightsJsonHelp:
      'اختياري. يتجاوز الأوزان الافتراضية للوضع. يجب أن يشمل الأبعاد الـ14 جميعها وأن يكون مجموعها 1.0.',
    weightsJsonError: {
      invalidJson: 'JSON الأوزان غير صالح.',
      notAnObject: 'يجب أن تكون الأوزان كائن JSON.',
      missingDimension: 'يجب أن يتضمن JSON الأوزان كل بُعد كرقم.',
      sumNotOne: 'يجب أن يكون مجموع الأوزان 1.0 (±0.001).',
    },
    models: {
      title: 'سجل النماذج',
      description:
        'تصفّح كل النماذج التي يعرفها الموجّه. تجاوز التكلفة ودورة الحياة وأعلام التوجيه.',
      updateSucceeded: 'تم تحديث النموذج.',
      updateFailed: 'تعذّر تحديث النموذج.',
      overrideCleared: 'تم مسح التجاوز.',
      overrideClearFailed: 'تعذّر مسح التجاوز.',
      softDeleteSucceeded: 'تم وضع علامة "محذوف" على النموذج.',
      softDeleteFailed: 'تعذّر إزالة النموذج.',
      columnProvider: 'المزوّد',
      columnModelKey: 'النموذج',
      columnLifecycle: 'دورة الحياة',
      columnQuality: 'الجودة',
      columnCost: 'التكلفة',
      columnLatency: 'زمن الاستجابة',
      filterByProvider: 'تصفية حسب المزوّد',
      filterByLifecycle: 'تصفية حسب دورة الحياة',
    },
  },
  models: {
    title: 'النماذج',
    description: 'عرض جميع نماذج الذكاء الاصطناعي المتاحة',
    localTitle: 'النماذج المحلية',
    localDescription: 'إدارة نماذج الذكاء الاصطناعي المثبتة محلياً',
    pullModel: 'تنزيل النموذج',
    assignRole: 'تعيين دور',
    noModels: 'لا توجد نماذج متاحة',
    noModelsDesc: 'اربط مزوداً أو نزّل نماذج محلية',
    modelPullStarted: 'بدأ تنزيل النموذج',
    modelPullFailed: 'فشل تنزيل النموذج',
    roleAssigned: 'تم تعيين الدور',
    roleAssignFailed: 'فشل تعيين الدور',
    loadFailed: 'فشل تحميل النماذج.',
    loadingModels: 'جار تحميل النماذج...',
    allProviders: 'جميع المزودين',
    allLifecycle: 'جميع دورات الحياة',
    noModelsMatch: 'لا توجد نماذج تطابق عوامل التصفية الحالية.',
    localLoadFailed: 'فشل تحميل النماذج المحلية.',
    runtimeHealth: 'صحة وقت التشغيل',
    runtimeHealthDesc: 'الحالة الحالية لوقت تشغيل النموذج المحلي',
    pullModelDesc: 'تنزيل نموذج جديد من السجل',
    modelName: 'اسم النموذج',
    runtime: 'وقت التشغيل',
    pulling: 'جار التنزيل...',
    pull: 'تنزيل',
    installedModels: 'النماذج المثبتة',
    loadingLocalModels: 'جار تحميل النماذج المحلية...',
    noLocalModels: 'لا توجد نماذج محلية مثبتة',
    noLocalModelsDesc: 'استخدم النموذج أعلاه لتنزيل نموذج والبدء في الاستدلال المحلي.',
    colModel: 'النموذج',
    colRuntime: 'وقت التشغيل',
    colSize: 'الحجم',
    colFamily: 'العائلة',
    colParameters: 'المعاملات',
    colRoles: 'الأدوار',
    noneRole: 'لا شيء',
    modelNamePlaceholder: 'llama3:8b',
    capabilities: 'القدرات',
    context: 'السياق',
    lifecycle: 'دورة الحياة',
    noSyncedModels: 'لا توجد نماذج متزامنة',
    streaming: 'البث',
    tools: 'الأدوات',
    vision: 'الرؤية',
  },
  observability: {
    title: 'الرصد',
    description: 'مراقبة استخدام الذكاء الاصطناعي وأدائه',
    totalRequests: 'إجمالي الطلبات',
    totalCost: 'إجمالي التكلفة',
    avgLatency: 'متوسط زمن الاستجابة',
    activeModels: 'النماذج النشطة',
    clientLogs: 'سجلات العميل',
    serverLogs: 'سجلات الخادم',
    auditTrail: 'مسار التدقيق',
    loadingData: 'جار تحميل بيانات الرصد...',
    failedToLoad: 'فشل تحميل البيانات',
    failedToLoadDesc: 'تعذّر جلب بيانات الرصد. حاول لاحقاً.',
    noDataYet: 'لا توجد بيانات رصد بعد',
    noDataDesc: 'ستظهر هنا مقاييس الأداء بمجرد تدفق الطلبات عبر طبقة التنسيق.',
    fullDescription: 'مراقبة صحة النظام وأزمنة استجابة الطلبات وأداء النماذج',
    totalRequestsLabel: 'إجمالي الطلبات',
    acrossProviders: 'عبر جميع المزودين',
    estimatedCost: 'التكلفة التقديرية',
    estimatedCostLabel: 'التكلفة التقديرية',
    recentFailures: 'الإخفاقات الأخيرة',
    highCriticalSeverity: 'أحداث بشدّة عالية وحرجة',
    providerUsage: 'استخدام المزودين',
    modelUsage: 'استخدام النماذج',
    latencyBreakdown: 'تفصيل زمن الاستجابة',
    costSummary: 'ملخص التكلفة',
    avg: 'المتوسط',
    p50Median: 'P50 (الوسيط)',
    p95: 'P95',
    totalTokens: 'إجمالي الرموز',
    requests: 'طلبات',
    tokens: 'رموز',
    noData: 'لا توجد بيانات',
  },
  audits: {
    title: 'سجلات التدقيق',
    description: 'عرض سجلات نشاط النظام',
    action: 'الإجراء',
    severity: 'الشدّة',
    entity: 'الكيان',
    timestamp: 'الطابع الزمني',
    noAudits: 'لا توجد سجلات تدقيق',
    noAuditsDesc: 'سيظهر النشاط هنا كلما استخدمت المنصة',
    actor: 'المُنفِّذ',
    details: 'التفاصيل',
    loadingAudits: 'جار تحميل سجلات التدقيق...',
    loadFailed: 'فشل تحميل التدقيقات',
    loadFailedDesc: 'تعذّر جلب سجلات التدقيق. حاول لاحقاً.',
    noMatchingAudits: 'لا توجد سجلات تدقيق تطابق عوامل التصفية.',
    allActions: 'جميع الإجراءات',
    allSeverities: 'جميع مستويات الشدّة',
    searchPlaceholder: 'بحث...',
    ipAddress: 'عنوان IP',
  },
  admin: {
    title: 'الإدارة',
    description: 'إدارة المستخدمين وإعدادات النظام',
    users: 'المستخدمون',
    createUser: 'إنشاء مستخدم',
    changeRole: 'تغيير الدور',
    deactivate: 'إلغاء التفعيل',
    reactivate: 'إعادة التفعيل',
    noUsers: 'لم يُعثر على مستخدمين',
    checkingServices: 'جار فحص الخدمات...',
    healthUnreachable: 'تعذّر الوصول إلى خدمة الصحة.',
    loadingUsers: 'جار تحميل المستخدمين...',
    loadUsersFailed: 'فشل تحميل المستخدمين',
    loadUsersFailedDesc: 'تعذّر جلب قائمة المستخدمين. حاول لاحقاً.',
    userRoleUpdated: 'تم تحديث دور المستخدم',
    userRoleUpdateFailed: 'فشل تحديث دور المستخدم',
    userDeactivated: 'تم إلغاء تفعيل المستخدم',
    userDeactivateFailed: 'فشل إلغاء تفعيل المستخدم',
    userStats: 'إحصاءات المستخدمين',
    userStatsDesc: 'نظرة عامة على مستخدمي المنصة',
    totalUsers: 'إجمالي المستخدمين',
    activeUsers: 'المستخدمون النشطون',
    platformHealth: 'صحة المنصة',
    systemStatusOverview: 'نظرة عامة على حالة النظام',
    userManagement: 'إدارة المستخدمين',
    colUsername: 'اسم المستخدم',
    colEmail: 'البريد الإلكتروني',
    colRole: 'الدور',
    colStatus: 'الحالة',
    colJoined: 'تاريخ الانضمام',
    colActions: 'الإجراءات',
    roleAdmin: 'مشرف',
    roleOperator: 'مُشغِّل',
    roleViewer: 'مُشاهد',
  },
  settings: {
    title: 'الإعدادات',
    description: 'إدارة إعدادات حسابك',
    profile: 'الملف الشخصي',
    profileDescription: 'بياناتك الشخصية. هذه الحقول للقراءة فقط.',
    username: 'اسم المستخدم',
    email: 'البريد الإلكتروني',
    emailReadOnly: 'اتصل بالمشرف لتغيير بريدك الإلكتروني.',
    role: 'الدور',
    selectLanguage: 'اختر اللغة',
    preferences: 'التفضيلات',
    language: 'اللغة',
    languageDescription: 'اختر لغة العرض المفضلة لديك',
    appearance: 'المظهر',
    appearanceDescription: 'اختر شكل التطبيق',
    system: 'النظام',
    light: 'فاتح',
    dark: 'داكن',
    theme: 'السمة',
    changePassword: 'تغيير كلمة المرور',
    currentPassword: 'كلمة المرور الحالية',
    newPassword: 'كلمة المرور الجديدة',
    confirmPassword: 'تأكيد كلمة المرور',
    passwordChanged: 'تم تغيير كلمة المرور بنجاح',
    passwordChangeFailed: 'فشل تغيير كلمة المرور',
    passwordRequirements: 'يجب أن تحتوي كلمة المرور على 8 أحرف على الأقل مع حروف كبيرة وصغيرة ورقم',
    preferencesUpdated: 'تم تحديث التفضيلات بنجاح',
    preferencesUpdateFailed: 'فشل تحديث التفضيلات',
    devices: {
      title: 'الأجهزة',
      description: 'إدارة وكلاء سطح المكتب المرتبطين بحسابك.',
      emptyTitle: 'لا توجد أجهزة مرتبطة',
      emptyBody: 'شغّل `claw-agent login` على جهازك لإقران جهاز.',
      revoke: 'إلغاء الوصول',
      rename: 'إعادة تسمية',
      scopesHeading: 'الصلاحيات',
      revokedBanner: 'تم إلغاء الوصول لهذا الجهاز',
    },
    langEnglish: 'الإنجليزية',
    langArabic: 'العربية',
    langFrench: 'الفرنسية',
    langItalian: 'الإيطالية',
    langGerman: 'الألمانية',
    langSpanish: 'الإسبانية',
    langRussian: 'الروسية',
    langPortuguese: 'البرتغالية',
    langHindi: 'الهندية',
    appearanceSystem: 'النظام',
    appearanceLight: 'فاتح',
    appearanceDark: 'داكن',
  },
  dashboard: {
    title: 'لوحة التحكم',
    description: 'نظرة عامة على منصة الذكاء الاصطناعي',
    quickActions: 'إجراءات سريعة',
    recentActivity: 'النشاط الأخير',
    totalThreads: 'إجمالي المحادثات',
    activeConnectors: 'الموصلات النشطة',
    localModels: 'النماذج المحلية',
    systemHealth: 'صحة النظام',
    startNewChat: 'بدء محادثة جديدة',
    addConnector: 'إضافة موصل',
    configureRouting: 'تهيئة التوجيه',
    serviceStatus: 'حالة الخدمة',
    checkingHealth: 'جار فحص صحة الخدمات...',
    healthUnreachable: 'تعذّر الوصول إلى مُجمِّع الصحة. تأكد من تشغيل خدمة الصحة.',
    servicesOperational: '{up} من {total} خدمة تعمل',
    responseTimeMs: '{ms} مل.ث',
    unreachable: 'غير قابل للوصول',
    newChatLabel: 'محادثة جديدة',
    newChatDesc: 'ابدأ محادثة جديدة',
    manageConnectorsLabel: 'إدارة الموصلات',
    manageConnectorsDesc: 'قم بتهيئة موصلات مزود الذكاء الاصطناعي',
    routingSettingsLabel: 'إعدادات التوجيه',
    routingSettingsDesc: 'قم بتهيئة طريقة توجيه الطلبات',
  },
  catalog: {
    title: 'فهرس النماذج',
    description: 'استعرض وحمّل نماذج الذكاء الاصطناعي',
    searchPlaceholder: 'بحث في النماذج...',
    allCategories: 'الكل',
    coding: 'البرمجة',
    fileGeneration: 'توليد الملفات',
    imageGeneration: 'توليد الصور',
    routing: 'التوجيه',
    reasoning: 'الاستدلال',
    thinking: 'التفكير والبحث',
    download: 'تنزيل',
    downloading: 'جار التنزيل...',
    installed: 'مثبت',
    failed: 'فشل',
    unavailable: 'غير متوفر',
    cloudOnly: 'سحابي فقط',
    cancel: 'إلغاء',
    recommended: 'مُوصى به',
    noModels: 'لم يُعثر على نماذج',
    activeDownloads: 'التنزيلات النشطة',
    parameterCount: 'المعاملات',
    modelSize: 'الحجم',
    capabilities: 'القدرات',
    models: 'نماذج',
    scrollForMore: 'مرّر لعرض المزيد',
    allLoaded: 'تم تحميل جميع النماذج',
    searchBrowserHelpers: 'أدوات مساعدة للبحث/المتصفح',
    searchBrowserScoreLabel: 'مُساعد',
    searchBrowserScoreTooltip:
      'مدى ملاءمة النموذج لأعمال البحث والتصفح (درجة محسوبة من البيانات الوصفية، 0.00–1.00)',
    cancelDownloadFailed: 'فشل إلغاء التنزيل',
    downloadCancelled: 'تم إلغاء التنزيل',
    downloadStarted: 'بدأ التنزيل',
    downloadStartFailed: 'فشل بدء التنزيل',
    modelRemoved: 'تمت إزالة النموذج',
    modelRemoveFailed: 'فشل إزالة النموذج',
  },
  replay: {
    title: 'مختبر إعادة التوجيه',
    description: 'أعد تشغيل قرارات التوجيه التاريخية مقابل المُوجِّه الحالي وقارن النتائج',
    runReplay: 'تشغيل الإعادة',
    running: 'جار تشغيل الإعادة...',
    totalReplayed: 'إجمالي المُعاد تشغيلها',
    changed: 'تم التغيير',
    unchanged: 'دون تغيير',
    oldRoute: 'المسار الأصلي',
    newRoute: 'المسار الجديد',
    improvement: 'التحسن',
    noResults: 'لا توجد نتائج إعادة بعد',
    confidenceOld: 'متوسط الثقة (القديم)',
    confidenceNew: 'متوسط الثقة (الجديد)',
    replayComplete: 'اكتملت إعادة التوجيه',
    replayFailed: 'فشل تشغيل إعادة التوجيه',
    saveRun: 'حفظ التشغيل',
    runName: 'اسم التشغيل',
    runNamePlaceholder: 'مثال: baseline-2026-04',
    threadIdFilter: 'معرّف المحادثة',
    threadIdPlaceholder: 'تصفية حسب المحادثة...',
    startDate: 'تاريخ البداية',
    endDate: 'تاريخ النهاية',
    suspicious: 'مشبوه',
    avgImprovement: 'متوسط التحسن',
    needsReview: 'يحتاج مراجعة',
    noSuspiciousCases: 'لا توجد حالات مشبوهة',
    noSuspiciousCasesDesc: 'جميع نتائج الإعادة تبدو سليمة',
    confirmedRegression: 'تراجع مُؤكَّد',
    markConfirmedRegression: 'وضع علامة تراجع',
    caseReviewed: 'تمت مراجعة الحالة بنجاح',
    caseReviewFailed: 'فشل مراجعة الحالة',
    copyBundle: 'نسخ حزمة التصدير',
    bundleCopied: 'تم نسخ حزمة التصدير إلى الحافظة',
    exportFailed: 'فشل تصدير الحزمة',
    runsHistory: 'سجل التشغيلات',
    noRunsHistory: 'لا توجد تشغيلات محفوظة',
    noRunsHistoryDesc: 'فعّل "حفظ التشغيل" عند الإعادة لتتبع السجل',
    runResults: 'النتائج',
    correct_improvement: 'تحسّن',
    bad_regression: 'تراجع',
    cost_win: 'ربح في التكلفة',
    quality_win: 'ربح في الجودة',
    uncertain: 'غير مؤكد',
    badRegression: 'تراجعات',
    noOriginalContent: 'لم يُخزَّن الموجّه الأصلي',
    promoteCase: 'ترقية إلى اختبار',
    promoted: 'تمت ترقية الحالة إلى اختبار ثابت',
    promoteFailed: 'فشل ترقية الحالة',
    compareRuns: 'مقارنة التشغيلات',
    compareRunsTitle: 'مقارنة التشغيلات',
    compareRunsDesc: 'اختر تشغيلين للمقارنة بين قرارات التوجيه',
    selectRunToCompare: 'اختر تشغيلاً للمقارنة',
    runA: 'التشغيل أ',
    runB: 'التشغيل ب',
    improved: 'تحسّن',
    regressed: 'تراجع',
    suspiciousReasons: {
      empty_message_content: 'الموجّه الأصلي مفقود',
      large_confidence_drop: 'هبوط كبير في الثقة',
      large_cost_increase: 'زيادة كبيرة في التكلفة',
      route_changed_with_negative_improvement: 'تغيّر المسار مع أثر سلبي',
    },
  },
  compare: {
    title: 'مقارنة النماذج',
    description: 'اختر من 2 إلى 5 نماذج وأدخل موجّهاً لمقارنة الردود جنباً إلى جنب',
    selectModels: 'اختر النماذج',
    minModels: 'اختر {min} نماذج على الأقل',
    maxModels: 'الحد الأقصى {max} نماذج',
    sendPrompt: 'قارن النماذج',
    comparing: 'جار المقارنة...',
    compareFailed: 'فشل مقارنة النماذج',
    results: 'النتائج',
    fastest: 'الأسرع',
    completed: 'مكتمل',
    failed: 'فشل',
    latency: 'زمن الاستجابة',
    tokens: 'الرموز',
    noResults: 'لا توجد نتائج مقارنة بعد',
    modelCount: '{count} نماذج',
    expand: 'توسيع',
    bestResponse: 'أفضل رد',
    viewInThread: 'عرض في المحادثة',
    totalTokens: 'إجمالي الرموز',
    avgLatencyLabel: 'متوسط زمن الاستجابة',
    completedCount: '{count} مكتمل',
    failedCount: '{count} فشل',
    timeoutCount: '{count} انتهت المهلة',
    modelsCompared: 'النماذج المُقارنة',
    summaryTitle: 'ملخص المقارنة',
    showMore: 'عرض المزيد',
    showLess: 'عرض أقل',
    timeout: 'انتهت المهلة',
    noContent: 'لا يتوفر محتوى',
    noJudge: 'لا يوجد محكّم',
    judgeAwaiting: 'بانتظار المحكّم',
    judgeSkipped: 'تم تخطي المحكّم',
    judgeFailed: 'فشل المحكّم',
    judgeUnavailable: 'المحكّم غير متوفر',
    judgeVerified: 'تم التحقق',
    judgeRevised: 'تمت المراجعة',
    judgeEscalated: 'تم التصعيد',
    modelsProcessing: 'جاري معالجة النماذج...',
    processingMessage: 'جاري معالجة رسالتك...',
  },
  consensus: {
    title: 'وضع الإجماع',
    description: 'اختر من 2 إلى 5 نماذج ودع الذكاء الاصطناعي يُولّد إجابة إجماعية',
    selectModels: 'اختر النماذج',
    minModels: 'اختر {min} نماذج على الأقل',
    maxModels: 'الحد الأقصى {max} نماذج',
    sendPrompt: 'تشغيل الإجماع',
    running: 'جار تشغيل الإجماع...',
    sendFailed: 'فشل بدء الإجماع',
    synthesizing: 'جار توليف الردود...',
    synthesisReady: 'التوليف جاهز',
    synthesisTitle: 'توليف الإجماع',
    agreementScore: 'درجة التوافق',
    confidenceLevel: 'الثقة',
    agreements: 'نقاط الاتفاق',
    disagreements: 'نقاط الاختلاف',
    contradictions: 'تناقضات',
    synthesisRationale: 'المبرّر',
    modelBreakdown: 'تفصيل النماذج',
    completed: 'مكتمل',
    failed: 'فشل',
    timeout: 'انتهت المهلة',
    contentLength: 'طول المحتوى',
    noResults: 'لا توجد نتائج إجماع بعد',
    viewInThread: 'عرض في المحادثة',
    high: 'مرتفع',
    medium: 'متوسط',
    low: 'منخفض',
    modelsSelected: 'تم اختيار {count} نماذج',
    synthesisRationaleLabel: 'مبرّر التوليف',
  },
  escalation: {
    title: 'سلسلة التصعيد',
    description:
      'عرّف سلسلة نماذج — الأرخص أولاً والأقوى أخيراً. الذكاء الاصطناعي يُصعّد تلقائياً عند انخفاض الجودة',
    chainBuilder: 'ابنِ سلسلتك',
    addModel: 'إضافة نموذج',
    removeModel: 'إزالة',
    moveUp: 'نقل لأعلى',
    moveDown: 'نقل لأسفل',
    minSteps: 'أضف {min} نماذج على الأقل',
    maxSteps: 'الحد الأقصى {max} نماذج في السلسلة',
    sendPrompt: 'تشغيل السلسلة',
    running: 'جار تشغيل السلسلة...',
    sendFailed: 'فشل بدء سلسلة التصعيد',
    synthesizing: 'جار تنفيذ التصعيد...',
    synthesisReady: 'النتيجة جاهزة',
    resultTitle: 'نتيجة التصعيد',
    stepUsed: 'الخطوة المستخدمة',
    totalSteps: 'إجمالي الخطوات',
    escalated: 'تم التصعيد',
    notEscalated: 'لا حاجة للتصعيد',
    status: 'الحالة',
    statusSingleStep: 'تم الحل في الخطوة الأولى',
    statusResolved: 'تم الحل بعد التصعيد',
    statusExhausted: 'استُنفدت جميع الخطوات',
    qualityScore: 'درجة الجودة',
    latency: 'زمن الاستجابة',
    step: 'الخطوة',
    passed: 'اجتازت',
    failed: 'فشلت',
    finalModel: 'النموذج النهائي',
    noResults: 'لا توجد نتائج تصعيد بعد',
    viewInThread: 'عرض في المحادثة',
    stepsTimeline: 'مخطط الخطوات الزمني',
    finalAnswer: 'الإجابة النهائية',
  },
  repair: {
    title: 'مختبر إصلاح الإجابات',
    description:
      'إصلاح الإجابات المشوَّهة أو السطحية أو غير المكتملة أو المُلفَّقة دون إعادة البدء.',
    contentLabel: 'الإجابة المراد إصلاحها',
    contentPlaceholder: 'الصق الإجابة التي تريد إصلاحها...',
    repairTypes: 'أنواع الإصلاح',
    schemaLabel: 'المخطط',
    schemaDesc: 'إصلاح JSON المشوَّه أو البنية غير الصحيحة أو مشكلات تنسيق البيانات.',
    formatLabel: 'التنسيق',
    formatDesc: 'إصلاح تنسيق Markdown والعناوين والقوائم وكتل الشيفرة والبنية العامة.',
    completenessLabel: 'الاكتمال',
    completenessDesc: 'توسيع الأقسام السطحية أو الناقصة وإضافة النقاط الرئيسية المفقودة.',
    factualityLabel: 'الصحة الواقعية',
    factualityDesc: 'تحديد وتصحيح الأخطاء الواقعية أو الهلوسات أو الادعاءات غير الصحيحة.',
    sendPrompt: 'إصلاح الإجابة',
    running: 'جار الإصلاح...',
    sendFailed: 'فشل بدء الإصلاح. حاول مرة أخرى.',
    synthesizing: 'الإصلاح قيد التنفيذ...',
    resultTitle: 'الإجابة المُصلَحة',
    noResults: 'لا توجد نتائج إصلاح بعد',
    viewInThread: 'عرض في المحادثة',
    finalAnswer: 'الإجابة النهائية',
    provider: 'المزود',
    model: 'النموذج',
  },
  decompose: {
    title: 'مُوجِّه تفكيك المهام',
    description: 'قسّم المهام المعقدة إلى مهام فرعية، نفّذ كل واحدة بأفضل نموذج، ثم ادمج النتائج.',
    contentLabel: 'المهمة المعقدة',
    contentPlaceholder:
      'اكتب مهمة معقدة لتفكيكها، مثلاً: "ابحث في اتجاهات الذكاء الاصطناعي لعام 2025، أنشئ خطة عمل من 3 نقاط، واكتب ملخصاً تنفيذياً."',
    maxSubTasks: 'أقصى مهام فرعية',
    sendPrompt: 'تفكيك وتنفيذ',
    running: 'جار التفكيك…',
    synthesizing: 'جار تنفيذ المهام الفرعية وتوليف النتائج…',
    resultTitle: 'النتيجة المُوَلَّفة',
    viewInThread: 'عرض في المحادثة',
    subTasksHeader: 'نتائج المهام الفرعية',
    subTaskResult: 'النتيجة',
    category: 'الفئة',
    model: 'النموذج',
    latencyMs: 'زمن الاستجابة',
    noResults: 'لا توجد نتائج تفكيك',
    sendFailed: 'فشل تفكيك المهمة. حاول مرة أخرى.',
  },
  bestOfN: {
    title: 'توليد الأفضل من N',
    description: 'ولّد عدة إجابات مرشحة واختر تلقائياً الأعلى جودة.',
    contentLabel: 'الموجّه',
    contentPlaceholder: 'أدخل موجّهك لتوليد عدة مرشحات…',
    nCandidates: 'عدد المرشحات (N)',
    sendPrompt: 'توليد الأفضل من N',
    running: 'جار توليد المرشحات…',
    synthesizing: 'جار تقييم واختيار أفضل مرشح…',
    resultTitle: 'نتيجة أفضل مرشح',
    viewInThread: 'عرض في المحادثة',
    candidatesHeader: 'جميع المرشحات',
    rank: 'الترتيب',
    score: 'الدرجة',
    model: 'النموذج',
    latency: 'زمن الاستجابة',
    noResults: 'لم يتم توليد مرشحات',
    sendFailed: 'فشل توليد المرشحات. حاول مرة أخرى.',
  },
  recovery: {
    title: 'استعادة فشل التوجيه',
    description: 'راقب حالات فشل المزودين وأحداث الاستعادة الاحتياطية التلقائية.',
    totalDecisions: 'إجمالي القرارات',
    totalFallbacks: 'أحداث الاحتياطي',
    fallbackRate: 'معدل الاحتياطي',
    providerTable: 'تفصيل فشل المزودين',
    provider: 'المزود',
    fallbackCount: 'البدائل',
    rate: 'المعدل',
    recentFallbacks: 'أحداث الاحتياطي الأخيرة',
    originalProvider: 'الأصلي',
    originalModel: 'النموذج',
    fallbackProvider: 'البديل',
    fallbackModel: 'النموذج البديل',
    mode: 'الوضع',
    time: 'الوقت',
    noFallbacks: 'لا توجد أحداث احتياطية',
    noData: 'لم تُسجَّل قرارات توجيه بعد.',
    loading: 'جار تحميل بيانات الاستعادة…',
    error: 'فشل تحميل إحصاءات الاستعادة.',
  },
  verify: {
    title: 'المُدقِّق',
    description: 'توليد رد والتحقق منه قبل الإرسال',
    contentLabel: 'موجّهك',
    contentPlaceholder: 'أدخل سؤالك أو مهمتك...',
    maxRevisionsLabel: 'أقصى المراجعات',
    sendPrompt: 'تحقق وأرسل',
    running: 'جار التحقق...',
    synthesizing: 'جار توليد الرد والتحقق منه...',
    noResults: 'لا يوجد رد مُتحقَّق منه بعد',
    sendFailed: 'فشل التحقق. حاول مرة أخرى.',
    verified: 'تم التحقق',
    verifierScore: 'درجة الجودة',
    revisions: 'المراجعات',
    issues: 'المشكلات',
    viewInThread: 'عرض في المحادثة',
  },
  adaptiveLearning: {
    title: 'التعلّم التكيُّفي للمسارات',
    description: 'رؤى مستخلصة من سجل التوجيه لتحسين القرارات المستقبلية',
    loading: 'جار تحميل الرؤى...',
    error: 'فشل تحميل الرؤى',
    windowDays: 'النافذة',
    days: 'أيام',
    totalDecisions: 'إجمالي القرارات',
    avgConfidence: 'متوسط الثقة',
    topReasonTags: 'أبرز وسوم الأسباب',
    providerTable: 'أداء المزودين',
    modeBreakdown: 'تفصيل الأوضاع',
    noData: 'لا توجد قرارات توجيه في هذه النافذة',
    provider: 'المزود',
    fallbackRate: 'معدل الاحتياطي',
    totalCalls: 'إجمالي الاستدعاءات',
    topModes: 'أبرز الأوضاع',
    mode: 'الوضع',
    count: 'العدد',
    percentage: 'النسبة المئوية',
  },
  pipeline: {
    title: 'خط أنابيب متعدد المراحل',
    description: 'مرّر طلبك عبر سلسلة من المراحل المتخصصة',
    contentLabel: 'طلبك',
    contentPlaceholder: 'اكتب ما تحتاجه...',
    templateLabel: 'قالب خط الأنابيب',
    templateAnalyze: 'تحليل ← استدلال ← تنسيق',
    templateCode: 'برمجة ← تصحيح ← مراجعة',
    templateDraft: 'مسوّدة ← نقد ← مراجعة',
    sendPrompt: 'تشغيل خط الأنابيب',
    running: 'جار تشغيل خط الأنابيب...',
    synthesizing: 'جار معالجة المراحل...',
    noResults: 'لا توجد نتائج بعد',
    sendFailed: 'فشل خط الأنابيب. حاول مرة أخرى.',
    stageBreakdown: 'تفصيل المراحل',
    stage: 'المرحلة',
    model: 'النموذج',
    latency: 'زمن الاستجابة',
    viewInThread: 'عرض في المحادثة',
  },
  costEnsemble: {
    title: 'المجموعة الموعية بالتكلفة',
    description: 'تنفيذ ذكي: استخدم نموذجاً أو اثنين أو ثلاثة حسب تعقيد المهمة',
    contentLabel: 'موجّهك',
    contentPlaceholder: 'أدخل سؤالك أو مهمتك...',
    sendPrompt: 'تحليل وإرسال',
    running: 'جار تحليل التكلفة...',
    synthesizing: 'جار اختيار المجموعة المثلى...',
    noResults: 'لا توجد نتائج بعد',
    sendFailed: 'فشلت المجموعة الموعية بالتكلفة. حاول مرة أخرى.',
    tier: 'المستوى',
    tierSingle: 'فردي',
    tierDuo: 'ثنائي',
    tierTrio: 'ثلاثي',
    complexity: 'التعقيد',
    risk: 'المخاطرة',
    ambiguity: 'الغموض',
    reasoning: 'الاستدلال',
    candidates: 'المرشحات',
    viewInThread: 'عرض في المحادثة',
  },
  rolePack: {
    title: 'مجموعة قائمة على الأدوار',
    description: 'أرسل طلبك إلى فريق من أدوار الذكاء الاصطناعي المتخصصة',
    contentLabel: 'طلبك',
    contentPlaceholder: 'اكتب ما تحتاجه...',
    packLabel: 'اختر الفريق',
    packCoding: 'فريق البرمجة',
    packResearch: 'فريق البحث',
    packMarketing: 'فريق التسويق',
    packLegal: 'الفريق القانوني',
    sendPrompt: 'تشغيل الفريق',
    running: 'الفريق قيد المعالجة...',
    synthesizing: 'جار تشغيل جميع الأدوار بالتوازي...',
    noResults: 'لا توجد نتائج فريق بعد',
    sendFailed: 'فشل تشغيل الفريق. حاول مرة أخرى.',
    teamBreakdown: 'نتائج الفريق',
    role: 'الدور',
    model: 'النموذج',
    latency: 'زمن الاستجابة',
    viewInThread: 'عرض في المحادثة',
  },
  advancedModelSelector: {
    label: 'نموذج التنفيذ',
    auto: 'تلقائي (اختيار أفضل نموذج محلي)',
    loading: 'جار تحميل النماذج...',
    description: 'اختر تلقائي أو نموذج Ollama محدد مثبت محلياً لهذا المختبر.',
    empty: 'لا تتوفر نماذج نصية محلية لهذا المختبر بعد.',
  },
  workspaceConnectors: {
    title: 'موصلات مساحة العمل',
    description: 'اربط أدوات مساحة عملك — GitHub و Slack و Jira و Google Drive وغيرها.',
    createConnector: 'إنشاء موصل',
    editConnector: 'تعديل الموصل',
    deleteConnector: 'حذف الموصل',
    testHealth: 'اختبار الصحة',
    triggerSync: 'مزامنة الآن',
    name: 'الاسم',
    nameHelp: 'اسم عرض لهذا الموصل',
    provider: 'المزود',
    providerHelp: 'أداة مساحة العمل المراد ربطها',
    permissionLevel: 'مستوى الصلاحية',
    permissionLevelHelp: 'مستوى الوصول الممنوح لهذا الموصل',
    status: 'الحالة',
    connected: 'متصل',
    degraded: 'متدهور',
    disconnected: 'غير متصل',
    pendingAuth: 'بانتظار المصادقة',
    unknown: 'غير معروف',
    noConnectors: 'لا توجد موصلات لمساحة العمل',
    noConnectorsDesc: 'اربط أول أداة لمساحة عملك للبدء.',
    noConnectorsGuidance:
      'تبدأ الاتصالات من تهيئة التطبيقات. سجّل تطبيق OAuth هناك ثم اضغط اتصال للربط هنا.',
    overviewDescription: 'أدوات مساحة العمل المتصلة. أضف جديدة من تهيئة التطبيقات.',
    manageAppConfigs: 'إدارة تهيئة التطبيقات',
    goToAppConfigs: 'الانتقال إلى تهيئة التطبيقات',
    connectorCreated: 'تم إنشاء الموصل بنجاح.',
    connectorCreateFailed: 'فشل إنشاء الموصل.',
    connectorDeleted: 'تم حذف الموصل بنجاح.',
    connectorDeleteFailed: 'فشل حذف الموصل.',
    healthCheckStarted: 'بدأ فحص الصحة.',
    healthCheckFailed: 'فشل فحص الصحة.',
    syncStarted: 'بدأت المزامنة.',
    syncFailed: 'فشل بدء المزامنة.',
    loadFailed: 'فشل تحميل الموصلات.',
    loadingConnectors: 'جار تحميل الموصلات...',
    addConnector: 'إضافة موصل',
    connectViaOAuth: 'الاتصال عبر OAuth',
    lastSync: 'آخر مزامنة',
    never: 'أبداً',
    syncRuns: 'تشغيلات المزامنة',
    healthEvents: 'أحداث الصحة',
    enabled: 'مُفعَّل',
    disabled: 'مُعطَّل',
    deleteConfirm: 'هل أنت متأكد من حذف هذا الموصل؟ لا يمكن التراجع عن هذا الإجراء.',
    namePlaceholder: 'مثال: GitHub Workspace',
    paused: 'متوقف مؤقتاً',
  },
  workspaceObjects: {
    title: 'الكائنات المُزامَنة',
    description: 'الكائنات المُزامَنة من أدوات مساحة العمل المتصلة.',
    loading: 'جار تحميل الكائنات...',
    loadFailed: 'فشل تحميل كائنات مساحة العمل.',
    noObjects: 'لا توجد كائنات مُزامَنة بعد.',
    noObjectsDesc: 'شغّل مزامنة على موصل لاستيراد كائنات مساحة العمل.',
    selectConnector: 'اختر موصلاً لعرض الكائنات المُزامَنة به.',
    source: 'المصدر',
    viewObject: 'عرض الكائن',
  },
  workspaceSearch: {
    title: 'بحث مساحة العمل',
    description: 'ابحث في جميع كائنات مساحة العمل المُزامَنة.',
    placeholder: 'ابحث في المستندات والقضايا والرسائل...',
    searching: 'جار البحث...',
    noResults: 'لا توجد نتائج.',
    noResultsDesc: 'جرّب مصطلح بحث مختلف أو زامن مزيداً من الموصلات.',
    searchFailed: 'فشل البحث. حاول مرة أخرى.',
    resultCount: '{count} نتيجة',
    viewSource: 'عرض المصدر',
    score: 'الصلة',
  },
  workspaceObjectDetail: {
    title: 'تفاصيل الكائن',
    description: 'افحص كائناً مُزامَناً من مساحة العمل وحدّثه من مزوده.',
    loadFailed: 'فشل تحميل الكائن.',
    refresh: 'تحديث من المزود',
    refreshing: 'جار التحديث...',
    refreshFailed: 'فشل التحديث.',
    content: 'المحتوى',
    metadata: 'البيانات الوصفية',
    externalCreated: 'أُنشئ في المصدر',
    externalUpdated: 'حُدِّث في المصدر',
    openInProvider: 'فتح في المزود',
    author: 'المؤلف: {author}',
  },
  connectorDetail: {
    title: 'تفاصيل الموصل',
    description: 'سجل المزامنة وأحداث الصحة والكائنات المُزامَنة حديثاً لهذا الموصل.',
    loadFailed: 'فشل تحميل الموصل.',
    never: 'أبداً',
    lastSync: 'آخر مزامنة: {value}',
    syncRunsCount: '{count} تشغيلات مزامنة',
    objectsCount: '{count} كائنات',
    recentObjects: 'الكائنات الأخيرة',
    noObjects: 'لا توجد كائنات مُزامَنة بعد. شغّل مزامنة لسحب الكائنات من المزود.',
    syncHistory: 'سجل المزامنة',
    noSyncRuns: 'لا توجد تشغيلات مزامنة بعد.',
    syncRunLine: '{synced} مُزامَن · {failed} فشل',
    healthHistory: 'سجل الصحة',
    noHealthEvents: 'لم تُسجَّل فحوص صحة بعد.',
    healthOk: 'جيد',
    activating:
      'جار تفعيل هذا الموصل — استيراد أول مجموعة من الكائنات من المزود. يمكنك متابعة استخدام Claw أثناء ذلك.',
    askAi: 'اسأل الذكاء الاصطناعي عن هذا',
    askAiTitle: 'عن {name}',
    reconnect: 'إعادة الاتصال',
    reconnectTitle: 'هذا الموصل غير متصل',
    reconnectDescription:
      'بيانات الاعتماد المخزّنة لم تعد صالحة. أعد المصادقة من تهيئة التطبيقات لاستعادة الوصول.',
  },
  workspaceSyncRuns: {
    title: 'تشغيلات المزامنة',
    description: 'سجل المزامنة الأخير لهذا الموصل.',
    loading: 'جار تحميل تشغيلات المزامنة...',
    loadFailed: 'فشل تحميل تشغيلات المزامنة.',
    empty: 'لا توجد تشغيلات مزامنة بعد.',
    started: 'بدأت',
    status: 'الحالة',
    type: 'النوع',
    delta: 'الفرق',
    found: 'تم العثور',
    synced: 'مُزامَن',
    failed: 'فشل',
    duration: 'المدة',
  },
  workspaceSync: {
    dashboard: {
      title: 'صحة مزامنة مساحة العمل',
      description: 'عرض مباشر لمهام المزامنة المجدولة عبر جميع موصلات مساحة العمل.',
      error_title: 'تعذّر تحميل لوحة المزامنة',
      empty_title: 'لا توجد موصلات بعد',
      empty_description: 'بمجرد ربط أداة مساحة عمل ستظهر صحة المزامنة الخاصة بها هنا.',
      scheduler_title: 'المُجدوِل',
      scheduler_enabled: 'المُجدوِل مُفعَّل',
      last_tick: 'آخر تنبيه',
      active_runs: 'التشغيلات النشطة',
      dlq_backlog: 'تراكم DLQ',
      connectors_title: 'الموصلات',
      col: {
        connector: 'الموصل',
        freshness: 'الطزاجة',
        last_sync: 'آخر مزامنة',
        cadence: 'الإيقاع',
        success_rate: 'معدل النجاح خلال 24 ساعة',
        avg_duration: 'متوسط المدة',
        status: 'الحالة',
      },
    },
    band: {
      fresh: 'طازج',
      slow: 'بطيء',
      stale: 'قديم',
    },
    cadence: {
      label: 'مزامنة كل',
      '1m': 'دقيقة واحدة',
      '5m': '5 دقائق',
      '10m': '10 دقائق',
      '30m': '30 دقيقة',
      '1h': 'ساعة واحدة',
      save: 'حفظ الإيقاع',
      saving: 'جار الحفظ...',
      saved: 'تم تحديث الإيقاع',
    },
    pause: {
      pause: 'إيقاف المزامنة مؤقتاً',
      resume: 'استئناف المزامنة',
      paused_label: 'المزامنة متوقفة',
      reason_placeholder: 'السبب (اختياري)',
    },
    chip: {
      synced_ago: 'تمت المزامنة قبل {ago}',
      stale: 'قديم',
      paused: 'متوقف',
    },
  },
  aiActions: {
    dialog: {
      title: 'تشغيل إجراء ذكاء اصطناعي · {action}',
      description:
        'اختر نموذجاً وولّد. يختار الوضع التلقائي المُوجِّه بناءً على نوع الإجراء وفئة الخصوصية.',
      model_label: 'النموذج',
      generate: 'توليد',
      regenerate: 'إعادة التوليد',
      resolving: 'يجري التوليد…',
      cancel: 'إلغاء',
      close: 'إغلاق',
      copy: 'نسخ',
      copied: 'تم النسخ',
      generated_by: 'تم التوليد بواسطة {model}',
      resolution_mode: 'الوضع: {mode}',
      resolution_primary: 'الأساسي: {model}',
      resolution_fallback: 'نماذج بديلة في الطابور: {count}',
    },
  },
  approvals: {
    page: {
      title: 'مركز الموافقات',
      description:
        'راجع ووافق على الإجراءات المعلّقة التي صاغها الذكاء الاصطناعي عبر موصلات مساحة العمل.',
      empty_title: 'لا توجد موافقات معلّقة',
      empty_description: 'عندما يصوغ الذكاء الاصطناعي إجراءً نيابةً عنك، سيظهر هنا للمراجعة.',
      error_title: 'تعذّر تحميل الموافقات',
      error_description: 'حدث خطأ أثناء تحميل قائمة الموافقات. حاول مرة أخرى.',
    },
    card: {
      approve: 'موافقة',
      reject: 'رفض',
      edit: 'تعديل',
      edited: 'مُعدَّل · الإصدار {version}',
      source_stale: 'المصدر قديم',
      attribution_auto: 'تلقائي · {model}',
      attribution_manual: 'يدوي · {model}',
    },
    bulk: {
      selected: 'تم اختيار {count}',
      approve_all: 'الموافقة على الكل',
      clear: 'مسح الاختيار',
    },
    edit: {
      title: 'تعديل المسوّدة',
      description: 'عدّل حمولة الإجراء. المسوّدة الأصلية محفوظة في السجل.',
      payload_label: 'الحمولة (JSON)',
      reason_placeholder: 'سبب التعديل (اختياري)',
      save: 'حفظ وإعادة الموافقة لاحقاً',
      cancel: 'إلغاء',
      invalid_json: 'يجب أن تكون الحمولة JSON صالحاً',
    },
    reject: {
      title: 'رفض الإجراء',
      description: 'اختيارياً: اذكر سبب الرفض.',
      reason_placeholder: 'السبب (اختياري)',
      confirm: 'رفض',
      cancel: 'إلغاء',
    },
  },
  automationPreferences: {
    page: {
      title: 'تفضيلات الأتمتة',
      description:
        'عناصر تحكم لكل نوع إجراء. الأقوى يفوز: سياسة المسؤول هي الأرضية، يمكن لتفضيلاتك أن تشددها فقط.',
      loading: 'جارٍ تحميل التفضيلات…',
      error: 'تعذّر تحميل التفضيلات. حاول التحديث.',
      empty: 'لا توجد أنواع إجراءات بعد.',
    },
    row: {
      enabled: 'مفعّل',
      disabled: 'معطّل',
      toggleAria: 'تبديل الأتمتة لـ {kind}',
      autoApproveBelowRisk: 'الموافقة تلقائيًا عندما تكون نتيجة المخاطر عند هذا الحد أو أقل',
      autoApproveDisabled: 'الموافقة التلقائية معطّلة (دائمًا في طابور المراجعة)',
      autoApproveAt: 'موافقة تلقائية عند مخاطر ≤ {score}',
      perDayBudget: 'حد يومي',
      perDayBudgetPlaceholder: 'unlimited',
      clear: 'مسح',
    },
  },
  connectorGrants: {
    title: 'المشاركة',
    description:
      'شارك هذا الموصل مع مستخدمين آخرين. المالك لديه دائمًا وصول كامل؛ يرى المستفيدون مستوى الوصول الذي تختاره.',
    loading: 'جارٍ تحميل الصلاحيات…',
    error: 'تعذر تحميل الصلاحيات.',
    empty: 'لا توجد صلاحيات بعد. هذا الموصل متاح لك فقط.',
    granteeUserIdLabel: 'معرف مستخدم المستفيد',
    granteeUserIdPlaceholder: 'cmnkgdc2c00009w92riuztmmd',
    accessLevelLabel: 'مستوى الوصول',
    grant: 'منح الوصول',
    granting: 'جارٍ المنح…',
    revoke: 'إلغاء',
    revoking: 'جارٍ الإلغاء…',
    grantedBy: 'مُمنوح من قبل',
    levelReadOnly: 'قراءة فقط',
    levelAiActions: 'إجراءات الذكاء الاصطناعي',
    levelFull: 'كامل',
  },
  emailSignatures: {
    page: {
      title: 'تواقيع البريد الإلكتروني',
      description:
        'إدارة التواقيع المرفقة برسائل البريد الإلكتروني التي يصيغها الذكاء الاصطناعي. اجعل توقيعًا افتراضيًا ليُستخدم تلقائيًا.',
      loading: 'جارٍ تحميل التواقيع…',
      error: 'تعذر تحميل التواقيع. حاول تحديث الصفحة.',
      empty: 'لا توجد تواقيع بعد. أنشئ توقيعًا للبدء.',
      create: 'توقيع جديد',
      edit: 'تعديل',
      delete: 'حذف',
      deleting: 'جارٍ الحذف…',
      defaultBadge: 'افتراضي',
    },
    dialog: {
      createTitle: 'إنشاء توقيع',
      editTitle: 'تعديل التوقيع',
      nameLabel: 'الاسم',
      namePlaceholder: 'توقيع العمل',
      bodyLabel: 'المحتوى',
      bodyPlaceholder: 'مع تحياتي،\nعلي\nنائب الرئيس للهندسة · شركة مثال',
      defaultLabel: 'استخدام كافتراضي',
      save: 'حفظ',
      saving: 'جارٍ الحفظ…',
      cancel: 'إلغاء',
    },
  },
  research: {
    toggle: {
      placeholder: 'البحث',
      autoProvider: 'مزود تلقائي',
      noProviders: 'لا توجد مزودات مُهيَّأة',
    },
    modes: {
      off: 'بدون بحث',
      searchOnly: 'بحث ويب',
      searchThenFetch: 'بحث + جلب',
      searchFetchExtract: 'بحث + استخراج',
    },
    providers: {
      title: 'مزودو البحث',
      description: 'مزودو بحث وجلب وأدلة ديناميكيون.',
      createButton: 'مزود جديد',
      createTitle: 'إضافة مزود بحث',
      createDescription: 'سجّل مزود Tavily / SearXNG / Ollama Web.',
      create: 'إنشاء',
      creating: 'جار الإنشاء...',
      kind: 'النوع',
      name: 'الاسم',
      baseUrl: 'الرابط الأساسي',
      apiKey: 'مفتاح API (مُخزَّن مُشفَّراً)',
      test: 'اختبار',
      secretStored: 'السر مُخزَّن',
      healthy: 'سليم',
      unhealthy: 'غير سليم',
      loadFailed: 'فشل تحميل المزودين.',
      emptyTitle: 'لا يوجد مزودو بحث',
      emptyDescription: 'أضف مزوداً لتبدأ في تأصيل المحادثة بأدلة حية.',
      col: {
        name: 'الاسم',
        kind: 'النوع',
        baseUrl: 'الرابط الأساسي',
        status: 'الحالة',
        secret: 'السر',
        actions: 'الإجراءات',
      },
      namePlaceholder: 'مثال: Tavily Production',
    },
    runs: {
      title: 'جلسات البحث',
      description: 'سجل جلسات البحث التي بدأت من المحادثة.',
      loadFailed: 'فشل تحميل الجلسات.',
      emptyTitle: 'لا توجد جلسات بحث بعد',
      emptyDescription: 'فعّل البحث في المحادثة لإنتاج أدلة.',
    },
    evidence: {
      title: 'أدلة البحث المباشرة',
      empty: 'لم تُرجَع عناصر أدلة.',
      noTitle: '(بدون عنوان)',
      confidence: 'الثقة',
      warnings: 'تحذيرات',
      requestedModel: 'النموذج المطلوب',
      toolsUsed: 'الأدوات',
    },
    results: {
      open: 'نتائج البحث',
      title: 'نتائج البحث',
      description: 'افحص اختيار المزود وسلسلة البدائل وحزمة الأدلة ومسار البحث.',
      provider: 'المزود',
      selectionMode: 'الاختيار',
      selectionAuto: 'تلقائي',
      selectionExplicit: 'صريح',
      fallbackUsed: 'تم استخدام البديل',
      query: 'استعلام البحث',
      evidenceCount: 'عناصر الأدلة',
      attempts: 'محاولات المزودين',
      trace: 'مسار البحث',
    },
  },
  workspaceActions: {
    title: 'إجراءات مساحة العمل',
    description: 'راجع ووافق على إجراءات الكتابة الآلية قبل تنفيذها.',
    approve: 'موافقة',
    reject: 'رفض',
    cancel: 'إلغاء',
    rejectTitle: 'رفض الإجراء',
    rejectDesc: 'قدّم سبباً اختيارياً لرفض هذا الإجراء.',
    rejectReasonPlaceholder: 'السبب (اختياري)',
    confirmReject: 'تأكيد الرفض',
    connector: 'الموصل',
    rejectionReason: 'سبب الرفض',
    pendingApproval: 'بانتظار الموافقة',
    executing: 'قيد التنفيذ',
    executed: 'تم التنفيذ',
    failed: 'فشل',
    rejected: 'مرفوض',
    noActions: 'لم يُعثر على إجراءات',
    noActionsDesc: 'ستظهر هنا إجراءات الكتابة الآلية التي أنشأها الذكاء الاصطناعي لمراجعتها.',
    loadFailed: 'فشل تحميل الإجراءات.',
    viewPayload: 'عرض الحمولة',
    requestedAt: 'طُلب {value}',
    reviewedAt: 'تمت المراجعة {value}',
    executedAt: 'تم التنفيذ {value}',
    approved: 'موافَق عليه',
    expired: 'منتهي الصلاحية',
    edited: 'مُعدَّل',
  },
  workspaceProviders: {
    catalog: {
      title: 'فهرس مزودي مساحة العمل',
      description: 'تصفّح تكاملات مساحة العمل المدعومة.',
      loadFailed: 'فشل تحميل فهرس المزودين.',
      emptyTitle: 'لا يتوفر مزودون',
      emptyDescription: 'لا توجد مزودات مساحة عمل مسجلة بعد.',
      available: 'متاح',
      comingSoon: 'قريباً',
      objectTypes: 'أنواع الكائنات',
      docs: 'التوثيق',
    },
    appConfigs: {
      title: 'تهيئة تطبيقات المزودين',
      description: 'سجّل تطبيقات OAuth وبيانات الاعتماد لمزودي مساحة العمل.',
      createButton: 'تهيئة جديدة',
      createTitle: 'إنشاء تهيئة تطبيق مزود',
      createDescription: 'سجّل بيانات اعتماد OAuth أو رمز وصول شخصي.',
      create: 'إنشاء',
      creating: 'جار الإنشاء...',
      editTitle: 'تعديل إعدادات تطبيق المزوّد',
      editDescription:
        'قم بتحديث قيم الإعدادات وبيانات هذا المزوّد. اترك حقول الأسرار فارغة للإبقاء عليها دون تغيير.',
      editSecretHint:
        'الحقول السرية التي تُترك فارغة ستحتفظ بقيمتها المخزّنة سابقًا. املأها فقط لتدوير بيانات الاعتماد.',
      save: 'حفظ',
      saving: 'جاري الحفظ…',
      provider: 'المزود',
      providerPlaceholder: 'اختر مزوداً...',
      name: 'الاسم',
      namePlaceholder: 'مثال: تطبيق GitHub للإنتاج',
      authMode: 'وضع المصادقة',
      descriptionLabel: 'الوصف',
      descriptionPlaceholder: 'ملاحظات اختيارية حول هذه التهيئة',
      test: 'اختبار',
      connect: 'اتصال',
      testResult: 'نتيجة الاختبار: {status} ({latency} مل.ث)',
      secretStored: 'السر مُخزَّن',
      emptyTitle: 'لا توجد تهيئات مزودين بعد',
      emptyDescription: 'أضف أول بيانات اعتماد مزود لتفعيل موصلات مساحة العمل.',
      loadFailed: 'فشل تحميل تهيئات التطبيقات.',
      fields: {
        secret: '(سر)',
      },
      columns: {
        name: 'الاسم',
        provider: 'المزود',
        authMode: 'المصادقة',
        status: 'الحالة',
        secret: 'السر',
        lastValidated: 'آخر تحقق',
        actions: 'الإجراءات',
      },
      errors: {
        nameRequired: 'الاسم مطلوب.',
      },
    },
    oauthCallback: {
      exchangingTitle: 'جار إكمال الاتصال...',
      exchangingDescription: 'جار تبادل رمز التفويض مع المزود.',
      successTitle: 'تم الاتصال!',
      successDescription: 'جار إعادة توجيهك إلى مساحة العمل...',
      successDescriptionNamed: 'تم ربط {name}. جار إعادة توجيهك...',
      errorTitle: 'فشل الاتصال',
      errorUnknown: 'حدث خطأ غير معروف.',
    },
  },
  agent: {
    title: 'وكيل سطح المكتب',
    description: 'إدارة وكلاء سطح المكتب المتصلين وأوامر الطرفية.',
    loading: 'جار تحميل جلسات الوكيل...',
    loadFailed: 'فشل تحميل بيانات الوكيل.',
    noSessions: 'لا توجد جلسات نشطة',
    noSessionsDesc: 'شغّل وكيل Claw لسطح المكتب على جهازك للاتصال.',
    noCommands: 'لا توجد أوامر',
    noCommandsDesc: 'ستظهر أوامر الطرفية المعلّقة هنا.',
    noRepos: 'لا توجد مستودعات',
    noReposDesc: 'ستظهر هنا المستودعات التي يكتشفها الوكيل.',
    terminal: 'أوامر الطرفية',
    terminalDesc: 'وافق أو ارفض أوامر الطرفية التي يطلبها الوكيل.',
    capabilities: 'قائمة القدرات',
    capabilitiesDesc: 'وافق أو ارفض استدعاءات القدرات عبر نظام الملفات والعمليات والمتصفح وغيرها.',
    capabilityClass: 'الفئة',
    capabilityOperation: 'العملية',
    blastRadius: 'نطاق التأثير',
    reversibility: 'قابلية التراجع',
    riskScore: 'درجة المخاطر',
    matchedPolicy: 'السياسة المطابقة',
    activity: 'نشاط الوكيل',
    activityDesc: 'القدرات الأخيرة وعمليات تشغيل الوصفات عبر جميع أجهزتك.',
    autoApproved: 'تمت الموافقة تلقائياً',
    denied: 'مرفوض',
    rolledBack: 'تم التراجع',
    recipes: 'الوصفات',
    recipesDesc: 'أتمتة متعددة الخطوات تربط استدعاءات القدرات معاً.',
    noRecipes: 'لا توجد وصفات بعد',
    noRecipesDesc: 'أنشئ وصفة لأتمتة سير العمل متعدد الخطوات.',
    recipeRunDetail: 'تفاصيل التشغيل',
    recipeRunDetailDesc: 'التقدم المباشر لتشغيل وصفة.',
    runStatus: 'حالة التشغيل',
    cancelRun: 'إلغاء التشغيل',
    steps: 'الخطوات',
    marketplace: 'متجر الوصفات',
    marketplaceDesc: 'تصفح وثبّت الوصفات الموقعة المنشورة من المجتمع.',
    noListings: 'لا توجد قوائم بعد',
    noListingsDesc: 'عندما ينشر الناشرون وصفات موقعة ستظهر هنا.',
    install: 'تثبيت',
    activityMemory: 'ذاكرة النشاط',
    activityMemoryDesc: 'إدخالات النشاط المتزامنة سحابياً والمفعّلة من أجهزتك.',
    noActivity: 'لا توجد إدخالات نشاط بعد',
    noActivityDesc: 'النشاط المُسجَّل على أجهزتك يظهر هنا فقط بعد تفعيل المزامنة السحابية.',
    repos: 'المستودعات',
    reposDesc: 'مستودعات مكتشفة',
    pendingCommands: 'الأوامر المعلّقة',
    pendingApproval: 'بانتظار الموافقة',
    recentCommands: 'الأوامر الأخيرة',
    approve: 'موافقة',
    reject: 'رفض',
    version: 'الإصدار',
    commands: 'أوامر',
    files: 'ملفات',
    dirty: 'مُعدَّل',
    connect: {
      title: 'ربط جهاز',
      approveDescription: 'راجع تفاصيل الجهاز والصلاحيات قبل الموافقة.',
      scopesLabel: 'الصلاحيات (النطاقات)',
      approveButton: 'موافقة',
      denyButton: 'إلغاء',
      successTitle: 'تم ربط الجهاز',
      successBody: 'يمكنك إغلاق هذه التبويب والعودة إلى الطرفية.',
      expiredTitle: 'رابط الربط غير صالح أو منتهي',
      expiredBody: 'أعد تشغيل `claw-agent login` لبدء ربط جديد.',
      deniedTitle: 'تم إلغاء الموافقة',
      deniedBody: 'لم تُصدَر بيانات اعتماد. يمكنك إغلاق هذه التبويب.',
      accountMismatchTitle: 'حساب خاطئ',
      accountMismatchBody: 'سجّل الدخول بالحساب الذي تريد ربط الجهاز به.',
      deviceNamePlaceholder: 'مثال: جهاز MacBook Pro الخاص بي',
    },
    rejectedByUser: 'رفضه المستخدم',
  },
  discovery: {
    title: 'اكتشاف النماذج',
    description: 'اكتشف وصنّف ووافق على نماذج Ollama الجديدة ديناميكياً.',
    searchPlaceholder: 'بحث في المرشحات...',
    filter: {
      status: 'الحالة',
      all: 'الكل',
      pending: 'معلّق',
      approved: 'مقبول',
      rejected: 'مرفوض',
      imported: 'مستورد',
      duplicate: 'مكرر',
    },
    actions: {
      refresh: 'تشغيل الاكتشاف',
      dryRun: 'تشغيل تجريبي',
      approve: 'موافقة',
      reject: 'رفض',
    },
    runs: {
      title: 'تشغيلات الاكتشاف الأخيرة',
      empty: 'لا توجد تشغيلات اكتشاف بعد. اضغط "تشغيل الاكتشاف" للبدء.',
      discovered: 'مُكتشف',
      imported: 'مُستورد',
      skipped: 'تم التخطي',
    },
    candidates: {
      title: 'المرشحات',
      empty: {
        title: 'لا توجد مرشحات',
        description: 'شغّل جلسة اكتشاف للعثور على نماذج جديدة.',
      },
    },
    candidate: {
      size: 'الحجم',
      confidence: 'الثقة',
    },
    packs: {
      title: 'حزم الأجهزة',
      empty: 'لا توجد حزم أجهزة مُهيَّأة.',
      install: 'تثبيت الحزمة',
      noModelsYet: 'لا توجد نماذج تطابق هذه المواصفات بعد.',
    },
  },
  validation: {
    required: 'هذا الحقل مطلوب',
    invalidEmail: 'يرجى إدخال بريد إلكتروني صحيح',
    tooShort: 'يجب أن يكون {min} أحرف على الأقل',
    tooLong: 'يجب ألا يتجاوز {max} حرفاً',
    invalidUrl: 'يرجى إدخال رابط صحيح',
    fileTooLarge: 'حجم الملف يتجاوز الحد المسموح',
    invalidFileType: 'نوع الملف غير مدعوم',
  },
  toast: {
    loginSuccess: 'تم تسجيل الدخول بنجاح',
    loginFailed: 'فشل تسجيل الدخول',
    logoutFailed: 'فشل تسجيل الخروج',
    sessionExpired: 'انتهت الجلسة، يرجى تسجيل الدخول مرة أخرى',
  },
  accessibility: {
    closeSidebar: 'إغلاق الشريط الجانبي',
    openSidebar: 'فتح الشريط الجانبي',
    toggleSidebar: 'تبديل الشريط الجانبي',
    userMenu: 'قائمة المستخدم',
    closeDialog: 'إغلاق الحوار',
    openMenu: 'فتح القائمة',
    search: 'بحث',
    openSearch: 'فتح البحث',
    closeSearch: 'إغلاق البحث',
    navigation: 'التنقل الرئيسي',
    notifications: 'الإشعارات',
    languageSelector: 'اختر اللغة',
    themeToggle: 'تبديل السمة',
    resizeInput: 'تغيير حجم إدخال الرسالة',
  },
  actions: {
    test: 'اختبار',
    testing: 'جار الاختبار...',
    sync: 'مزامنة',
    syncing: 'جار المزامنة...',
    archive: 'أرشفة',
    unarchive: 'إلغاء الأرشفة',
    pin: 'تثبيت',
    unpin: 'إلغاء التثبيت',
    duplicate: 'تكرار',
    copy: 'نسخ',
    copied: 'تم النسخ',
    copyToClipboard: 'نسخ إلى الحافظة',
    view: 'عرض',
    viewAll: 'عرض الكل',
    viewDetails: 'عرض التفاصيل',
    download: 'تنزيل',
    upload: 'رفع',
    refresh: 'تحديث',
    reset: 'إعادة تعيين',
    apply: 'تطبيق',
    approve: 'موافقة',
    approving: 'جار الموافقة...',
    reject: 'رفض',
    rejecting: 'جار الرفض...',
    reload: 'إعادة تحميل',
    reconnect: 'إعادة الاتصال',
    expand: 'توسيع',
    collapse: 'طيّ',
    enable: 'تفعيل',
    disable: 'تعطيل',
    remove: 'إزالة',
    add: 'إضافة',
    select: 'اختيار',
    selectAll: 'اختيار الكل',
    deselectAll: 'إلغاء اختيار الكل',
    clear: 'مسح',
    submit: 'إرسال',
    more: 'المزيد',
    less: 'أقل',
    showMore: 'عرض المزيد',
    showLess: 'عرض أقل',
  },
  logs: {
    allLevels: 'جميع المستويات',
    allActions: 'جميع الإجراءات',
    allSeverities: 'جميع مستويات الشدّة',
    allMethods: 'جميع الطرق',
    methodPlaceholder: 'الطريقة',
    componentPlaceholder: 'المكوّن...',
    actionPlaceholder: 'الإجراء...',
    routePlaceholder: 'المسار...',
    routeRegexPlaceholder: 'المسار (تعبير منتظم)...',
    userIdPlaceholder: 'معرّف المستخدم...',
    messageContainsPlaceholder: 'الرسالة تحتوي على...',
    servicePlaceholder: 'الخدمة...',
    controllerPlaceholder: 'وحدة التحكم...',
    entityTypePlaceholder: 'نوع الكيان...',
    startDate: 'تاريخ البداية',
    endDate: 'تاريخ النهاية',
    fullTextSearch: 'بحث نصي كامل...',
    searchAllFields: 'بحث في جميع الحقول...',
    avgLatency: 'متوسط زمن الاستجابة',
    errors: 'أخطاء',
    failedToLoadClient: 'فشل تحميل سجلات العميل',
    failedToLoadClientDesc: 'تعذّر جلب سجلات العميل من الخادم',
    failedToLoadServer: 'فشل تحميل سجلات الخادم',
    failedToLoadServerDesc: 'تعذّر جلب سجلات الخادم من الخادم',
    levelDistribution: 'توزيع المستويات',
    loadingClient: 'جاري تحميل سجلات العميل...',
    loadingServer: 'جاري تحميل سجلات الخادم...',
    noActionData: 'لا توجد بيانات للإجراءات',
    noClientLogs: 'لا توجد سجلات عميل',
    noClientLogsActivityDesc: 'لم يتم تسجيل أي نشاط لسجلات العميل بعد',
    noComponentData: 'لا توجد بيانات للمكونات',
    noServerLogs: 'لا توجد سجلات خادم',
    noServerLogsActivityDesc: 'لم يتم تسجيل أي نشاط لسجلات الخادم بعد',
    noServiceData: 'لا توجد بيانات للخدمات',
    percentOfTotal: '% من الإجمالي',
    topActions: 'أهم الإجراءات',
    topComponents: 'أهم المكونات',
    topServices: 'أهم الخدمات',
    totalLogs: 'إجمالي السجلات',
  },
  gmail: {
    page: {
      title: 'Gmail',
      description: 'تصفح وإدارة رسائل Gmail المزامَنة.',
      empty_title: 'لا توجد رسائل بريد إلكتروني مزامَنة',
      empty_description:
        'لم تتم مزامنة أي رسائل بعد. قم بتشغيل المزامنة على موصل Gmail لتحميل الرسائل.',
      error_title: 'تعذّر تحميل الرسائل',
      no_connector_title: 'لم يُعثر على موصل Gmail',
      no_connector_description:
        'قم بتوصيل حساب Gmail في موصلات مساحة العمل لبدء تصفح بريدك الوارد.',
    },
    message: {
      from: 'من',
      to: 'إلى',
      date: 'التاريخ',
      subject: 'الموضوع',
      reply: 'رد',
      open_in_gmail: 'فتح في Gmail',
      unread: 'غير مقروء',
      attachments: 'المرفقات ({count})',
      download: 'تنزيل {name}',
      htmlIframeTitle: 'محتوى البريد الإلكتروني',
      toggleHtml: 'تبديل HTML',
      showHtml: 'عرض HTML',
      toggleImages: 'تبديل الصور',
      loadImages: 'تحميل الصور',
      imagesBlocked: 'تم حجب الصور',
    },
    actions: {
      summarize: 'تلخيص',
      draft_reply: 'صياغة رد',
      extract_tasks: 'استخراج بنود العمل',
      send_email: 'إرسال بريد إلكتروني',
      draft_sent: 'تم إنشاء المسودة — راجعها في الموافقات',
      draft_failed: 'فشل إنشاء المسودة',
    },
  },
  jira: {
    page: {
      title: 'Jira',
      description: 'استعرض وأدر تذاكر Jira المزامَنة.',
      empty_title: 'لا توجد تذاكر مزامَنة',
      empty_description:
        'لم تتم مزامنة أي تذاكر Jira بعد. شغّل المزامنة على موصّل Jira لتحميل التذاكر.',
      error_title: 'تعذّر تحميل التذاكر',
      no_connector_title: 'لم يُعثر على موصّل Jira',
      no_connector_description: 'قم بتوصيل حساب Jira في موصّلات مساحة العمل لبدء تصفح تذاكرك.',
    },
    ticket: {
      status: 'الحالة',
      priority: 'الأولوية',
      assignee: 'المُعيَّن إليه',
      reporter: 'المُبلِّغ',
      project: 'المشروع',
      sprint: 'السبرينت',
      story_points: 'نقاط القصة',
      due_date: 'الاستحقاق',
      labels: 'التسميات',
      issue_type: 'النوع',
      open_in_jira: 'فتح في Jira',
      unassigned: 'غير مُعيَّن',
      no_sprint: 'لا يوجد سبرينت',
    },
    actions: {
      summarize: 'تلخيص',
      write_comment: 'كتابة تعليق',
      extract_tasks: 'استخراج المهام',
    },
  },
  source_control: {
    page: {
      title: 'التحكم بالمصادر',
      description: 'تصفح طلبات السحب من GitHub وGitLab وBitbucket.',
      empty_title: 'لا توجد طلبات سحب مزامَنة',
      empty_description:
        'لم تتم مزامنة أي طلبات سحب بعد. شغّل المزامنة على موصّل التحكم بالمصادر لتحميل طلبات السحب.',
      error_title: 'تعذّر تحميل طلبات السحب',
      no_connector_title: 'لم يُعثر على موصّل تحكم بالمصادر',
      no_connector_description:
        'قم بتوصيل GitHub أو GitLab أو Bitbucket في موصّلات مساحة العمل لبدء تصفح طلبات السحب.',
    },
    pr: {
      author: 'المؤلف',
      source_branch: 'من',
      target_branch: 'إلى',
      reviewers: 'المراجعون',
      additions: 'الإضافات',
      deletions: 'الحذف',
      labels: 'التسميات',
      draft: 'مسودة',
      open_pr: 'فتح طلب السحب',
      state_open: 'مفتوح',
      state_closed: 'مغلق',
      state_merged: 'مدمج',
      review_approved: 'موافق عليه',
      review_changes: 'تغييرات مطلوبة',
      review_pending: 'في انتظار المراجعة',
    },
    actions: {
      review: 'مراجعة طلب السحب',
      summarize: 'تلخيص',
      extract_tasks: 'استخراج المهام',
    },
  },
  slack: {
    page: {
      title: 'Slack',
      description: 'استعرض وأدر رسائل Slack المزامَنة.',
      empty_title: 'لا توجد رسائل مزامَنة',
      empty_description:
        'لم تتم مزامنة أي رسائل Slack بعد. شغّل المزامنة على موصّل Slack لتحميل الرسائل.',
      error_title: 'تعذّر تحميل الرسائل',
      no_connector_title: 'لم يُعثر على موصّل Slack',
      no_connector_description:
        'قم بتوصيل مساحة عمل Slack في موصّلات مساحة العمل لبدء تصفح الرسائل.',
    },
    message: {
      channel: 'القناة',
      sender: 'من',
      date: 'التاريخ',
      thread_reply: 'رد على خيط',
      open_in_slack: 'فتح في Slack',
      reactions: 'التفاعلات',
    },
    actions: {
      summarize: 'تلخيص',
      reply: 'صياغة رد',
      extract_tasks: 'استخراج بنود العمل',
    },
  },
  confluence: {
    page: {
      title: 'Confluence',
      description: 'تصفح وإدارة صفحات Confluence المزامنة.',
      empty_title: 'لا توجد صفحات مزامنة',
      empty_description:
        'لم تتم مزامنة أي صفحات Confluence بعد. قم بتشغيل مزامنة على موصل Confluence.',
      error_title: 'تعذر تحميل الصفحات',
      no_connector_title: 'لم يتم العثور على موصل Confluence',
      no_connector_description:
        'اربط مساحة عمل Confluence في موصلات مساحة العمل لبدء تصفح الصفحات.',
    },
    article: {
      space: 'المساحة',
      author: 'المؤلف',
      modified_by: 'عدّله',
      version: 'الإصدار',
      labels: 'التسميات',
      parent: 'الأصل',
      open_page: 'فتح في Confluence',
    },
    actions: {
      summarize: 'تلخيص',
      extract_tasks: 'استخراج بنود العمل',
      write_comment: 'كتابة تعليق',
    },
  },
  docs: {
    page: {
      title: 'المستندات',
      description: 'تصفح وإدارة المستندات المزامنة من Google Drive وOneDrive وSharePoint.',
      empty_title: 'لا توجد مستندات مزامنة',
      empty_description:
        'لم تتم مزامنة أي مستندات بعد. قم بتشغيل مزامنة على موصل Drive أو SharePoint.',
      error_title: 'تعذر تحميل المستندات',
      no_connector_title: 'لم يتم العثور على موصل مستندات',
      no_connector_description:
        'اربط Google Drive أو OneDrive أو SharePoint في موصلات مساحة العمل لبدء تصفح المستندات.',
    },
    file: {
      owner: 'المالك',
      modified_by: 'عدّله',
      size: 'الحجم',
      type: 'النوع',
      open_file: 'فتح الملف',
      shared_with: 'مشارك مع',
      path: 'المسار',
    },
    actions: {
      summarize: 'تلخيص',
      extract_tasks: 'استخراج بنود العمل',
      draft_email: 'صياغة بريد إلكتروني',
    },
  },
  figma: {
    page: {
      title: 'فيغما',
      description: 'تصفح وإدارة ملفات تصميم فيغما المتزامنة.',
      empty_title: 'لا توجد تصاميم',
      empty_description: 'لم يتم مزامنة أي ملفات تصميم فيغما بعد.',
      error_title: 'فشل تحميل التصاميم',
      no_connector_title: 'فيغما غير متصل',
      no_connector_description: 'قم بتوصيل مساحة عمل فيغما لتصفح التصاميم.',
    },
    design: {
      team: 'الفريق',
      project: 'المشروع',
      modified_by: 'عدّل بواسطة',
      components: 'مكونات',
      open_in_figma: 'فتح في فيغما',
      last_updated: 'آخر تحديث',
    },
    actions: {
      summarize: 'تلخيص التصميم',
      extract_components: 'استخراج المكونات',
      draft_spec: 'صياغة المواصفات',
    },
  },
  workflow: {
    page: {
      title: 'سير عمل متعدد المصادر',
      description:
        'اختر كائنات من مزودي مساحة العمل المختلفين وشغّل إجراءات الذكاء الاصطناعي على السياق المجمّع.',
      empty_title: 'لم يتم العثور على كائنات',
      empty_description: 'لم تتم مزامنة أي كائنات من مساحة العمل بعد.',
      error_title: 'فشل تحميل الكائنات',
    },
    object: {
      add: 'إضافة',
      remove: 'إزالة',
      selected_count: 'كائنات محددة',
      clear_all: 'مسح الكل',
    },
    actions: {
      summarize_all: 'تلخيص الكل',
      extract_requirements: 'استخراج المتطلبات',
      draft_prd: 'صياغة وثيقة المتطلبات',
    },
  },
  gpuBadge: {
    cpuOnly: 'المعالج فقط',
    noGpu: 'لم يُكتشف GPU — انقر لعرض النماذج المحلية',
    vendor: {
      nvidia: 'إنفيديا',
      amd: 'AMD ROCm',
      metal: 'Metal',
      intel: 'Intel/Vulkan',
      unknown: 'GPU',
      cpu: 'المعالج',
    },
  },
  localFrontier: {
    title: 'النماذج المحلية المتقدمة',
    subtitle: 'تشغيل نماذج LLM المفتوحة (Kimi K2، GLM-5.1، DeepSeek V3.2/V4) محليًا.',
    loading: 'جارٍ تحميل الكتالوج…',
    catalogEmpty: 'لا توجد نماذج تطابق عوامل التصفية.',
    catalogError: 'تعذّر تحميل الكتالوج. تأكّد من تشغيل claw-llamacpp-service.',
    contextLength: 'رمز سياق',
    requiresRamGb: 'جيجابايت ذاكرة',
    sourceLink: 'هاجينج فيس',
    actions: {
      download: 'تنزيل',
      load: 'تحميل',
      unload: 'تفريغ',
      deleteWeights: 'حذف الأوزان',
      configure: 'إعدادات التشغيل',
    },
    download: { start: 'تنزيل', cancel: 'إلغاء', retry: 'إعادة المحاولة' },
    compat: { fits: 'مناسب لأجهزتك', warns: 'حدود الذاكرة', refuses: 'الأجهزة غير كافية' },
    qualityTier: { survival: 'الحد الأدنى', balanced: 'متوازن', best: 'أفضل' },
    preflight: {
      RAM_INSUFFICIENT: 'الذاكرة غير كافية لهذا النموذج.',
      DISK_INSUFFICIENT: 'مساحة القرص غير كافية (لا يمكن التجاوز).',
      GPU_INSUFFICIENT: 'لم يتم اكتشاف وحدة معالجة رسومية مناسبة.',
      BINARY_NOT_INSTALLED: 'لم يتم تثبيت ثنائي llama-server بعد.',
      RUNTIME_INCOMPATIBLE: 'البرامج المثبتة غير متوافقة مع هذا النموذج.',
    },
    override: {
      warning: 'الأجهزة لديك أقل من المتطلبات. لا تتجاوز إلا إذا كنت تفهم المخاطر.',
      confirmTypeSize: 'اكتب حجم النموذج بالجيجابايت لتأكيد التجاوز:',
    },
    delete: {
      confirm: 'حذف الأوزان؟',
      confirmTypePrompt: 'اكتب اسم النموذج (مثل glm-5.1:Q4_K_M) لتأكيد الحذف.',
    },
    hardware: {
      title: 'الأجهزة وبيئة التشغيل',
      subtitle: 'لقطة حية لجهازك ولثنائي llama.cpp.',
      refresh: 'تحديث',
      ram: 'الذاكرة',
      disk: 'القرص',
      cpu: 'المعالج',
      gpu: 'كرت الرسومات',
      binary: 'الثنائي',
      cores: 'نواة',
      noGpu: 'لم يُكتشف GPU',
      notInstalled: 'غير مثبَّت',
      loadedModel: 'النموذج المحمَّل',
      noLoadedModel: 'لا شيء محمَّل',
    },
    filters: {
      category: 'الفئة',
      qualityTier: 'مستوى الجودة',
      compatibleOnly: 'المتوافقة فقط',
      refreshCatalog: 'تحديث الكتالوج',
      refreshing: 'جارٍ التحديث…',
      allCategories: 'كل الفئات',
      allTiers: 'كل المستويات',
      categoryCoding: 'برمجة',
      categoryReasoning: 'استدلال',
      categoryThinking: 'تفكير',
      categoryGeneral: 'عام',
      categoryFileGen: 'إنشاء ملفات',
    },
    downloads: {
      title: 'التنزيلات النشطة',
      empty: 'لا توجد تنزيلات نشطة أو حديثة.',
      cancel: 'إلغاء',
      retry: 'إعادة المحاولة',
      remove: 'إغلاق',
      status: 'الحالة',
      bytes: 'البايتات',
      files: 'الملفات',
      rate: 'السرعة',
      eta: 'الوقت المتبقي',
      unknown: 'جارٍ التحضير…',
    },
    deleteDialog: {
      title: 'حذف الأوزان',
      description: 'سيؤدي هذا إلى إزالة الأوزان المنزَّلة من القرص بشكل دائم.',
      promptLabel: 'اكتب للتأكيد',
      placeholder: 'الاسم:الإصدار',
      cancel: 'إلغاء',
      confirm: 'حذف الأوزان',
      warning: 'لا يمكن التراجع. ستحتاج إلى إعادة التنزيل لاستخدام النموذج مجددًا.',
    },
    overrideDialog: {
      title: 'تجاوز فحص الأجهزة؟',
      description: 'جهازك لا يلبي المواصفات الموصى بها لهذا النموذج.',
      reasonsTitle: 'الأسباب:',
      cancel: 'إلغاء',
      proceed: 'تنزيل على أي حال',
    },
    configDialog: {
      title: 'إعدادات وقت التشغيل',
      description: 'ضبط معاملات llama.cpp للنموذج المحمَّل.',
      ngpuLayers: 'طبقات GPU',
      ngpuLayersHint: 'عدد الطبقات على GPU. اتركه فارغًا للتلقائي.',
      ctxSize: 'حجم السياق',
      ctxSizeHint: 'الحد الأقصى لنافذة السياق بالرموز.',
      threads: 'مسارات المعالج',
      threadsHint: 'عدد المسارات. اتركه فارغًا للتلقائي.',
      cpuMoe: 'MoE على المعالج',
      cpuMoeHint: 'تشغيل طبقات الخبراء على المعالج فقط.',
      customArgs: 'وسائط مخصصة',
      customArgsHint: 'وسائط llama-server إضافية (مع قائمة سماح).',
      cancel: 'إلغاء',
      save: 'حفظ',
    },
  },

  emailTemplates: {
    page: {
      title: 'قوالب البريد الإلكتروني',
      description:
        'نقاط بداية قابلة لإعادة الاستخدام (موضوع + نص) لرسائل البريد التي يصيغها الذكاء الاصطناعي. تُملأ {{placeholders}} عند استخدام القالب.',
      loading: 'جارٍ تحميل القوالب…',
      error: 'تعذر تحميل القوالب. حاول تحديث الصفحة.',
      empty: 'لا توجد قوالب بعد. أنشئ قالبًا للبدء.',
      create: 'قالب جديد',
      edit: 'تعديل',
      delete: 'حذف',
      deleting: 'جارٍ الحذف…',
      defaultBadge: 'افتراضي',
      subjectLabel: 'الموضوع',
    },
    dialog: {
      createTitle: 'إنشاء قالب',
      editTitle: 'تعديل القالب',
      nameLabel: 'الاسم',
      namePlaceholder: 'بريد المتابعة',
      subjectLabel: 'الموضوع',
      subjectPlaceholder: 'متابعة بخصوص {{topic}}',
      bodyLabel: 'النص',
      bodyPlaceholder: 'مرحبًا {{name}}،\n\nأتواصل معك مجددًا بخصوص {{topic}}…',
      defaultLabel: 'استخدام كافتراضي',
      save: 'حفظ',
      saving: 'جارٍ الحفظ…',
      cancel: 'إلغاء',
    },
  },

  inbox: {
    page: {
      title: 'صندوق وارد مساحة العمل',
      description:
        'Cross-provider feed of every recent workspace object — filter by provider, type, attention.',
      loading: 'جارٍ تحميل صندوق الوارد…',
      loadingMore: 'تحميل المزيد…',
      loadMore: 'تحميل المزيد',
      empty: 'لا توجد عناصر تطابق الفلاتر.',
      error: 'تعذّر تحميل صندوق الوارد. حاول التحديث.',
    },
    filter: {
      providers: 'المزود:',
      types: 'النوع:',
      needsAttention: 'يحتاج اهتمامًا',
      hasSuggestion: 'يحتوي على اقتراح',
      reset: 'إعادة ضبط الفلاتر',
    },
    row: {
      needsAttention: 'يحتاج اهتمامًا',
      hasSuggestion: 'يحتوي على اقتراح',
      mark: 'وضع علامة تحتاج اهتمامًا',
      unmark: 'إزالة علامة الاهتمام',
      openExternal: 'فتح',
      viewFile: 'عرض الملف',
    },
  },
  fileViewer: {
    loading: 'جارٍ تحميل الملف…',
    error: 'تعذر تحميل هذا الملف.',
    unsupported: 'المعاينة غير متاحة لهذا النوع من الملفات. استخدم التنزيل لفتحه محليًا.',
    download: 'تنزيل',
    close: 'إغلاق',
  },
  search: {
    page: {
      title: 'البحث الدلالي',
      description: 'ابحث في كل كائنات مساحة العمل — تضمينات محلية تحفظ الخصوصية.',
      placeholder: 'Type a natural-language question…',
      submit: 'بحث',
      searching: 'جارٍ البحث…',
      reset: 'إعادة الضبط',
      local: 'مدعوم بالتضمينات المحلية ({model})',
      noResults: 'لا توجد نتائج. جرب كلمات مختلفة.',
      error: 'فشل البحث. حاول مجددًا.',
    },
  },
  digest: {
    page: {
      title: 'الموجز',
      description: 'إيجاز الصباح: ما الذي تغيّر عبر كل مساحة عمل متصلة.',
      loading: 'جارٍ تحميل الموجز…',
      error: 'تعذّر تحميل الموجز.',
      noTodayDigest: 'لا يوجد موجز لليوم بعد. شغّل واحدًا أو انتظر تشغيل الكرون.',
      today: 'موجز اليوم',
      history: 'الموجزات السابقة',
      generatedAt: 'تم التوليد {ts}',
      sectionsCount: '{n} sections',
      triggerDaily: 'تشغيل الموجز اليومي',
      triggerWeekly: 'تشغيل الموجز الأسبوعي',
      triggering: 'جارٍ التوليد…',
      preferenceHint: 'التسليم اليومي: {hour}:00 ({tz})',
    },
    section: {
      highlights: 'أبرز النقاط',
      actionItems: 'المهام المطلوبة',
    },
  },
  adminAutomation: {
    dismiss: 'تجاهل',
    retry: 'إعادة المحاولة',
    policies: {
      title: 'سياسات إجراءات الذكاء الاصطناعي',
      description:
        'قواعد موافقة صارمة افتراضيًا. يمكن تعطيل الإعدادات الافتراضية للنظام ولكن لا يمكن حذفها.',
      loading: 'جارٍ تحميل السياسات…',
      error: 'تعذّر تحميل السياسات.',
      empty: 'لم يتم تكوين أي سياسات بعد.',
      systemDefault: 'الإعداد الافتراضي للنظام',
      priority: 'الأولوية {p}',
      providerRegex: 'نمط المزود (regex)',
      actionKindRegex: 'نمط نوع الإجراء (regex)',
      riskCeiling: 'سقف المخاطر',
      delete: 'حذف',
      cannotDelete: 'لا يمكن حذف الإعدادات الافتراضية للنظام',
      toggleActive: 'تبديل النشاط',
      toggleSucceeded: 'تم تحديث السياسة.',
      toggleFailed: 'تعذّر تحديث السياسة.',
      deleteSucceeded: 'تم حذف السياسة.',
      deleteFailed: 'تعذّر حذف السياسة.',
      mutationError: 'حدث خطأ أثناء تحديث السياسة.',
      addPolicy: 'إضافة سياسة',
      editPolicy: 'تعديل السياسة',
      createTitle: 'إنشاء سياسة',
      editTitle: 'تعديل السياسة',
      createDescription: 'حدّد قاعدة موافقة جديدة لإجراءات مساحة العمل المسوّدة بالذكاء الاصطناعي.',
      editDescription: 'حدّث قاعدة الموافقة هذه. لا يمكن تغيير الاسم.',
      createSucceeded: 'تم إنشاء السياسة.',
      createFailed: 'تعذّر إنشاء السياسة.',
      updateSucceeded: 'تم تحديث السياسة.',
      updateFailed: 'تعذّر تحديث السياسة.',
      submit: 'حفظ السياسة',
      submitting: 'جارٍ الحفظ…',
      nameLabel: 'الاسم',
      nameHelp: 'معرّف بأحرف صغيرة بصيغة kebab (مثال: deny-pii).',
      descriptionLabel: 'الوصف',
      kindFieldLabel: 'النوع',
      requireReasonLabel: 'اطلب سببًا للحالات العالية/الحرجة',
      isActiveLabel: 'نشط',
      riskMaxScoreLabel: 'أقصى درجة مخاطر (0–100)',
      priorityLabel: 'الأولوية (0–10000)',
      kindLabel: {
        DENY: 'رفض',
        ALLOW: 'سماح',
        AUTO_APPROVE: 'موافقة تلقائية',
      },
      riskLabel: {
        LOW: 'منخفض',
        MEDIUM: 'متوسط',
        HIGH: 'مرتفع',
        CRITICAL: 'حرج',
      },
    },
    rules: {
      title: 'قواعد تشغيل الاقتراحات',
      description: 'قواعد تحوّل أحداث المزوّد الخام إلى اقتراحات مسودة. حرّر أو عطّل أو احذف.',
      loading: 'جارٍ تحميل القواعد…',
      error: 'تعذّر تحميل القواعد.',
      empty: 'لم يتم تكوين أي قواعد بعد.',
      systemDefault: 'الإعداد الافتراضي للنظام',
      priority: 'الأولوية {p}',
      eventType: 'نوع الحدث',
      actionKind: 'نوع الإجراء',
      providerRegex: 'نمط المزود (regex)',
      contentRegex: 'نمط المحتوى (regex)',
      delete: 'حذف',
      cannotDelete: 'لا يمكن حذف الإعدادات الافتراضية للنظام',
      toggleActive: 'تبديل النشاط',
      toggleSucceeded: 'تم تحديث القاعدة.',
      toggleFailed: 'تعذّر تحديث القاعدة.',
      deleteSucceeded: 'تم حذف القاعدة.',
      deleteFailed: 'تعذّر حذف القاعدة.',
      mutationError: 'حدث خطأ أثناء تحديث القاعدة.',
      addRule: 'إضافة قاعدة',
      editRule: 'تعديل القاعدة',
      createTitle: 'إنشاء قاعدة',
      editTitle: 'تعديل القاعدة',
      createDescription: 'حدّد متى تتم مسودة اقتراح من حدث مساحة العمل.',
      editDescription: 'حدّث قاعدة التشغيل هذه. لا يمكن تغيير الاسم.',
      createSucceeded: 'تم إنشاء القاعدة.',
      createFailed: 'تعذّر إنشاء القاعدة.',
      updateSucceeded: 'تم تحديث القاعدة.',
      updateFailed: 'تعذّر تحديث القاعدة.',
      submit: 'حفظ القاعدة',
      submitting: 'جارٍ الحفظ…',
      nameLabel: 'الاسم',
      nameHelp: 'معرّف بأحرف صغيرة بصيغة kebab (مثال: github-pr-opened).',
      descriptionLabel: 'الوصف',
      eventTypeHelp: 'نمط الحدث مثل workspace.webhook.received.',
      actionKindHelp: 'نوع الإجراء مثل SUMMARIZE أو DRAFT أو REWRITE.',
      isActiveLabel: 'نشط',
      priorityLabel: 'الأولوية (0–10000)',
    },
  },
  adminWebhooks: {
    page: {
      title: 'تسليمات Webhook',
      description: 'افحص وأعد تشغيل تسليمات webhook الواردة من موفريك.',
      loading: 'جارٍ تحميل التسليمات…',
      error: 'فشل تحميل تسليمات webhook.',
      empty: 'لا توجد تسليمات تطابق مرشحاتك.',
    },
    filter: {
      providerPlaceholder: 'تصفية حسب الموفر (مثل GITHUB)',
      connectorPlaceholder: 'تصفية حسب معرف الموصل',
      signaturePlaceholder: 'حالة التوقيع',
      signatureAny: 'أي توقيع',
      signatureValid: 'توقيع صالح',
      signatureInvalid: 'توقيع غير صالح',
      clear: 'مسح المرشحات',
    },
    row: {
      deliveryId: 'معرف التسليم',
      connector: 'الموصل',
      bytes: 'بايتات الجسم',
      processedAt: 'تمت المعالجة في',
    },
    status: {
      accepted: 'مقبول',
      rejected: 'مرفوض',
      idempotent: 'متماثل',
    },
    replay: 'إعادة التشغيل',
    replaying: 'جارٍ إعادة التشغيل…',
    replaySucceeded: 'تم إعادة تشغيل تسليم الويب هوك.',
    replayFailed: 'تعذّر إعادة تشغيل تسليم الويب هوك.',
  },
  implHandoff: {
    page: {
      title: 'تسليمات البرمجة',
      description:
        'Approved IMPL_PROMPT actions delivered to chat threads, agent terminals, or clipboard.',
      loading: 'جارٍ تحميل التسليمات…',
      error: 'تعذّر تحميل التسليمات.',
      empty: 'لا توجد تسليمات بعد. وافق على IMPL_PROMPT في الطابور للبدء.',
      openThread: 'فتح محادثة ←',
    },
    picker: {
      title: 'إرسال IMPL_PROMPT إلى…',
      description: 'اختر مكان تسليم موجز البرمجة الموافق عليه.',
      cancel: 'إلغاء',
      CHAT: { hint: 'فتح محادثة جديدة محمّلة مسبقًا بالموجز' },
      AGENT: { hint: 'أرسل إلى طابور طرفية الجهاز المتصل' },
      CLIPBOARD: { hint: 'نسخ إلى الحافظة للاستخدام في أي أداة خارجية' },
    },
  },
  learned: {
    panel: {
      title: 'ما تعلّمناه',
      subtitle: '{count} preferences',
      description:
        'Patterns derived from your approve / reject / edit decisions. Used to personalise future suggestions.',
      loading: 'جارٍ التحميل…',
      error: 'تعذّر تحميل التفضيلات.',
      empty: 'سنتعلّم من موافقاتك — لا توجد تفضيلات بعد.',
    },
  },
};
