{
  "username": "اسم المستخدم",
  "password": "الباسورد",
  "login": "تسجيل الدخول",
  "confirm": "تأكيد",
  "cancel": "إلغاء",
  "close": "إغلاق",
  "save": "حفظ",
  "logout": "تسجيل خروج",
  "create": "إنشاء",
  "add": "إضافة",
  "remove": "إزالة",
  "update": "تحديث",
  "copy": "نسخ",
  "copied": "اتنسخ",
  "more": "المزيد",
  "download": "تحميل",
  "regenerate": "إعادة التوليد",
  "jsonEditor": "محرر JSON",
  "downloadImage": "تنزيل الصورة",
  "sort": "ترتيب",
  "remark": "ملاحظة",
  "enable": "مفعل",
  "protocol": "بروتوكول",
  "search": "بحث",
  "filter": "تصفية",
  "all": "الكل",
  "from": "من",
  "to": "إلى",
  "done": "تم",
  "loading": "جاري التحميل...",
  "refresh": "تحديث",
  "clear": "مسح",
  "second": "ثانية",
  "minute": "دقيقة",
  "hour": "ساعة",
  "day": "يوم",
  "check": "شيك",
  "indefinite": "غير محدد",
  "unlimited": "غير محدود",
  "none": "لا شيء",
  "qrCode": "كود QR",
  "info": "معلومات أكتر",
  "edit": "تحرير",
  "delete": "مسح",
  "reset": "إعادة تعيين",
  "noData": "لا توجد بيانات.",
  "copySuccess": "اتنسخ بنجاح",
  "sure": "متأكد؟",
  "encryption": "تشفير",
  "transmission": "نقل",
  "host": "المضيف",
  "path": "المسار",
  "camouflage": "تمويه",
  "status": "الحالة",
  "enabled": "مفعل",
  "disabled": "معطل",
  "depleted": "خلص",
  "depletingSoon": "هينتهي قريب",
  "offline": "غير متصل",
  "online": "متصل",
  "domainName": "اسم الدومين",
  "monitor": "المسمع IP",
  "certificate": "شهادة رقمية",
  "fail": "فشل",
  "comment": "تعليق",
  "success": "تم بنجاح",
  "lastOnline": "آخر متصل",
  "lastSubFetch": "آخر جلب للاشتراك",
  "getVersion": "جيب النسخة",
  "install": "تثبيت",
  "clients": "عملاء",
  "usage": "استخدام",
  "twoFactorCode": "الكود",
  "remained": "المتبقي",
  "security": "أمان",
  "emptyDnsDesc": "مفيش سيرفر DNS مضاف.",
  "emptyFakeDnsDesc": "مفيش سيرفر Fake DNS مضاف.",
  "emptyBalancersDesc": "مفيش موازن تحميل مضاف.",
  "somethingWentWrong": "حدث خطأ ما",
  "subscription": {
    "title": "معلومات الاشتراك",
    "subId": "معرّف الاشتراك",
    "status": "الحالة",
    "downloaded": "التنزيل",
    "uploaded": "الرفع",
    "expiry": "تاريخ الانتهاء",
    "totalQuota": "الحصة الإجمالية",
    "individualLinks": "روابط فردية",
    "active": "نشط",
    "inactive": "غير نشط",
    "unlimited": "غير محدود",
    "noExpiry": "بدون انتهاء",
    "copyAllConfigs": "نسخ جميع الإعدادات",
    "copyAllConfigsCopied": "تم نسخ جميع الإعدادات",
    "email": "البريد"
  },
  "menu": {
    "theme": "الثيم",
    "dashboard": "نظرة عامة",
    "inbounds": "الواردات",
    "clients": "العملاء",
    "groups": "المجموعات",
    "nodes": "النودز",
    "settings": "إعدادات اللوحة",
    "xray": "إعدادات Xray",
    "routing": "التوجيه",
    "outbounds": "الصادرات",
    "apiDocs": "توثيق API",
    "donate": "تبرع",
    "hosts": "المضيفات",
    "docs": "التوثيق",
    "openMenu": "فتح القائمة",
    "pinSidebar": "تثبيت الشريط الجانبي",
    "unpinSidebar": "إلغاء تثبيت الشريط الجانبي",
    "subFormats": "Sub Formats"
  },
  "pages": {
    "login": {
      "hello": "أهلا",
      "title": "أهلاً وسهلاً",
      "loginAgain": "انتهت صلاحية الجلسة، سجل دخول تاني",
      "toasts": {
        "invalidFormData": "تنسيق البيانات المدخلة مش صحيح.",
        "emptyUsername": "اسم المستخدم مطلوب",
        "emptyPassword": "الباسورد مطلوب",
        "wrongUsernameOrPassword": "اسم المستخدم أو كلمة المرور أو كود المصادقة الثنائية غير صحيح.",
        "successLogin": "لقد تم تسجيل الدخول إلى حسابك بنجاح."
      }
    },
    "index": {
      "cpu": "المعالج",
      "swap": "التبديل",
      "storage": "تخزين",
      "memory": "الذاكرة",
      "xrayStatus": "Xray",
      "stopXray": "إيقاف",
      "restartXray": "إعادة تشغيل",
      "xraySwitch": "النسخة",
      "xrayUpdates": "تحديثات Xray",
      "xraySwitchClickDesk": "اختار بحذر، النسخ القديمة ممكن ما تتوافقش مع الإعدادات الحالية.",
      "updatePanel": "تحديث البانل",
      "panelUpdateDesc": "ده هيحدث 3X-UI لآخر إصدار وهيعيد تشغيل خدمة البانل.",
      "currentPanelVersion": "إصدار البانل الحالي",
      "latestPanelVersion": "أحدث إصدار للبانل",
      "panelUpToDate": "البانل محدث لآخر إصدار",
      "devChannel": "قناة التطوير",
      "devChannelWarning": "تتابع نسخ التطوير كل كومِت على main وليست إصدارات مستقرة — لا يوجد رجوع تلقائي لإصدار أقدم.",
      "currentCommit": "الكومِت الحالي",
      "latestCommit": "أحدث كومِت",
      "updateChannelChanged": "تم تغيير قناة التحديث",
      "xrayStatusUnknown": "مش معروف",
      "xrayStatusRunning": "شغالة",
      "xrayStatusStop": "متوقفة",
      "xrayStatusError": "خطأ",
      "systemHistoryTitle": "تاريخ النظام",
      "historyTitleCpu": "استخدام المعالج",
      "historyTitleMem": "استخدام الذاكرة",
      "historyTitleNetwork": "عرض النطاق الترددي للشبكة",
      "historyTitlePackets": "حزم الشبكة",
      "historyTitleDisk": "إدخال/إخراج القرص",
      "historyTitleOnline": "العملاء المتصلون",
      "historyTitleLoad": "متوسط حمل النظام (1 / 5 / 15 دقيقة)",
      "historyTitleConnections": "الاتصالات النشطة (TCP / UDP)",
      "historyTitleDiskUsage": "استخدام مساحة القرص",
      "historyTabBandwidth": "عرض النطاق",
      "historyTabPackets": "الحزم",
      "historyTabDisk": "قرص I/O",
      "historyTabOnline": "متصل",
      "historyTabLoad": "الحِمل",
      "historyTabConnections": "الاتصالات",
      "historyTabDiskUsage": "استخدام القرص",
      "xrayMetricsTitle": "مقاييس Xray",
      "xrayTitleHeap": "ذاكرة الكومة المخصصة",
      "xrayTitleSys": "الذاكرة المحجوزة من نظام التشغيل",
      "xrayTitleObjects": "كائنات الكومة النشطة",
      "xrayTitleGcCount": "دورات GC المكتملة",
      "xrayTitleGcPause": "مدة توقف GC",
      "xrayTitleObservatory": "صحة الاتصال الصادر",
      "xrayTabHeap": "Heap",
      "xrayTabSys": "Sys",
      "xrayTabObjects": "الكائنات",
      "xrayTabGcCount": "عدد GC",
      "xrayTabGcPause": "توقف GC",
      "xrayTabObservatory": "المرصد",
      "xrayMetricsDisabled": "نقطة نهاية مقاييس Xray غير مهيأة",
      "xrayMetricsHint": "أضف كتلة metrics على المستوى الأعلى في إعدادات xray مع tag باسم metrics_out و listen على 127.0.0.1:11111، ثم أعد تشغيل xray.",
      "xrayObservatoryEmpty": "لا توجد بيانات Observatory بعد",
      "xrayObservatoryHint": "أضف كتلة observatory إلى إعدادات xray مع قائمة وسوم outbound للفحص، ثم أعد تشغيل xray.",
      "xrayObservatoryTagPlaceholder": "اختر outbound",
      "xrayObservatoryAlive": "نشط",
      "xrayObservatoryDead": "غير متصل",
      "xrayObservatoryLastSeen": "آخر مشاهدة",
      "xrayObservatoryLastTry": "آخر محاولة",
      "connectionCount": "إحصائيات الاتصال",
      "ipAddresses": "عناوين IP",
      "toggleIpVisibility": "بدل إظهار IP",
      "overallSpeed": "السرعة الكلية",
      "upload": "رفع",
      "download": "تنزيل",
      "sent": "مرسل",
      "received": "مستقبل",
      "xraySwitchVersionDialog": "هل تريد حقًا تغيير إصدار Xray؟",
      "xraySwitchVersionDialogDesc": "سيؤدي هذا إلى تغيير إصدار Xray إلى #version#.",
      "xraySwitchVersionPopover": "تم تحديث Xray بنجاح",
      "panelUpdateDialog": "هل فعلاً عايز تحدث البانل؟",
      "panelUpdateDialogDesc": "ده هيحدث 3X-UI للإصدار #version# وهيعيد تشغيل البانل.",
      "panelUpdateStartedPopover": "بدأ تحديث البانل",
      "panelUpdateFailedTitle": "فشل تحديث البانل",
      "panelUpdateFailedDesc": "لم يكتمل التحديث بنجاح. تحقق من سجلات الخادم، أو نفّذ الأمر «x-ui update» من سطر الأوامر.",
      "panelUpdateUnknownTitle": "تعذّر التأكد من اكتمال التحديث",
      "panelUpdateUnknownDesc": "لم تُبلغ اللوحة بنتيجة في الوقت المحدد. أعد تحميل الصفحة للتحقق من الإصدار الحالي، أو تحقق من سجلات الخادم.",
      "geofileUpdateDialog": "هل تريد حقًا تحديث ملف الجغرافيا؟",
      "geofileUpdateDialogDesc": "سيؤدي هذا إلى تحديث ملف #filename#.",
      "geofilesUpdateDialogDesc": "سيؤدي هذا إلى تحديث كافة الملفات.",
      "geofilesUpdateAll": "تحديث الكل",
      "geofileUpdatePopover": "تم تحديث ملف الجغرافيا بنجاح",
      "geodataTitle": "التحديث التلقائي لـ Geodata",
      "geodataHint": "يقوم Xray بتنزيل هذه الملفات حسب الجدول الزمني وإعادة تحميلها دون إعادة تشغيل. يجب أن تكون الروابط HTTPS. يجب أن يكون كل ملف موجوداً مسبقاً في مجلد bin حتى يتمكن Xray من تحديثه.",
      "geodataCron": "الجدولة (cron)",
      "geodataOutbound": "التنزيل عبر outbound (اختياري)",
      "geodataFile": "اسم الملف",
      "geodataAddFile": "إضافة ملف",
      "geodataSaveRestart": "حفظ وإعادة تشغيل Xray",
      "geodataConfirmTitle": "حفظ إعدادات geodata؟",
      "geodataConfirmContent": "سيتم تحديث قالب إعدادات Xray وإعادة تشغيل Xray.",
      "geodataInvalidUrl": "كل ملف يحتاج إلى رابط HTTPS.",
      "geodataInvalidFile": "يجب أن يكون اسم الملف اسماً بسيطاً مثل geosite_custom.dat (بدون مسارات).",
      "geodataInvalidCron": "يجب أن يتكون cron من 5 حقول، مثل 0 4 * * *",
      "geodataEmpty": "لا توجد ملفات مهيأة. في قواعد التوجيه يُشار إلى الملفات بالشكل ext:geosite_custom.dat:category.",
      "dontRefresh": "التثبيت شغال، متعملش Refresh للصفحة",
      "logs": "السجلات",
      "accessLogs": "سجلات الوصول",
      "autoUpdate": "تحديث تلقائي",
      "amneziawgLogs": "سجلات AmneziaWG",
      "amneziawgHandshake": "آخر مصافحة",
      "amneziawgInterface": "الواجهة",
      "amneziawgInbound": "الوارد",
      "amneziawgEndpoint": "نقطة الاتصال",
      "amneziawgIdle": "خامل",
      "amneziawgEvents": "الأحداث",
      "amneziawgNoPeers": "لا يوجد أقران AmneziaWG نشطون حاليًا",
      "amneziawgNoEvents": "لم تُسجَّل أحداث AmneziaWG بعد",
      "config": "الإعدادات",
      "backupTitle": "نسخ احتياطي واستعادة",
      "exportDatabase": "اخزن نسخة",
      "exportDatabaseDesc": "اضغط عشان تحمل ملف .db يحتوي على نسخة احتياطية لقاعدة البيانات الحالية على جهازك. نفس الملف ممكن كمان يترجع على لوحة شغالة بـ PostgreSQL.",
      "importDatabase": "استرجاع",
      "importDatabaseDesc": "اضغط عشان تختار وتحمل نسخة احتياطية .db أو ملف ترحيل (.dump) من جهازك لاسترجاع قاعدة البيانات.",
      "importDatabaseSuccess": "تم استيراد قاعدة البيانات بنجاح",
      "importDatabaseError": "حدث خطأ أثناء استيراد قاعدة البيانات",
      "readDatabaseError": "حدث خطأ أثناء قراءة قاعدة البيانات",
      "getDatabaseError": "حدث خطأ أثناء استرجاع قاعدة البيانات",
      "getConfigError": "حدث خطأ أثناء استرجاع ملف الإعدادات",
      "backupPostgresNote": "تعمل هذه اللوحة على PostgreSQL. يقوم «النسخ الاحتياطي» بتنزيل أرشيف pg_dump (.dump)، و«الاستعادة» تعيد تحميله عبر pg_restore. تقبل «الاستعادة» أيضًا قاعدة بيانات SQLite (.db) أو ملف ترحيل SQLite وتستورد بياناتها إلى PostgreSQL. يجب أن تكون أدوات عميل PostgreSQL (pg_dump و pg_restore) مثبَّتة على الخادم.",
      "exportDatabasePgDesc": "انقر لتنزيل نسخة PostgreSQL (.dump) من قاعدة بياناتك الحالية إلى جهازك.",
      "importDatabasePgDesc": "انقر لاختيار ورفع نسخة احتياطية من PostgreSQL (.dump) أو قاعدة بيانات SQLite (.db) أو ملف ترحيل SQLite لاستعادة قاعدة البيانات. سيؤدي هذا إلى استبدال جميع البيانات الحالية.",
      "migrationDownload": "تنزيل ملف الترحيل",
      "migrationDownloadPgDesc": "انقر لتنزيل قاعدة بيانات SQLite بامتداد .db مبنية من بيانات PostgreSQL الخاصة بك، جاهزة لتشغيل هذه اللوحة على SQLite.",
      "avg": "متوسط",
      "peak": "ذروة",
      "free": "متاح",
      "openSockets": "مقابس مفتوحة",
      "throughputSub": "إجمالي الواجهة",
      "avgWindow": "متوسط الفترة",
      "healthWarm": "{list} — مرتفع قليلاً",
      "healthCritical": "{list} — حرج",
      "panel": "اللوحة",
      "threads": "الخيوط",
      "uptime": "مدة التشغيل",
      "logLevelDebug": "Debug",
      "logLevelInfo": "Info",
      "logLevelNotice": "Notice",
      "logLevelWarning": "Warning",
      "logLevelError": "Error",
      "accessDirect": "DIRECT",
      "accessBlocked": "BLOCKED",
      "accessProxy": "PROXY",
      "importKeepHostSettings": "الاحتفاظ بإعدادات هذا الجهاز",
      "importKeepHostSettingsDesc": "يحتفظ بعناوين الاستماع والمنافذ والمسار الأساسي والشهادات وهوية العقدة الخاصة بهذه اللوحة بدلًا من أخذها من الملف المرفوع."
    },
    "inbounds": {
      "totalDownUp": "إجمالي المرسل/المستقبل",
      "totalUsage": "إجمالي الاستخدام",
      "inboundCount": "عدد الإدخالات",
      "operate": "القائمة",
      "enable": "مفعل",
      "remark": "ملاحظة",
      "node": "العقدة",
      "deployTo": "نشر على",
      "localPanel": "بانل محلي",
      "fallbacks": {
        "title": "Fallbacks",
        "empty": "لا توجد fallbacks بعد",
        "add": "إضافة fallback",
        "pickInbound": "اختر inbound",
        "matchAny": "أي",
        "destPlaceholder": "تلقائي (listen:port للفرع)",
        "needsTls": "تصبح الـ Fallbacks متاحة بعد اختيار TLS أو Reality في تبويب الأمان (فقط VLESS/Trojan عبر RAW)."
      },
      "protocol": "بروتوكول",
      "port": "المنفذ",
      "portMap": "تعيين المنفذ",
      "traffic": "حركة المرور",
      "speed": "السرعة",
      "expireDate": "المدة",
      "createdAt": "تاريخ الإنشاء",
      "updatedAt": "تاريخ التحديث",
      "resetTraffic": "إعادة تعيين حركة المرور",
      "addInbound": "أضف إدخال",
      "generalActions": "إجراءات عامة",
      "modifyInbound": "تعديل الإدخال",
      "deleteConfirmTitle": "حذف الإدخال \"{remark}\"؟",
      "deleteConfirmContent": "سيؤدي هذا إلى إزالة الإدخال وجميع عملائه. لا يمكن التراجع.",
      "resetConfirmTitle": "إعادة تعيين ترافيك \"{remark}\"؟",
      "resetConfirmContent": "يعيد عدادات الإرسال/الاستقبال لهذا الإدخال إلى 0.",
      "selectedCount": "{count} محدد",
      "selectAll": "تحديد الكل",
      "bulkDeleteConfirmTitle": "حذف {count} إدخال؟",
      "bulkDeleteConfirmContent": "سيؤدي هذا إلى إزالة الإدخالات المحددة وجميع عملائها. لا يمكن التراجع.",
      "cloneConfirmTitle": "نسخ الإدخال \"{remark}\"؟",
      "cloneConfirmContent": "ينشئ نسخة بمنفذ جديد وقائمة عملاء فارغة.",
      "delAllClients": "حذف جميع العملاء",
      "delAllClientsConfirmTitle": "حذف جميع العملاء البالغ عددهم {count} من \"{remark}\"؟",
      "delAllClientsConfirmContent": "يزيل كل عميل من هذا الإدخال ويحذف سجلات حركة المرور الخاصة بهم. يتم الاحتفاظ بالإدخال نفسه. لا يمكن التراجع عن هذا.",
      "attachClients": "إرفاق عملاء بـ…",
      "addClientsToGroup": "إضافة عملاء إلى مجموعة…",
      "attachClientsTitle": "إرفاق عملاء من «{remark}»",
      "attachClientsDesc": "يربط نفس {count} عميل (UUID/كلمة المرور وحركة المرور المشتركة) بالواردات المحددة. يبقون في هذا الوارد أيضاً.",
      "attachClientsTargets": "الواردات الهدف",
      "attachClientsNoTargets": "لا توجد واردات متوافقة أخرى للإرفاق.",
      "attachClientsResult": "أُرفق {attached}، تم تخطي {skipped}.",
      "attachClientsResultMixed": "أُرفق {attached}، تخطي {skipped}، أخطاء {errors}.",
      "attachClientsSelectLabel": "العملاء للإرفاق",
      "attachClientsSearchPlaceholder": "ابحث بالبريد أو التعليق",
      "attachClientsStatusDisabled": "معطل",
      "attachClientsSelectedCount": "{selected} من {total} محدد",
      "attachExistingClients": "إرفاق العملاء الحاليين…",
      "attachExistingTitle": "إرفاق العملاء الحاليين بـ «{remark}»",
      "attachExistingDesc": "يرفق العملاء الحاليين ({count} متاح) بهذا الوارد — بنفس UUID/كلمة المرور وحركة المرور المشتركة. يتم تخطي العملاء الموجودين عليه بالفعل.",
      "attachExistingNoClients": "لا يوجد عملاء بعد. أنشئ عملاء أولاً ثم أرفقهم هنا.",
      "attachExistingStatusAttached": "مُرفق بالفعل",
      "detachClients": "فصل العملاء",
      "detachClientsTitle": "فصل عملاء من «{remark}»",
      "detachClientsDesc": "يزيل العميل (العملاء) المحدد من هذا الوارد فقط. تُحفظ سجلات العملاء (استخدم Delete للإزالة الكاملة). المصدر يحتوي على {count} عميل إجمالاً.",
      "detachClientsResult": "فُصل {detached}، تم تخطي {skipped}.",
      "detachClientsResultMixed": "فُصل {detached}، تخطي {skipped}، أخطاء {errors}.",
      "detachClientsSelectLabel": "العملاء للفصل",
      "exportLinksTitle": "تصدير روابط الإدخال",
      "exportSubsTitle": "تصدير روابط الاشتراك",
      "exportAllLinksTitle": "تصدير كل روابط الإدخالات",
      "exportAllSubsTitle": "تصدير كل روابط الاشتراكات",
      "exportAllLinksFileName": "جميع-الواردات",
      "exportAllSubsFileName": "جميع-الواردات-Subs",
      "inboundJsonTitle": "JSON الوارد",
      "resetTrafficContent": "متأكد إنك عايز تعيد ضبط الترافيك؟",
      "copyLink": "انسخ الرابط",
      "address": "العنوان",
      "network": "الشبكة",
      "destinationPort": "بورت الوجهة",
      "targetAddress": "عنوان الهدف",
      "monitorDesc": "سيبها فاضية لو عايز تستمع على كل الـ IPs",
      "meansNoLimit": "= غير محدود. (الوحدة: GB)",
      "totalFlow": "إجمالي التدفق",
      "leaveBlankToNeverExpire": "سيبها فاضية عشان ماتنتهيش",
      "certificatePath": "مسار الملف",
      "certificateContent": "محتوى الملف",
      "publicKey": "المفتاح العام",
      "privatekey": "المفتاح الخاص",
      "client": "عميل",
      "export": "تصدير كل الروابط",
      "clone": "استنساخ",
      "resetAllTraffic": "إعادة ضبط ترافيك كل الإدخالات",
      "resetAllTrafficTitle": "إعادة ضبط ترافيك كل الإدخالات",
      "resetAllTrafficContent": "متأكد إنك عايز تعيد ضبط الترافيك لكل الإدخالات؟",
      "email": "البريد",
      "IPLimit": "تحديد IP",
      "IPLimitlog": "سجل IP",
      "IPLimitlogclear": "امسح السجل",
      "setDefaultCert": "استخدم شهادة البانل",
      "setDefaultCertEmpty": "لا توجد شهادة معدّة للوحة. عينّ واحدة من الإعدادات أولاً.",
      "streamTab": "تدفق",
      "securityTab": "الأمان",
      "sniffingTab": "تنصت",
      "sniffingMetadataOnly": "البيانات الوصفية فقط",
      "sniffingRouteOnly": "التوجيه فقط",
      "sniffingIpsExcluded": "IP المستثناة",
      "sniffingDomainsExcluded": "النطاقات المستثناة",
      "decryption": "فك التشفير",
      "encryption": "التشفير",
      "vlessAuthX25519": "X25519 (native)",
      "vlessAuthMlkem768": "ML-KEM-768 (native)",
      "vlessAuthX25519Xorpub": "X25519 (xorpub)",
      "vlessAuthX25519Random": "X25519 (random)",
      "vlessAuthMlkem768Xorpub": "ML-KEM-768 (xorpub)",
      "vlessAuthMlkem768Random": "ML-KEM-768 (random)",
      "vlessAuthCustom": "مخصص",
      "vlessAuthSelected": "المحدد: {auth}",
      "vlessAuthGenerate": "إنشاء المفاتيح",
      "vlessAuthGenerateButton": "إنشاء",
      "advanced": {
        "title": "أقسام JSON للاتصال الوارد",
        "subtitle": "JSON الكامل للاتصال الوارد ومحررات مخصصة لـ settings و sniffing و streamSettings.",
        "all": "الكل",
        "allHelp": "كائن الاتصال الوارد الكامل بكل الحقول في محرر واحد.",
        "settings": "الإعدادات",
        "settingsHelp": "غلاف كتلة settings في Xray:",
        "sniffing": "Sniffing",
        "sniffingHelp": "غلاف كتلة sniffing في Xray:",
        "stream": "Stream",
        "streamHelp": "غلاف كتلة stream في Xray:"
      },
      "subSortIndex": "ترتيب الاشتراك",
      "inboundInfo": "معلومات الإدخال",
      "exportInbound": "تصدير الإدخال",
      "import": "استيراد",
      "importInbound": "استيراد إدخال",
      "periodicTrafficResetTitle": "إعادة تعيين حركة المرور",
      "periodicTrafficResetDay": "يوم إعادة التعيين الشهري",
      "periodicTrafficReset": {
        "never": "أبداً",
        "daily": "يومياً",
        "weekly": "أسبوعياً",
        "monthly": "شهرياً",
        "hourly": "كل ساعة"
      },
      "toasts": {
        "obtain": "تم الحصول عليه",
        "updateSuccess": "تم التحديث بنجاح",
        "logCleanSuccess": "تم مسح السجل",
        "inboundUpdateSuccess": "تم تحديث الوارد بنجاح",
        "inboundCreateSuccess": "تم إنشاء الوارد بنجاح",
        "bulkDeleted": "تم حذف {count} إدخال",
        "bulkDeletedMixed": "تم حذف {ok}, وفشل {failed}",
        "clonedMany": "تم استنساخ {count} إدخال",
        "clonedMixed": "تم استنساخ {ok}, وفشل {failed}",
        "inboundDeleteSuccess": "تم حذف الوارد بنجاح",
        "inboundClientAddSuccess": "تمت إضافة عميل(عملاء) وارد",
        "inboundClientDeleteSuccess": "تم حذف عميل وارد",
        "inboundClientUpdateSuccess": "تم تحديث عميل وارد",
        "savedNodeOfflineWillSync": "تم الحفظ محليًا. إحدى العُقد الداعمة غير متصلة أو معطّلة — ستتم مزامنة التغيير بمجرد إعادة الاتصال.",
        "resetAllClientTrafficSuccess": "تم إعادة تعيين كل حركة المرور من العميل",
        "resetAllTrafficSuccess": "تم إعادة تعيين كل حركة المرور",
        "resetInboundClientTrafficSuccess": "تم إعادة تعيين حركة المرور",
        "resetInboundTrafficSuccess": "تم إعادة تعيين حركة مرور الداخل",
        "trafficGetError": "خطأ في الحصول على حركات المرور",
        "getNewX25519CertError": "حدث خطأ أثناء الحصول على شهادة X25519.",
        "getNewmldsa65Error": "حدث خطاء في الحصول على mldsa65.",
        "getNewVlessEncError": "حدث خطأ أثناء الحصول على VlessEnc.",
        "scanRealityTargetError": "فشل فحص هدف REALITY.",
        "scanRealityTargetFeasible": "الهدف مناسب — تم ملء الهدف وSNI.",
        "scanRealityTargetNotFeasible": "الهدف قابل للوصول لكنه غير مناسب لـ REALITY.",
        "scanRealityTargetPrivate": "الهدف يعمل لكنه في شبكة خاصة/محلية.",
        "invalidClientField": "العميل {client}: الحقل {field} — {reason}",
        "invalidField": "{field} — {reason}",
        "moreIssues": "{message}  (+{count} أخرى)"
      },
      "form": {
        "moveUp": "أعلى",
        "moveDown": "أسفل",
        "addAll": "إضافة الكل",
        "addAllFallbackTooltip": "أضف صف fallback لكل وارد مؤهل لم يتم ربطه بعد",
        "peers": "Peers",
        "addPeer": "إضافة peer",
        "keepAlive": "Keep-alive",
        "autoSystemRoutesTooltip": "ويندوز فقط. تُضاف CIDR تلقائياً إلى جدول التوجيه ليمر المرور المطابق عبر TUN.",
        "autoOutboundsInterface": "واجهة صادر تلقائية",
        "autoOutboundsInterfaceTooltip": "الواجهة الفعلية لحركة المرور الصادرة. استخدم 'auto' للاكتشاف؛ يتم تفعيلها تلقائياً عند تعيين Auto system routes.",
        "rewriteAddress": "إعادة كتابة العنوان",
        "rewritePort": "إعادة كتابة المنفذ",
        "allowedNetwork": "الشبكة المسموح بها",
        "followRedirect": "اتبع إعادة التوجيه",
        "accounts": "الحسابات",
        "allowTransparent": "السماح بالشفاف",
        "encryptionMethod": "طريقة التشفير",
        "fakeTlsDomain": "نطاق FakeTLS (SNI)",
        "mtprotoSecret": "المفتاح السري",
        "mtgDomainFrontingIp": "عنوان IP لـ Domain fronting",
        "mtgDomainFrontingPort": "منفذ Domain fronting",
        "mtgDomainFrontingProxyProtocol": "بروتوكول PROXY لـ Domain fronting",
        "mtgDomainFrontingHint": "المكان الذي يرسل إليه mtg حركة المرور غير الخاصة بتيليجرام — مثل موقع NGINX الوهمي لديك. اترك حقل IP فارغًا لاستخدام نطاق FakeTLS عبر DNS؛ المنفذ الافتراضي هو 443.",
        "mtgProxyProtocolListener": "قبول بروتوكول PROXY (المستمع)",
        "mtgPreferIp": "تفضيل IP",
        "mtgDebug": "سجل التصحيح",
        "mtgRouteThroughXray": "التوجيه عبر Xray",
        "mtgRouteThroughXrayHint": "أرسل حركة Telegram لهذا البروكسي عبر Xray ليتبع قواعد التوجيه لديك. يتصل وسيط mtg عبر جسر SOCKS محلي يحمل وسم هذا الاتصال الوارد؛ استخدم ذلك الوسم في تبويب التوجيه للقواعد المتقدمة.",
        "mtgRouteOutbound": "الصادر",
        "mtgRouteOutboundHint": "اختياري. إجبار حركة Telegram على الخروج عبر هذا الصادر (أو الموازِن). اتركه فارغًا لتقرر قواعد التوجيه.",
        "mtgRouteOutboundPlaceholder": "استخدام قواعد التوجيه",
        "mtprotoFakeTlsDomainHint": "نطاق FakeTLS الافتراضي المستخدم لإنشاء سر عميل جديد. يمكن لكل عميل استخدام نطاقه الخاص.",
        "mtgThrottleMaxConnections": "الحد الأقصى للاتصالات",
        "mtgThrottleMaxConnectionsHint": "تحديد الاتصالات المتزامنة لجميع المستخدمين بتوزيع عادل. القيمة 0 تعطّل الميزة.",
        "mtgAdTagInvalid": "يجب أن تتكوّن العلامة الإعلانية من 32 حرفًا ست عشريًا بالضبط.",
        "mtgPublicIpv4": "عنوان IPv4 العام",
        "mtgPublicIpv6": "عنوان IPv6 العام",
        "mtgPublicIpHint": "العنوان العام لهذا الخادم الذي يمكن الوصول إليه، ويُستخدم بواسطة البروكسي الوسيط للعلامة الإعلانية. اتركه فارغًا ليكتشفه mtg تلقائيًا.",
        "visionTestseed": "Vision testseed",
        "version": "الإصدار",
        "udpIdleTimeout": "UDP idle timeout (ثانية)",
        "masquerade": "Masquerade",
        "type": "النوع",
        "upstreamUrl": "Upstream URL",
        "rewriteHost": "إعادة كتابة Host",
        "skipTlsVerify": "تخطي التحقق من TLS",
        "directory": "الدليل",
        "statusCode": "رمز الحالة",
        "body": "Body",
        "headers": "الترويسات",
        "proxyProtocol": "Proxy Protocol",
        "requestVersion": "إصدار الطلب",
        "requestMethod": "طريقة الطلب",
        "requestPath": "مسار الطلب",
        "requestHeaders": "ترويسات الطلب",
        "responseVersion": "إصدار الاستجابة",
        "responseStatus": "حالة الاستجابة",
        "responseReason": "سبب الاستجابة",
        "responseHeaders": "ترويسات الاستجابة",
        "heartbeatPeriod": "فترة Heartbeat",
        "serviceName": "اسم الخدمة",
        "authority": "Authority",
        "multiMode": "Multi Mode",
        "maxBufferedUpload": "الحد الأقصى للرفع المخزن",
        "maxUploadSize": "حجم الرفع الأقصى (بايت)",
        "streamUpServer": "Stream-Up Server",
        "serverMaxHeaderBytes": "أقصى بايت ترويسة الخادم",
        "paddingBytes": "بايتات Padding",
        "uplinkHttpMethod": "Uplink HTTP method",
        "paddingObfsMode": "وضع تشويش Padding",
        "paddingKey": "Padding Key",
        "paddingHeader": "Padding Header",
        "paddingPlacement": "موضع Padding",
        "paddingMethod": "طريقة Padding",
        "sessionPlacement": "Session Placement",
        "sessionKey": "Session Key",
        "sessionIDTable": "جدول معرّف الجلسة",
        "sessionIDTableHint": "مجموعة الأحرف لتوليد معرّف الجلسة: اسم معرّف مسبقًا (ALPHABET، Base62، hex، number، …) أو سلسلة ASCII. اتركه فارغًا لاستخدام الإعداد الافتراضي لـ xray-core.",
        "sessionIDLength": "طول معرّف الجلسة",
        "sessionIDLengthHint": "طول أو نطاق (مثل 8-16) لمعرّف الجلسة المُولَّد. يُستخدم فقط عند تعيين جدول معرّف الجلسة؛ يجب أن يكون الحد الأدنى أكبر من 0.",
        "sequencePlacement": "Sequence Placement",
        "sequenceKey": "Sequence Key",
        "uplinkDataPlacement": "Uplink Data Placement",
        "uplinkDataKey": "Uplink Data Key",
        "noSseHeader": "بدون ترويسة SSE",
        "ttiMs": "TTI (ms)",
        "uplinkMbps": "رفع (MB/s)",
        "downlinkMbps": "تنزيل (MB/s)",
        "cwndMultiplier": "معامل CWND",
        "maxSendingWindow": "أقصى نافذة إرسال",
        "externalProxy": "وكيل خارجي",
        "forceTls": "فرض TLS",
        "fingerprint": "بصمة",
        "defaultOption": "افتراضي",
        "routeMark": "Route Mark",
        "tcpKeepAliveInterval": "TCP Keep Alive Interval",
        "tcpKeepAliveIdle": "TCP Keep Alive Idle",
        "tcpMaxSeg": "TCP Max Seg",
        "tcpUserTimeout": "TCP User Timeout",
        "tcpWindowClamp": "TCP Window Clamp",
        "tcpWindowClampHint": "اتركها 0 لاستخدام الإعداد الافتراضي لنظام التشغيل. القيم غير الصفرية تحدّ من نافذة استقبال TCP المُعلَنة؛ وقيم مثل 600 (من مثال وثائق Xray) قد تنهار معها سرعة النقل على الوصلات عالية زمن الاستجابة.",
        "tcpFastOpen": "TCP Fast Open",
        "multipathTcp": "Multipath TCP",
        "penetrate": "Penetrate",
        "v6Only": "V6 فقط",
        "tcpCongestion": "TCP Congestion",
        "dialerProxy": "Dialer Proxy",
        "trustedXForwardedFor": "X-Forwarded-For موثوق",
        "trustedXForwardedForHint": "ثِق بترويسة الطلب هذه للحصول على IP الحقيقي للعميل (مثل CF-Connecting-IP خلف CDN الخاص بـ Cloudflare). تعمل فقط على وسائل النقل WebSocket و HTTPUpgrade و XHTTP و gRPC. اتركها فارغة لتجاهل ترويسات التمرير.",
        "proxyProtocolHint": "اقبل ترويسة PROXY protocol لمعرفة IP الحقيقي للعميل من نفق/مُرحِّل L4 أعلى (HAProxy و gost و nginx-stream و Xray dokodemo-door) أو Cloudflare Spectrum. يجب على الجهة الأعلى إرسال PROXY protocol. تعمل على TCP و WebSocket و HTTPUpgrade و gRPC؛ ولا تعمل على mKCP.",
        "realClientIp": "IP الحقيقي للعميل",
        "realClientIpHint": "احصل على IP الحقيقي للزائر عندما يصل المرور إلى هذا الـ inbound عبر CDN أو مُرحِّل، بدلاً من تسجيل عنوان الوسيط. اختر إعدادًا مسبقًا لملء حقول sockopt المقابلة أدناه. لا تُرسَل هذه الحقول أبدًا إلى العملاء في الاشتراكات.",
        "realClientIpPresetOff": "إيقاف / مباشر",
        "realClientIpPresetCloudflare": "Cloudflare CDN",
        "realClientIpPresetProxyProtocol": "مُرحِّل L4 / Spectrum (PROXY)",
        "realClientIpTrustedHeaderTransportWarn": "Trusted X-Forwarded-For تعمل فقط على WebSocket و HTTPUpgrade و XHTTP. على وسيلة النقل الحالية يتم تجاهل هذه الترويسة.",
        "realClientIpProxyProtocolTransportWarn": "PROXY protocol غير مدعوم على وسيلة النقل هذه (mKCP). استخدم TCP/RAW أو WebSocket أو HTTPUpgrade أو gRPC أو XHTTP.",
        "addressPortStrategy": "استراتيجية العنوان+المنفذ",
        "tryDelayMs": "تأخير المحاولة (ms)",
        "prioritizeIPv6": "أولوية IPv6",
        "interleave": "Interleave",
        "maxConcurrentTry": "أقصى محاولات متزامنة",
        "customSockopt": "sockopt مخصص",
        "addCustomOption": "إضافة خيار مخصص",
        "serverNameIndication": "SNI",
        "cipherSuites": "Cipher Suites",
        "autoOption": "تلقائي",
        "minMaxVersion": "إصدار أدنى/أقصى",
        "rejectUnknownSni": "رفض SNI غير معروف",
        "disableSystemRoot": "تعطيل System Root",
        "sessionResumption": "استئناف الجلسة",
        "oneTimeLoading": "تحميل لمرة واحدة",
        "usageOption": "خيار الاستخدام",
        "buildChain": "بناء السلسلة",
        "echKey": "ECH key",
        "echConfig": "تكوين ECH",
        "pinnedPeerCertSha256": "SHA-256 لشهادة النظير المثبَّتة",
        "pinnedPeerCertSha256Tip": "تجزئات SHA-256 لشهادة النظير كسلسلة سداسية عشرية (مثل e8e2d3…)، مفصولة بفواصل. للوحة فقط — لا تُكتب في إعدادات xray على الخادم، لكنها تُضمَّن في روابط المشاركة ليتمكَّن العملاء من تثبيت الشهادة.",
        "pinnedPeerCertSha256Placeholder": "تجزئة (تجزئات) سداسية عشرية، مفصولة بفواصل",
        "getNewEchCert": "احصل على شهادة ECH جديدة",
        "show": "عرض",
        "xver": "Xver",
        "target": "الهدف",
        "maxTimeDiff": "أقصى فرق زمن (ms)",
        "minClientVer": "أدنى إصدار للعميل",
        "maxClientVer": "أقصى إصدار للعميل",
        "minClientVerHint": "تركه فارغًا لا يعني بلا قيود: سيفرض Xray-core الحد الأدنى المدمج في إصدار النواة الذي تشغّله (26.3.27 في الإصدارات الحالية) ويرفض العملاء الذين يبلغون عن إصدار أقدم — بما في ذلك النوى الخارجية مثل Mihomo و sing-box. القيمة 1.0.0 تقبلها، مقابل السماح ببصمات TLS قديمة.",
        "maxClientVerHint": "تركه فارغًا يعني بلا حد أقصى. إذا عُيّن، يجب ألا يقل عن الحد الأدنى الفعلي — أدنى إصدار للعميل، أو الحد الأدنى المدمج في Xray-core عندما يكون ذلك الحقل فارغًا — وإلا سيُرفض جميع العملاء.",
        "clientVerInvalid": "يجب أن يتكون إصدار العميل من ثلاثة أرقام كحد أقصى مفصولة بنقاط، كل منها 0-255 (مثل 26.3.27)",
        "maxClientVerBelowMin": "أقصى إصدار للعميل يجب ألا يقل عن أدنى إصدار للعميل",
        "shortIds": "Short IDs",
        "realityTargetHint": "مطلوب. يجب أن يتضمّن منفذًا (مثل example.com:443). بدون منفذ يرفض Xray-core البدء.",
        "realityTargetRequired": "هدف REALITY مطلوب",
        "realityTargetNeedsPort": "يجب أن يتضمّن هدف REALITY منفذًا (مثل example.com:443)",
        "realityTargetInvalidPort": "هدف REALITY يحتوي على منفذ غير صالح",
        "scan": "فحص",
        "findTargets": "البحث عن أهداف",
        "scanModalTitle": "ماسح أهداف REALITY",
        "scanModalDesc": "تحقق من نطاق، أو افحص نطاق IP / CIDR لاكتشاف أهداف REALITY جديدة من شهاداتها. اترك الحقل فارغًا لفحص المرشحين الشائعين.",
        "scanDiscoverPlaceholder": "IP أو CIDR أو نطاق — اتركه فارغًا للمرشحين الشائعين",
        "scanStatus": "الحالة",
        "scanFeasible": "مناسب",
        "scanNotFeasible": "غير مناسب",
        "scanCurve": "تبادل المفاتيح",
        "scanCert": "الشهادة",
        "scanCertInvalid": "غير موثوق",
        "scanCertExpiry": "انتهاء صلاحية الشهادة",
        "scanSniUsed": "SNI المستخدم",
        "scanPrivateNote": "تم الفحص عبر شبكة خاصة/محلية — هذا العنوان غير قابل للوصول من الإنترنت.",
        "scanPrivateConfirmTitle": "الهدف في شبكة محلية",
        "scanPrivateConfirmContent": "يشير \"{target}\" إلى عنوان خاص أو محلي. سيتجاوز الفحص حماية SSRF في اللوحة لهذا الاختبار فقط. هل تريد المتابعة؟",
        "scanLatency": "زمن الاستجابة",
        "scanUse": "استخدام",
        "scanRescan": "إعادة الفحص",
        "spiderX": "SpiderX",
        "spiderXHint": "بذرة لكل عميل — تشتق اللوحة مسار spx فريدًا لكل عميل منها؛ أعد التوليد لتدوير مسارات الجميع",
        "getNewCert": "احصل على شهادة جديدة",
        "mldsa65Seed": "mldsa65 Seed",
        "mldsa65Verify": "mldsa65 Verify",
        "getNewSeed": "احصل على Seed جديد",
        "listenHelp": "يمكنك أيضًا إدخال مسار Unix socket (مثل /run/xray/in.sock)، أو اسم socket مجرد مسبوقًا بـ @ (مثل @xray/in.sock)، للاستماع على socket بدلاً من منفذ TCP — في هذه الحالة اضبط المنفذ على 0.",
        "shareAddrStrategy": "استراتيجية عنوان المشاركة",
        "shareAddrStrategyHelp": "تحدد العنوان الذي يُكتب في روابط المشاركة المصدّرة ورموز QR ومخرجات الاشتراك.",
        "shareAddr": "عنوان مشاركة مخصص",
        "shareAddrHelp": "يُستخدم فقط عندما تكون استراتيجية عنوان المشاركة مخصصة. أدخل اسم مضيف أو عنوان IP بدون بروتوكول أو منفذ.",
        "subSortIndex": "ترتيب الروابط في الاشتراك",
        "subSortIndexHelp": "موضع روابط هذا الوارد في مخرجات الاشتراك (صفحة الاشتراك وتطبيقات العملاء). القيم الأقل تظهر أولاً، والقيم المتساوية تحافظ على ترتيب الإنشاء. لا يؤثر على قائمة الواردات في اللوحة.",
        "disableFlow": "تعطيل تدفق XTLS",
        "disableFlowHelp": "استثناء هذا الـ inbound من الحقن التلقائي لـ xtls-rprx-vision، حتى عندما يكون النقل قادرًا على الـ flow (مثل inbound من نوع XHTTP عبر نفق مع تشفير VLESS). يحتفظ العملاء بـ Vision على باقي الـ inbounds القادرة ضمن نفس الاشتراك. لـ VLESS فقط.",
        "shareAddrStrategyOptions": {
          "node": "عنوان العقدة",
          "listen": "عنوان استماع الوارد",
          "custom": "مخصص"
        },
        "echSockopt": "ECH Sockopt",
        "echSockoptTip": "خيارات السوكيت للاتصال اللي Xray بتستخدمه عشان تجيب قائمة إعدادات ECH (مثلاً توجيه الاستعلام عبر صادر dialerProxy). سيبه متعطّل عشان تستخدم الإعدادات الافتراضية.",
        "curvePreferences": "تفضيلات المنحنى",
        "curvePreferencesTip": "بتقصر منحنيات تبادل مفاتيح TLS اللي السيرفر بيعرضها، بترتيب الأفضلية (مثلاً X25519MLKEM768, X25519). سيبه فاضي عشان تستخدم الإعدادات الافتراضية لـ Xray-core.",
        "masterKeyLog": "سجل المفتاح الرئيسي",
        "masterKeyLogTip": "المسار اللي هتتكتب فيه مفاتيح TLS الرئيسية (بصيغة SSLKEYLOGFILE) عشان التصحيح باستخدام Wireshark. سيبه فاضي في الإنتاج — لإنه بيخلي أي حد عنده الملف يقدر يفك تشفير المرور.",
        "verifyPeerCertByName": "التحقق من شهادة النظير بالاسم",
        "verifyPeerCertByNameTip": "بيقول للعملاء يتحققوا من شهادة السيرفر مقابل الاسم ده بدل الـ SNI. الأسماء بتتفصل بفاصلة. للوحة بس — بيتضاف في روابط المشاركة (vcn). ده البديل الحديث لـ allowInsecure اللي شالته Xray بعد 2026-06-01.",
        "pinFromCert": "املأ من شهادة الوارد ده",
        "pinFromRemote": "اجلب الهاش عبر ping على الـ SNI (xray tls ping)",
        "pinFromRemoteNoSni": "حدّد الـ SNI (serverName) الأول عشان تعمل ping للشهادة البعيدة.",
        "pinFromRemoteFailed": "تعذّر جلب هاش الشهادة البعيدة.",
        "limitFallback": "تحديد الـ Fallback",
        "limitFallbackUpload": "تحديد رفع الـ Fallback",
        "limitFallbackDownload": "تحديد تنزيل الـ Fallback",
        "afterBytes": "بعد البايتات",
        "afterBytesTip": "خلي الـ fallback يشتغل بالسرعة الكاملة لعدد البايتات ده، وبعدين يبدأ التحجيم. 0 = حجّم من أول بايت.",
        "bytesPerSec": "بايت في الثانية",
        "bytesPerSecTip": "حد السرعة (بايت/ثانية) المطبّق على مرور الـ fallback بعد العتبة، عشان الفحوصات ماتقدرش تستخدم سيرفرك كنطاق ترددي مجاني للهدف. 0 = بلا حد (بيعطّل الاتجاه ده).",
        "burstBytesPerSec": "بايت في الثانية للدفقة",
        "burstBytesPerSecTip": "السماح بدفقات قصيرة فوق المعدل الثابت (حجم token-bucket). لو أقل من بايت في الثانية بيترفع ليطابقه."
      },
      "info": {
        "mode": "الوضع",
        "grpcServiceName": "grpc serviceName",
        "grpcMultiMode": "grpc multiMode",
        "interfaceName": "اسم الواجهة",
        "mtu": "MTU",
        "gateway": "Gateway",
        "dns": "DNS",
        "outboundsInterface": "واجهة الصادر",
        "autoSystemRoutes": "توجيهات نظام تلقائية",
        "followRedirect": "FollowRedirect",
        "auth": "Auth",
        "noKernelTun": "TUN بدون نواة",
        "keepAlive": "Keep alive",
        "peerNumber": "Peer {n}",
        "peerNumberConfig": "تكوين Peer {n}"
      },
      "sniffingDestOverride": "تجاوز الوجهة"
    },
    "clients": {
      "tabBasics": "أساسي",
      "tabCredentials": "بيانات الاعتماد",
      "tabLinks": "الروابط",
      "wireguardConfig": "إعدادات WireGuard",
      "config": "الإعداد",
      "linksHint": "أضف روابط مشاركة من جهات خارجية وعناوين اشتراك خارجية لتضمينها في اشتراك هذا العميل.",
      "addExternalLink": "إضافة رابط خارجي",
      "addExternalSubscription": "إضافة اشتراك خارجي",
      "noExternalLinks": "لا توجد روابط خارجية بعد.",
      "noExternalSubscriptions": "لا توجد اشتراكات خارجية بعد.",
      "namePrefix": "بادئة الاسم",
      "lastFetchAt": "آخر جلب",
      "lastFetchError": "خطأ في الجلب",
      "neverFetched": "لم يتم الجلب بعد",
      "submitEdit": "حفظ التغييرات",
      "clientCount": "عدد العملاء",
      "bulk": "إضافة مجمعة",
      "selectAll": "تحديد الكل",
      "clearAll": "مسح الكل",
      "method": "الطريقة",
      "first": "أول",
      "last": "آخر",
      "ipLog": "سجل IP",
      "prefix": "بادئة",
      "postfix": "لاحقة",
      "delayedStart": "البدء بعد أول استخدام",
      "expireDays": "المدة (أيام)",
      "renew": "تجديد تلقائي",
      "renewDesc": "تجديد تلقائي بعد انتهاء الصلاحية. (0 = تعطيل) (الوحدة: يوم)",
      "renewDays": "تجديد تلقائي (أيام)",
      "searchPlaceholder": "ابحث بالبريد، التعليق، sub ID، UUID، كلمة المرور، auth، Telegram ID…",
      "filterTitle": "تصفية العملاء",
      "clearAllFilters": "مسح الكل",
      "filters": {
        "nodes": "النودز",
        "localPanel": "محلي (هذه اللوحة)"
      },
      "showingCount": "عرض {shown} من {total}",
      "sortOldest": "الأقدم أولاً",
      "sortNewest": "الأحدث أولاً",
      "sortRecentlyUpdated": "محدّث مؤخراً",
      "sortRecentlyOnline": "متصل مؤخراً",
      "sortEmailAZ": "بريد A→Z",
      "sortEmailZA": "بريد Z→A",
      "sortMostTraffic": "الأكثر استهلاكاً",
      "sortHighestRemaining": "الأعلى متبقياً",
      "sortExpiringSoonest": "الأقرب انتهاءً",
      "has": "يملك",
      "hasNot": "لا يملك",
      "actions": "الإجراءات",
      "totalGB": "حد البيانات (جيجابايت)",
      "totalGBDesc": "حصة البيانات لهذا العميل. 0 = غير محدود.",
      "expiryTime": "انتهاء الصلاحية",
      "addClients": "إضافة عملاء",
      "limitIp": "حد عناوين IP",
      "limitIpDesc": "الحد الأقصى لعناوين IP المتزامنة. 0 = غير محدود.",
      "limitHwid": "حد HWID",
      "limitHwidDesc": "الحد الأقصى للأجهزة المسجلة لطلبات الاشتراك. 0 = غير محدود.",
      "hwidLog": "أجهزة HWID",
      "hwidDevice": "جهاز مسجل",
      "noHwids": "لا توجد أجهزة HWID بعد",
      "firstSeen": "أول ظهور",
      "lastSeen": "آخر ظهور",
      "deleteHwid": "إزالة الجهاز",
      "deleteHwidConfirm": "إزالة هذا الجهاز؟ سيحتاج إلى إعادة التسجيل عند جلب الاشتراك التالي.",
      "hwidDeleted": "تمت إزالة الجهاز.",
      "clearHwidsConfirm": "إزالة جميع الأجهزة المسجلة؟ سيحتاج كل جهاز إلى إعادة التسجيل عند جلب الاشتراك التالي.",
      "limitIpFail2banMissing": "Fail2ban غير مثبّت، لذا لا يمكن تطبيق حد عناوين IP. ثبّت Fail2ban من قائمة x-ui النصية لتفعيل هذا الخيار.",
      "limitIpFail2banWindows": "Fail2ban غير متوفّر على نظام Windows، لذا لا يمكن تطبيق حد عناوين IP.",
      "limitIpDisabled": "ميزة حد عناوين IP معطّلة على هذا الخادم.",
      "password": "كلمة المرور",
      "passwordDesc": "تُستخدم فقط من قبل عملاء Trojan و Shadowsocks؛ ويتم تجاهلها لـ VLESS و VMess و Hysteria و WireGuard.",
      "subId": "معرّف الاشتراك",
      "online": "متصل",
      "email": "البريد",
      "emailInvalidChars": "لا يمكن أن يحتوي البريد الإلكتروني على مسافات أو '/' أو '\\' أو أحرف تحكم",
      "subIdInvalidChars": "لا يمكن أن يحتوي معرّف الاشتراك على مسافات أو '/' أو '\\' أو أحرف تحكم",
      "group": "المجموعة",
      "groupDesc": "تسمية منطقية لتجميع العملاء (مثل فريق، عميل، منطقة). يمكن تصفيتها من شريط الأدوات.",
      "groupPlaceholder": "مثلاً customer-a",
      "comment": "ملاحظة",
      "traffic": "حركة المرور",
      "speed": "السرعة",
      "offline": "غير متصل",
      "addClient": "إضافة عميل",
      "qrCode": "رمز QR",
      "clientInfo": "معلومات العميل",
      "editClient": "تعديل العميل",
      "client": "العميل",
      "enabled": "مفعّل",
      "remaining": "المتبقي",
      "duration": "المدة",
      "attachedInbounds": "الاتصالات الواردة المرتبطة",
      "selectInbound": "حدد اتصالاً واردًا واحدًا أو أكثر",
      "selectAllInbounds": "تحديد الكل",
      "clearAllInbounds": "مسح الكل",
      "noSubId": "هذا العميل ليس لديه subId، لا يوجد رابط قابل للمشاركة.",
      "noLinks": "لا توجد روابط للمشاركة — قم بإرفاق هذا العميل بأحد الاتصالات الواردة الداعمة للبروتوكول أولاً.",
      "link": "الرابط",
      "resetNotPossible": "قم بإرفاق هذا العميل بأحد الاتصالات الواردة أولاً.",
      "resetAllTraffics": "إعادة ضبط حركة مرور كل العملاء",
      "resetAllTrafficsTitle": "إعادة ضبط حركة مرور كل العملاء؟",
      "resetAllTrafficsContent": "يُعاد ضبط عدّاد الإرسال/الاستقبال لكل عميل إلى الصفر. لا تتأثر الحصص ومواعيد الانتهاء. لا يمكن التراجع.",
      "deleteConfirmTitle": "حذف العميل {email}؟",
      "deleteConfirmContent": "سيؤدي هذا إلى إزالة العميل من جميع الاتصالات الواردة المرتبطة وحذف سجل حركة مروره. لا يمكن التراجع.",
      "adjustSelected": "تعديل ({count})",
      "subLinksSelected": "روابط الاشتراك ({count})",
      "addToGroupTitle": "إضافة {count} عميل إلى مجموعة",
      "addToGroupTooltip": "اختر مجموعة موجودة أو أدخل اسماً جديداً. استخدم Ungroup لإزالة العملاء من مجموعتهم الحالية.",
      "groupName": "اسم المجموعة",
      "addToGroupSuccessToast": "تمت إضافة {count} عميل إلى {group}",
      "ungroupSuccessToast": "تم مسح المجموعة من {count} عميل",
      "ungroup": "إزالة من المجموعة",
      "ungroupConfirmTitle": "إزالة {count} عميل من مجموعتهم؟",
      "ungroupConfirmContent": "يمسح تسمية المجموعة من كل عميل محدد. يُحفظ العملاء (استخدم Delete للإزالة الكاملة).",
      "addToGroup": "إضافة إلى مجموعة",
      "attach": "إرفاق",
      "adjust": "ضبط",
      "subLinks": "روابط الاشتراك",
      "enable": "تفعيل",
      "disable": "تعطيل",
      "bulkEnableConfirmTitle": "تفعيل {count} عميل؟",
      "bulkEnableConfirmContent": "يُفعّل كل عميل محدد على جميع الإدخالات المرفقة. العملاء الذين استُنفدت حصتهم أو انتهت صلاحيتهم سيُعطَّلون تلقائيًا مرة أخرى.",
      "bulkDisableConfirmTitle": "تعطيل {count} عميل؟",
      "bulkDisableConfirmContent": "يُعطّل كل عميل محدد على جميع الإدخالات المرفقة. يفقدون الوصول فورًا لكن تُحفَظ سجلاتهم وحركة بياناتهم.",
      "selectedCount": "{count} محدد",
      "attachToInboundsTitle": "إرفاق {count} عميل بالواردات",
      "attachToInboundsDesc": "يربط {count} عميل المحدد (نفس UUID/كلمة المرور والمرور المشترك) بالواردات المختارة. يحتفظون بارتباطاتهم الحالية.",
      "attachToInboundsTargets": "الواردات الهدف",
      "attachToInboundsNoTargets": "لا توجد واردات متعددة المستخدمين للارتباط.",
      "detach": "فصل",
      "detachFromInboundsTitle": "فصل {count} عميل من الواردات",
      "detachFromInboundsDesc": "يزيل {count} عميل المحدد من الواردات المختارة. الأزواج التي لم يكن العميل مرتبطاً بها يتم تخطيها بصمت. تُحفظ سجلات العملاء (استخدم Delete للإزالة الكاملة).",
      "detachFromInboundsTargets": "الواردات للفصل",
      "detachFromInboundsNoTargets": "لا توجد واردات متعددة المستخدمين.",
      "detachFromInboundsResult": "فُصل {detached}، تم تخطي {skipped}.",
      "detachFromInboundsResultMixed": "فُصل {detached}، تخطي {skipped}، أخطاء {errors}.",
      "subLinksTitle": "روابط الاشتراك ({count})",
      "subLinkColumn": "رابط الاشتراك",
      "subJsonLinkColumn": "رابط JSON للاشتراك",
      "subLinksCopyAll": "نسخ الكل",
      "subLinksCopiedAll": "تم نسخ {count} رابط",
      "subLinksEmpty": "لا يحتوي أي من العملاء المحددين على معرف اشتراك.",
      "subLinksDisabled": "خدمة الاشتراك معطلة.",
      "subLinksDisabledHint": "فعّل الاشتراك من إعدادات اللوحة → الاشتراك لإنشاء الروابط.",
      "bulkDeleteConfirmTitle": "حذف {count} عميل؟",
      "bulkDeleteConfirmContent": "سيتم إزالة كل عميل محدد من جميع الاتصالات الواردة المرتبطة وحذف سجل حركة مروره. لا يمكن التراجع.",
      "bulkAdjustTitle": "تعديل {count} عميل",
      "bulkAdjustHint": "القيم الموجبة تزيد، السالبة تنقص. العملاء بصلاحية أو ترافيك غير محدود يُتخطّون لذلك الحقل.",
      "bulkAdjustNothing": "حدد الأيام أو الترافيك قبل التطبيق.",
      "addDays": "إضافة أيام",
      "addTrafficGB": "إضافة ترافيك (GB)",
      "bulkFlow": "تعيين التدفق",
      "bulkFlowNoChange": "بدون تغيير",
      "bulkFlowDisable": "تعطيل (مسح التدفق)",
      "delDepleted": "حذف المنتهية",
      "delDepletedConfirmTitle": "حذف العملاء المنتهية حصصهم؟",
      "delDepletedConfirmContent": "يُحذف كل عميل استُنفِدت حصة حركة مروره أو انتهت صلاحيته. لا يمكن التراجع.",
      "exportClients": "تصدير العملاء",
      "importClients": "استيراد العملاء",
      "import": "استيراد",
      "delOrphans": "حذف العملاء غير المرتبطين",
      "delOrphansConfirmTitle": "حذف العملاء بلا اتصال وارد؟",
      "delOrphansConfirmContent": "يزيل كل عميل غير مرتبط بأي اتصال وارد مع سجل حركة مروره. لا يمكن التراجع.",
      "auth": "Auth",
      "hysteriaAuth": "Hysteria Auth",
      "hysteriaAuthDesc": "بيانات اعتماد يستخدمها عملاء Hysteria فقط. أما Trojan و Shadowsocks فيستخدمان حقل «كلمة المرور» بدلاً منها.",
      "uuid": "UUID",
      "flow": "Flow",
      "vmessSecurity": "أمان VMess",
      "wireguardPrivateKey": "مفتاح وايرغارد الخاص",
      "wireguardPublicKey": "مفتاح وايرغارد العام",
      "wireguardPreSharedKey": "مفتاح وايرغارد المشترك مسبقًا",
      "wireguardAllowedIPs": "عناوين IP المسموحة لوايرغارد",
      "wireguardAllowedIPsHint": "اتركه فارغًا للتعيين التلقائي؛ افصل بين الإدخالات بفواصل",
      "amneziaWgPrivateKey": "مفتاح AmneziaWG الخاص",
      "amneziaWgPublicKey": "مفتاح AmneziaWG العام",
      "amneziaWgPreSharedKey": "مفتاح AmneziaWG المشترك مسبقًا",
      "amneziaWgAllowedIPs": "عناوين IP المسموحة لـ AmneziaWG",
      "amneziaWgAllowedIPsHint": "اتركه فارغًا للتعيين التلقائي؛ افصل بين الإدخالات بفواصل",
      "amneziaWgForwardedPorts": "المنافذ المُعاد توجيهها",
      "amneziaWgForwardedPortsHint": "المنافذ/النطاقات المُعاد توجيهها (DNAT) لهذا العميل، مثل 80, 443, 8000-8100. اتركها فارغة إن لم تكن مطلوبة.",
      "amneziaWgConfig": "إعدادات AmneziaWG",
      "mtprotoSecret": "سر MTProto",
      "mtprotoSecretHint": "سر FakeTLS الخاص بالعميل. أعد التوليد لتغييره.",
      "mtprotoAdTag": "علامة إعلانية (قناة مموّلة)",
      "mtprotoAdTagHint": "علامة اختيارية مكوّنة من 32 حرفًا ست عشريًا يتم الحصول عليها عند تسجيل البروكسي في تلغرام. عند تعيينها، يتم توجيه هذا العميل عبر البروكسيات الوسيطة في تلغرام وتظهر قناة مموّلة أعلى قائمة محادثاته.",
      "reverseTag": "وسم عكسي",
      "reverseTagPlaceholder": "Reverse tag اختياري",
      "telegramId": "معرّف مستخدم تلغرام",
      "telegramIdPlaceholder": "معرّف مستخدم تلغرام رقمي (0 = لا شيء)",
      "ipLimit": "حد IP",
      "toasts": {
        "deleted": "تم حذف العميل",
        "trafficReset": "تمت إعادة ضبط حركة المرور",
        "allTrafficsReset": "تمت إعادة ضبط حركة مرور كل العملاء",
        "bulkDeleted": "تم حذف {count} عميل",
        "bulkDeletedMixed": "تم حذف {ok}, وفشل {failed}",
        "bulkEnabled": "تم تفعيل {count} عميل",
        "bulkEnabledMixed": "تم تفعيل {ok}, وفشل {failed}",
        "bulkDisabled": "تم تعطيل {count} عميل",
        "bulkDisabledMixed": "تم تعطيل {ok}, وفشل {failed}",
        "bulkCreated": "تم إنشاء {count} عميل",
        "bulkCreatedMixed": "تم إنشاء {ok}, وفشل {failed}",
        "bulkAdjusted": "تم تعديل {count} عميل",
        "bulkAdjustedMixed": "{ok} تم تعديلهم، {skipped} تم تخطيهم",
        "delDepleted": "تم حذف {count} عميل منتهٍ",
        "delOrphans": "تم حذف {count} عميل غير مرتبط",
        "imported": "تم استيراد {count} عميل",
        "importedMixed": "{ok} تم استيرادهم، {failed} تم تخطيهم"
      },
      "renewMax": "الحد الأقصى للتجديدات",
      "renewMaxDesc": "عدد المرات التي يمكن أن يعمل فيها التجديد التلقائي قبل ترك العميل ينتهي. القيمة 0 تعني بلا حد. تعويض عدة فترات فائتة يستهلك تجديدًا واحدًا لكل فترة.",
      "renewOnDay": "يوم التجديد",
      "renewOnDayDesc": "يتم التجديد في هذا اليوم من كل شهر ميلادي، عند منتصف الليل بتوقيت اللوحة، بدلاً من كل N يوم. إذا كان الشهر أقصر من اليوم المختار، يتم التجديد في آخر يوم منه. القيمة 0 تُبقي وضع الفاصل اليومي.",
      "renewsUsed": "التجديدات المستخدمة"
    },
    "groups": {
      "name": "الاسم",
      "clientCount": "العملاء",
      "totalGroups": "إجمالي المجموعات",
      "totalGroupedClients": "العملاء بمجموعة",
      "trafficUsed": "حركة المرور المستخدمة",
      "upload": "رفع",
      "download": "تنزيل",
      "totalTraffic": "إجمالي حركة المرور",
      "totalUpDown": "إجمالي الرفع / التنزيل",
      "addGroup": "إضافة مجموعة",
      "createSuccess": "تم إنشاء المجموعة «{name}».",
      "rename": "إعادة تسمية",
      "renameTitle": "إعادة تسمية {name}",
      "renameCollision": "مجموعة باسم «{name}» موجودة بالفعل.",
      "renameSuccess": "تمت إعادة تسمية المجموعة على {count} عميل.",
      "deleteConfirmTitle": "حذف المجموعة {name}؟",
      "deleteConfirmContent": "يحذف المجموعة ويمسح تسميتها من {count} عميل. العملاء أنفسهم لا يُحذفون.",
      "deleteSuccess": "تم مسح المجموعة من {count} عميل.",
      "resetTraffic": "إعادة تعيين حركة المرور",
      "resetConfirmTitle": "إعادة تعيين حركة المرور للمجموعة {name}؟",
      "resetConfirmContent": "يعيد تعيين عداد حركة مرور المجموعة فقط؛ ولا تتأثر عدادات العملاء الفرديين.",
      "resetSuccess": "تمت إعادة تعيين حركة مرور المجموعة {name}.",
      "adjustSuccess": "تم ضبط {count} عميل في {name}.",
      "emptyForAction": "هذه المجموعة فارغة.",
      "deleteGroupOnly": "حذف المجموعة (مع الاحتفاظ بالعملاء)",
      "deleteClients": "حذف عملاء المجموعة",
      "deleteClientsConfirmTitle": "حذف جميع العملاء في {name}؟",
      "deleteClientsConfirmContent": "يحذف {count} عميل نهائياً مع سجلات حركة المرور. تُمسح تسمية المجموعة أيضاً. لا يمكن التراجع.",
      "deleteClientsSuccess": "تم حذف {count} عميل.",
      "deleteClientsMixed": "{ok} حُذف، {failed} تم تخطيه",
      "addToGroup": "إضافة عملاء…",
      "addToGroupTitle": "إضافة عملاء إلى المجموعة «{name}»",
      "addToGroupDesc": "اختر العملاء لإضافتهم إلى هذه المجموعة. يحتفظون بارتباطات الواردات الحالية؛ تتغير تسمية المجموعة فقط. لا تُعرض العملاء الذين هم في هذه المجموعة بالفعل.",
      "addToGroupEmpty": "لا يوجد عملاء آخرون للإضافة.",
      "addToGroupResult": "تمت إضافة {count} عميل إلى {name}.",
      "removeFromGroup": "إزالة عملاء…",
      "removeFromGroupTitle": "إزالة عملاء من المجموعة «{name}»",
      "removeFromGroupDesc": "اختر الأعضاء لإزالتهم من هذه المجموعة. يُحفظ العملاء (استخدم «حذف عملاء المجموعة» للإزالة الكاملة).",
      "removeFromGroupResult": "تمت إزالة {count} عميل من {name}."
    },
    "nodes": {
      "addNode": "إضافة نود",
      "editNode": "تحرير العقدة",
      "totalNodes": "إجمالي النودز",
      "onlineNodes": "متصل",
      "offlineNodes": "غير متصل",
      "avgLatency": "متوسط الكمون",
      "name": "الاسم",
      "namePlaceholder": "مثال: de-frankfurt-1",
      "addressPlaceholder": "panel.example.com أو 1.2.3.4",
      "remark": "ملاحظة",
      "scheme": "البروتوكول",
      "address": "العنوان",
      "port": "المنفذ",
      "basePath": "المسار الأساسي",
      "apiToken": "رمز API",
      "apiTokenPlaceholder": "التوكن من صفحة إعدادات البانل البعيد",
      "apiTokenHint": "البانل البعيد بيعرض توكن API بتاعه في المصادقة → توكن API.",
      "apiTokenKeepHint": "اتركه فارغًا للإبقاء على التوكن الحالي",
      "allowPrivateAddress": "السماح بالعنوان الخاص",
      "allowPrivateAddressHint": "التفعيل فقط للعقد على شبكة خاصة أو VPN.",
      "outboundTag": "اتصال صادر",
      "outboundTagHint": "وجه حركة مرور API اللوحة لهذه العقدة عبر outbound Xray المحدد. يتم إضافة inbound جسر loopback تلقائيًا إلى التكوين قيد التشغيل وتطبيقه مباشرة. اتركه فارغًا للاتصال المباشر.",
      "outboundTagPlaceholder": "اتصال مباشر",
      "inboundSyncMode": "استيراد الاتصالات الواردة",
      "inboundSyncModeHint": "اختر الاتصالات الواردة التي سيتم استيرادها من هذه العقدة. تستورد العقد الحالية جميع الاتصالات افتراضيًا.",
      "allInbounds": "جميع الاتصالات الواردة",
      "selectedInbounds": "الاتصالات الواردة المحددة",
      "inboundTags": "الاتصالات الواردة",
      "inboundTagsHint": "تتم المطابقة حسب وسم الاتصال الوارد. القائمة الفارغة لا تستورد أي اتصال.",
      "inboundTagsPlaceholder": "حمّل الاتصالات الواردة وحددها",
      "loadInbounds": "تحميل الاتصالات الواردة من العقدة",
      "inboundsLoaded": "تم تحميل {{count}} اتصال وارد",
      "inboundsLoadFailed": "فشل تحميل الاتصالات الواردة",
      "enable": "مفعل",
      "status": "الحالة",
      "cpu": "CPU",
      "mem": "الذاكرة",
      "netUp": "صعود الشبكة (KB/s)",
      "netDown": "نزول الشبكة (KB/s)",
      "uptime": "مدة التشغيل",
      "latency": "الكمون",
      "lastHeartbeat": "آخر نبضة",
      "xrayVersion": "إصدار Xray",
      "panelVersion": "إصدار اللوحة",
      "actions": "العمليات",
      "probe": "فحص فوري",
      "updatePanel": "تحديث اللوحة",
      "updateSelected": "تحديث المحدد ({count})",
      "updateAvailable": "تحديث متاح",
      "updateConfirmTitle": "تحديث {count} عقدة إلى أحدث إصدار؟",
      "updateConfirmContent": "كل عقدة محددة ستنزّل أحدث إصدار وتعيد التشغيل عليه. يتم تحديث العقد المفعّلة والمتصلة فقط.",
      "updateDevChannel": "التحديث إلى قناة التطوير (أحدث كومِت)",
      "testConnection": "اختبار الاتصال",
      "connectionOk": "الاتصال شغال ({ms} ms)",
      "connectionFailed": "فشل الاتصال",
      "never": "أبدًا",
      "justNow": "دلوقتي",
      "subNode": "نود فرعي",
      "subNodeTip": "للقراءة فقط: نود تابع يتم الوصول إليه عبر {parent}. تتم إدارته من لوحة {parent} نفسها.",
      "deleteConfirmTitle": "تحذف النود \"{name}\"؟",
      "deleteConfirmContent": "ده هيوقّف مراقبة النود. البانل البعيد نفسه مش هيتأثر.",
      "statusValues": {
        "online": "متصل",
        "offline": "غير متصل",
        "unknown": "غير معروف",
        "xrayError": "خطأ Xray",
        "xrayStopped": "متوقف"
      },
      "toasts": {
        "list": "فشل تحميل النودز",
        "obtain": "فشل تحميل النود",
        "add": "إضافة نود",
        "update": "تحديث النود",
        "delete": "حذف النود",
        "deleted": "اتمسح النود",
        "test": "اختبار الاتصال",
        "fillRequired": "الاسم والعنوان والبورت وتوكن API كلهم مطلوبين",
        "probeFailed": "فشل الفحص",
        "updateStarted": "بدأ تحديث اللوحة",
        "updateResult": "تم بدء التحديث على {ok} عقدة، فشل {failed}",
        "updateNoneEligible": "اختر عقدة واحدة على الأقل متصلة ومفعّلة",
        "saveMtls": "حفظ mTLS النود",
        "reloadMtls": "Reload master mTLS credential"
      },
      "tlsVerifyMode": "التحقق من TLS",
      "tlsVerifyModeHint": "كيف يتحقق اللوحة من شهادة HTTPS الخاصة بالعقدة. التثبيت أو التخطّي مخصّصان للشهادات الموقّعة ذاتيًا (عُقد https فقط).",
      "tlsVerify": "تحقّق (CA الافتراضية)",
      "tlsPin": "تثبيت الشهادة (SHA-256)",
      "tlsSkip": "تخطّي التحقق",
      "tlsMtls": "TLS متبادل (شهادة العميل)",
      "mtlsFormHint": "يصادق هذا النود اللوحة باستخدام شهادة عميل. انسخ CA الخاص بهذه اللوحة من قسم mTLS النود إلى النود، واضبط CA الموثوق به، ثم أعد تشغيله.",
      "mtls": {
        "title": "mTLS النود",
        "intro": "يضيف TLS المتبادل عامل شهادة العميل فوق رمز API في الاتصالات بين النودات. وهو اختياري: اتركه فارغًا للاكتفاء بالمصادقة عبر الرمز.",
        "copyCa": "نسخ CA الخاص بهذه اللوحة",
        "copyCaHint": "سلّم هذا الـ CA إلى النودات التي تديرها هذه اللوحة، ثم اضبط التحقق من TLS لديها على TLS المتبادل.",
        "caCopied": "تم نسخ شهادة CA إلى الحافظة",
        "caFailed": "تعذّر الحصول على شهادة CA",
        "trustLabel": "CA الموثوق (اللوحة الأم)",
        "trustHint": "عندما تكون هذه اللوحة نفسها نودًا، الصق هنا CA الخاص باللوحة التي تديرها لطلب شهادة العميل الخاصة بها. أعد تشغيل اللوحة للتطبيق.",
        "trustPlaceholder": "-----BEGIN CERTIFICATE-----",
        "save": "حفظ CA الموثوق",
        "saved": "تم حفظ CA الموثوق — أعد تشغيل اللوحة للتطبيق"
      },
      "tlsSkipWarning": "تخطّي التحقق يزيل الحماية من هجمات الوسيط — قد يُعترض رمز الـ API. يُفضَّل تثبيت الشهادة بدلاً من ذلك.",
      "pinnedCert": "SHA-256 للشهادة المثبّتة",
      "pinnedCertHint": "SHA-256 لشهادة العقدة بصيغة base64 أو hex. استخدم \"جلب\" لقراءتها من العقدة الآن.",
      "pinnedCertPlaceholder": "SHA-256 بصيغة base64 أو hex",
      "fetchPin": "جلب",
      "pinFetched": "تم جلب شهادة العقدة الحالية",
      "pinFetchFailed": "تعذّر جلب الشهادة"
    },
    "settings": {
      "defaultTag": "افتراضي",
      "title": "إعدادات البانل",
      "save": "حفظ",
      "infoDesc": "كل تغيير هتعمله هنا لازم يتخزن. ياريت تعيد تشغيل البانل عشان التعديلات تتفعل.",
      "restartPanel": "إعادة تشغيل اللوحة",
      "restartPanelDesc": "متأكد إنك عايز تعيد تشغيل البانل؟ لو ماقدرتش تدخل بعد إعادة التشغيل، شوف سجل البانل على السيرفر.",
      "restartPanelSuccess": "تم إعادة تشغيل اللوحة بنجاح",
      "actions": "إجراءات",
      "resetDefaultConfig": "استرجاع الافتراضي",
      "panelSettings": "عام",
      "securitySettings": "المصادقة",
      "securityWarnings": "تحذيرات الأمان",
      "panelExposed": "قد تكون لوحتك مكشوفة:",
      "warnHttp": "اللوحة تُقدَّم عبر HTTP عادي — قم بإعداد TLS للإنتاج.",
      "warnDefaultPort": "المنفذ الافتراضي 2053 معروف — غيّره إلى منفذ عشوائي.",
      "warnDefaultBasePath": "المسار الأساسي الافتراضي \"/\" معروف — غيّره إلى مسار عشوائي.",
      "warnDefaultSubPath": "مسار الاشتراك الافتراضي \"/sub/\" معروف — قم بتغييره.",
      "warnDefaultJsonPath": "مسار اشتراك JSON الافتراضي \"/json/\" معروف — قم بتغييره.",
      "TGBotSettings": "بوت تيليجرام",
      "panelListeningIP": "IP الاستماع",
      "panelListeningIPDesc": "عنوان IP للبانل. (سيبه فاضي عشان يستمع على كل الـ IPs)",
      "panelListeningDomain": "دومين الاستماع",
      "panelListeningDomainDesc": "اسم الدومين للبانل. (سيبه فاضي عشان يستمع على كل الدومينات والـ IPs)",
      "panelPort": "بورت الاستماع",
      "panelPortDesc": "رقم البورت للبانل. (لازم يكون بورت فاضي)",
      "publicKeyPath": "مسار المفتاح العام",
      "publicKeyPathDesc": "مسار ملف المفتاح العام للبانل. (يبدأ بـ '/')",
      "privateKeyPath": "مسار المفتاح الخاص",
      "privateKeyPathDesc": "مسار ملف المفتاح الخاص للبانل. (يبدأ بـ '/')",
      "panelUrlPath": "مسار URI",
      "panelUrlPathDesc": "مسار URI للبانل. (يبدأ بـ '/' وبينتهي بـ '/')",
      "pageSize": "حجم الصفحة",
      "pageSizeDesc": "حدد حجم الصفحة لجدول الإدخالات. (0 = تعطيل)",
      "panelOutbound": "صادر ترافيك اللوحة",
      "panelOutboundDesc": "بيوجه طلبات اللوحة نفسها — فحص إصدارات وتنزيلات اللوحة/Xray، تيليجرام، وتحديث ملفات geo العادي — عبر صادر Xray ده لتجاوز فلترة GitHub/تيليجرام على الخادم. وارد جسر محلي بيتضاف تلقائياً للإعداد الشغال وبيتطبق مباشرة. تحديث Geodata التلقائي الأصلي في Xray مش متأثر؛ ليه صادر تنزيل خاص بيه. اتركه فارغاً للاتصال المباشر.",
      "panelOutboundPh": "اتصال مباشر",
      "datepicker": "نوع التقويم",
      "datepickerPlaceholder": "اختار التاريخ",
      "datepickerDescription": "المهام المجدولة هتشتغل بناءً على التقويم ده.",
      "oldUsername": "اسم المستخدم الحالي",
      "currentPassword": "الباسورد الحالي",
      "newUsername": "اسم المستخدم الجديد",
      "newPassword": "الباسورد الجديد",
      "telegramBotEnable": "تفعيل بوت Telegram",
      "telegramBotEnableDesc": "يفعل بوت Telegram.",
      "telegramToken": "رمز تيليجرام",
      "telegramTokenDesc": "توكن البوت اللي جبت من '{'@'}BotFather'.",
      "telegramProxy": "وكيل SOCKS",
      "telegramProxyDesc": "يفعل بروكسي SOCKS5 للاتصال بـ Telegram. (اضبط الإعدادات حسب الدليل)",
      "telegramAPIServer": "خادم API لتيليجرام",
      "telegramAPIServerDesc": "سيرفر Telegram API المستخدم. سيبه فاضي لاستخدام الافتراضي.",
      "telegramChatId": "ID شات الأدمن",
      "telegramChatIdDesc": "ID شات الأدمن في Telegram. (مفصول بفواصل)(تقدر تجيبه من {'@'}userinfobot) أو (استخدم '/id' في البوت)",
      "telegramNotifyTime": "وقت الإشعار",
      "telegramNotifyTimeDesc": "عدد مرات إرسال البوت للتقارير الدورية. اختر فترة جاهزة، أو اختر «مخصص» لإدخال تعبير crontab.",
      "notifyTime": {
        "every": "@every — التكرار ضمن فترة",
        "hourly": "@hourly — كل ساعة",
        "daily": "@daily — كل يوم الساعة 00:00",
        "weekly": "@weekly — كل أسبوع",
        "monthly": "@monthly — كل شهر",
        "custom": "مخصص (crontab)",
        "seconds": "ثوانٍ",
        "minutes": "دقائق",
        "hours": "ساعات",
        "interval": "الفاصل الزمني",
        "unit": "الوحدة"
      },
      "tgNotifyBackup": "نسخة احتياطية لقاعدة البيانات",
      "tgNotifyBackupDesc": "ابعت ملف النسخة الاحتياطية لقاعدة البيانات مع التقرير.",
      "tgNotifyLogin": "إشعار بتسجيل الدخول",
      "tgNotifyLoginDesc": "استقبل إشعار بكل محاولة تسجيل دخول للبانل مع اسم المستخدم، الـ IP، والوقت.",
      "sessionMaxAge": "مدة الجلسة",
      "sessionMaxAgeDesc": "المدة اللي تفضل فيها مسجل دخول. (الوحدة: دقيقة)",
      "expireTimeDiff": "تنبيه بتاريخ الانتهاء",
      "expireTimeDiffDesc": "استقبل تنبيه قبل ما توصل لتاريخ الانتهاء بالمدة المحددة. (الوحدة: يوم)",
      "trafficDiff": "تنبيه حد الترافيك",
      "trafficDiffDesc": "استقبل تنبيه عند وصول الترافيك للحد المحدد. (الوحدة: جيجابايت)",
      "tgNotifyCpu": "تنبيه حمل المعالج",
      "tgNotifyCpuDesc": "استقبل تنبيه لو حمل المعالج عدى الحد المحدد. (الوحدة: %)",
      "timeZone": "المنطقة الزمنية",
      "timeZoneDesc": "المهام المجدولة هتشتغل بناءً على المنطقة الزمنية دي.",
      "subSettings": "الاشتراك",
      "subEnable": "تفعيل خدمة الاشتراك",
      "subEnableDesc": "يفعل خدمة الاشتراك.",
      "subJsonEnable": "تمكين/تعطيل نقطة نهاية اشتراك JSON بشكل مستقل.",
      "subJsonEnableTitle": "اشتراك JSON",
      "subClashEnableTitle": "اشتراك Clash / Mihomo",
      "subFormatsTipTitle": "إعدادات الاشتراك الخاصة بالتنسيق",
      "subFormatsTipDesc": "اضبط مسارات URL وعناوين URL العكسية والاكتشاف التلقائي للعملاء لكل من JSON وClash / Mihomo بشكل منفصل.",
      "subFormatsTipAction": "فتح تنسيقات الاشتراك",
      "subJsonAutoDetect": "اكتشاف عملاء Xray JSON تلقائيًا",
      "subJsonAutoDetectDesc": "عند التفعيل، يتلقى العملاء المتوافقون المعروفون الذين يطلبون رابط الاشتراك القياسي مصفوفة إعدادات Xray JSON تلقائيًا. يحصل العملاء الآخرون على الاستجابة الخام/Base64. يتطلب تفعيل اشتراك JSON وإعادة تشغيل اللوحة.",
      "subJsonAlwaysArray": "إرجاع مصفوفة JSON دائمًا",
      "subJsonAlwaysArrayDesc": "يعيد مسار اشتراك JSON الصريح كمصفوفة حتى عند وجود ملف واحد، وفقًا لمعيار XTLS. تستخدم استجابات JSON المكتشفة تلقائيًا المصفوفات دائمًا. عطّله للاحتفاظ باستجابة الكائن الواحد القديمة.",
      "subJsonUserAgentRegex": "تعبير User-Agent لعملاء Xray JSON",
      "subJsonUserAgentRegexDesc": "تعبير Go RE2 منتظم يُطابَق مع وكيل المستخدم (User-Agent) لاختيار صيغة Xray JSON تلقائيًا على رابط الاشتراك القياسي. فارغ افتراضيًا، لذا يبقى الاكتشاف التلقائي معطلاً حتى تحدد نمطًا للعملاء الذين تريد خدمتهم. يحصل العملاء الآخرون على الاستجابة الخام/Base64. أعد تشغيل اللوحة بعد التغيير.",
      "subClashAutoDetect": "اكتشاف عملاء Clash/Mihomo تلقائيًا",
      "subClashAutoDetectDesc": "عند التفعيل، يتلقى عملاء Clash/Mihomo المعروفون الذين يطلبون رابط الاشتراك القياسي إعداد Clash بصيغة YAML تلقائيًا. تستمر المتصفحات في عرض صفحة الاشتراك، ويحصل العملاء الآخرون على الاستجابة الخام/Base64، وتبقى روابط JSON وClash الصريحة متاحة. يتطلب تفعيل اشتراك Clash/Mihomo وإعادة تشغيل اللوحة لتطبيق التغيير.",
      "subClashUserAgentRegex": "تعبير User-Agent لعملاء Clash/Mihomo",
      "subClashUserAgentRegexDesc": "تعبير Go RE2 منتظم يُطابَق مع وكيل المستخدم (User-Agent) للتعرف على عملاء Clash/Mihomo في رابط الاشتراك القياسي. اتركه فارغًا لاستخدام النمط الافتراضي. أعد تشغيل اللوحة بعد التغيير.",
      "subTitle": "عنوان الاشتراك",
      "subTitleDesc": "العنوان اللي هيظهر في عميل VPN. يدعم رموز هوية العميل: {{EMAIL}}, {{ID}}, {{SHORT_ID}}, {{SUB_ID}}, {{TELEGRAM_ID}}.",
      "subSupportUrl": "رابط الدعم",
      "subSupportUrlDesc": "رابط الدعم الفني المعروض في عميل VPN. يدعم رموز هوية العميل: {{EMAIL}}, {{ID}}, {{SHORT_ID}}, {{SUB_ID}}, {{TELEGRAM_ID}}.",
      "subProfileUrl": "رابط الملف الشخصي",
      "subProfileUrlDesc": "رابط لموقعك الإلكتروني يظهر في عميل VPN. يدعم رموز هوية العميل: {{EMAIL}}, {{ID}}, {{SHORT_ID}}, {{SUB_ID}}, {{TELEGRAM_ID}}.",
      "subAnnounce": "إعلان",
      "subAnnounceDesc": "نص الإعلان المعروض في عميل VPN. يدعم رموز هوية العميل: {{EMAIL}}, {{ID}}, {{SHORT_ID}}, {{SUB_ID}}, {{TELEGRAM_ID}}.",
      "subThemeDir": "مجلد قالب الاشتراك",
      "subThemeDirDesc": "المسار المطلق لمجلد يحتوي على قالب مخصص (index.html/sub.html) لصفحة الاشتراك (مثل /etc/3x-ui/sub_templates/my-theme/). اتركه فارغًا لاستخدام الصفحة الافتراضية.",
      "subThemeDirDocs": "دليل القالب ↗",
      "subEnableRouting": "تفعيل التوجيه",
      "subEnableRoutingDesc": "إعداد عام لتمكين التوجيه (Routing) في عميل VPN. (فقط لـ Happ)",
      "subRoutingRules": "قواعد التوجيه",
      "subRoutingRulesDesc": "ألصق رابط happ:// جاهزًا أو عنوان HTTPS دائمًا. تحدّث اللوحة القواعد البعيدة في الخلفية وتحتفظ بآخر قيمة صالحة، لذلك لا تنتظر طلبات الاشتراك المصدر. (فقط لـ Happ)",
      "subHideSettings": "إخفاء إعدادات الخادم",
      "subHideSettingsDesc": "إخفاء إمكانية عرض وتعديل إعدادات الخادم في عميل VPN. (فقط لـ Happ)",
      "subIncyEnableRouting": "تفعيل التوجيه",
      "subIncyEnableRoutingDesc": "حقن ملف تعريف التوجيه في محتوى الاشتراك لعميل Incy. (فقط لـ Incy)",
      "subIncyRoutingRules": "قواعد التوجيه",
      "subIncyRoutingRulesDesc": "ألصق رابط incy:// جاهزًا أو عنوان HTTPS دائمًا لملف JSON. ينشئ Incy ملف autorouting ويحدّثه تلقائيًا. (فقط لـ Incy)",
      "subClashEnableRouting": "تفعيل التوجيه",
      "subClashEnableRoutingDesc": "تضمين قواعد توجيه Clash/Mihomo العامة في اشتراكات YAML المُنشأة.",
      "subClashRoutingRules": "قواعد التوجيه العامة",
      "subClashRoutingRulesDesc": "ألصق قواعد/YAML أو عنوان HTTPS دائمًا. تحدّثه اللوحة في الخلفية، وتستورد المجموعات وموفري القواعد والقواعد فقط، وتحافظ على عقد VPN المُنشأة وآخر قيمة صالحة.",
      "subListen": "IP الاستماع",
      "subListenDesc": "عنوان IP لخدمة الاشتراك. (سيبه فاضي عشان يستمع على كل الـ IPs)",
      "subPort": "بورت الاستماع",
      "subPortDesc": "رقم البورت لخدمة الاشتراك. (لازم يكون بورت فاضي). كمان بيتحسب منه رابط الاشتراك/الـ QR اللي بيظهر في اللوحة لو حقل «مسار البروكسي العكسي» تحت فاضي — لو الاشتراك بيتفتح من ورا بروكسي عكسي على بورت مختلف، املا «مسار البروكسي العكسي» بدل كده.",
      "subCertPath": "مسار المفتاح العام",
      "subCertPathDesc": "مسار ملف المفتاح العام لخدمة الاشتراك. (يبدأ بـ '/')",
      "subKeyPath": "مسار المفتاح الخاص",
      "subKeyPathDesc": "مسار ملف المفتاح الخاص لخدمة الاشتراك. (يبدأ بـ '/')",
      "subPath": "مسار URI",
      "subPathDesc": "مسار URI لخدمة الاشتراك. (يبدأ بـ '/' وبينتهي بـ '/')",
      "subDomain": "دومين الاستماع",
      "subDomainDesc": "اسم الدومين لخدمة الاشتراك. (سيبه فاضي عشان يستمع على كل الدومينات والـ IPs). كمان بيتستخدم كدومين افتراضي لرابط الاشتراك اللي بيظهر لو حقل «مسار البروكسي العكسي» فاضي — املا «مسار البروكسي العكسي» لو اللوحة والاشتراك بيتفتحوا من دومينات مختلفة (زي لما يكونوا ورا بروكسي عكسي).",
      "subUpdates": "فترات التحديث",
      "subUpdatesDesc": "فترات تحديث رابط الاشتراك في تطبيقات العملاء. (الوحدة: ساعة)",
      "subEncrypt": "تشفير",
      "subEncryptDesc": "المحتوى اللي هيترجع من خدمة الاشتراك هيكون مشفر بـ Base64.",
      "subURI": "مسار البروكسي العكسي",
      "subURIDesc": "الرابط الأساسي الكامل (scheme://domain[:port]/path/) لرابط الاشتراك وكود الـQR، بيتستخدم بدل دومين الاستماع/بورت الاستماع. املا الحقل ده لو الاشتراك بيتفتح من ورا بروكسي عكسي أو على دومين/بورت مختلف عن اللي فوق.",
      "externalTrafficInformEnable": "تنبيه الترافيك الخارجي",
      "externalTrafficInformEnableDesc": "إخطار واجهة API خارجية بكل تحديث لحركة المرور.",
      "externalTrafficInformURI": "مسار تنبيه الترافيك الخارجي",
      "externalTrafficInformURIDesc": "تحديثات الترافيك هتتبعت للمسار ده.",
      "restartXrayOnClientDisable": "إعادة تشغيل Xray بعد التعطيل التلقائي",
      "restartXrayOnClientDisableDesc": "عند تعطيل العميل تلقائيا بسبب انتهاء الصلاحية أو حد حركة المرور، أعد تشغيل Xray.",
      "fragment": "تجزئة",
      "fragmentDesc": "يفعل تجزئة لحزمة TLS hello.",
      "fragmentSett": "إعدادات التجزئة",
      "noisesDesc": "يفعل التشويش.",
      "noisesSett": "إعدادات التشويش",
      "trustedProxyCidrs": "CIDR وكلاء موثوقين",
      "trustedProxyCidrsDesc": "IPs/CIDRs مفصولة بفواصل يُسمح لها بتعيين ترويسات host، proto و client IP المعاد توجيهها.",
      "ldap": {
        "enable": "تفعيل مزامنة LDAP",
        "host": "مضيف LDAP",
        "port": "منفذ LDAP",
        "useTls": "استخدام TLS (LDAPS)",
        "skipTlsVerify": "تخطي التحقق من شهادة TLS",
        "skipTlsVerifyDesc": "غير آمن — يعطل التحقق من شهادة الخادم. استخدم فقط مع CA الداخلية/غير الموثوقة.",
        "bindDn": "Bind DN",
        "passwordConfigured": "مهيأة؛ اترك فارغاً للاحتفاظ بكلمة المرور الحالية.",
        "passwordUnconfigured": "غير مهيأة.",
        "passwordPlaceholder": "مهيأة — أدخل قيمة جديدة لاستبدالها",
        "baseDn": "Base DN",
        "userFilter": "مرشح المستخدم",
        "userAttr": "خاصية المستخدم (username/email)",
        "vlessField": "خاصية VLESS flag",
        "flagField": "خاصية flag عامة (اختياري)",
        "flagFieldDesc": "إذا تم تعيينها، تتجاوز VLESS flag — مثل shadowInactive.",
        "truthyValues": "قيم Truthy",
        "truthyValuesDesc": "مفصولة بفواصل؛ الافتراضي: true,1,yes,on",
        "invertFlag": "عكس flag",
        "invertFlagDesc": "فعّل عندما تعني الخاصية «معطل» (مثل shadowInactive).",
        "syncSchedule": "جدول المزامنة",
        "syncScheduleDesc": "سلسلة شبيهة بـ cron، مثل @every 1m",
        "inboundTags": "وسوم الواردات",
        "inboundTagsDesc": "الواردات التي يمكن لمزامنة LDAP إنشاء/حذف العملاء فيها تلقائياً.",
        "noInbounds": "لم يتم العثور على واردات. أنشئ واحداً في الواردات أولاً.",
        "autoCreate": "إنشاء عملاء تلقائياً",
        "autoDelete": "حذف عملاء تلقائياً",
        "defaultTotalGb": "الإجمالي الافتراضي (GB)",
        "defaultExpiryDays": "الانتهاء الافتراضي (أيام)",
        "defaultIpLimit": "حد IP الافتراضي"
      },
      "subFormats": {
        "finalMask": "Final Mask",
        "finalMaskDesc": "يضيف أقنعة TCP/UDP الخاصة بـ Xray finalmask ومعلمات QUIC إلى كل ملف Xray JSON يتم إنشاؤه. يتطلب تطبيقًا يدعم اشتراكات Xray JSON وإصدارًا حديثًا من نواة Xray.",
        "packets": "الحزم",
        "length": "الطول",
        "interval": "الفاصل",
        "maxSplit": "أقصى تقسيم",
        "noises": "الضوضاء",
        "noiseItem": "ضوضاء №{n}",
        "type": "النوع",
        "packet": "حزمة",
        "delayMs": "التأخير (ms)",
        "applyTo": "تطبيق على",
        "addNoise": "+ ضوضاء",
        "concurrency": "التزامن",
        "xudpConcurrency": "تزامن xudp",
        "xudpUdp443": "xudp UDP 443"
      },
      "mux": "Mux",
      "muxDesc": "ينقل أكثر من تيار بيانات مستقل خلال تيار بيانات واحد قائم.",
      "muxSett": "إعدادات MUX",
      "direct": "اتصال مباشر",
      "directDesc": "ينشئ اتصال مباشر مع الدومينات أو نطاقات IP لدولة معينة.",
      "notifications": "الإشعارات",
      "certs": "الشهادات",
      "externalTraffic": "الترافيك الخارجي",
      "dateAndTime": "التاريخ والوقت",
      "proxyAndServer": "البروكسي والسيرفر",
      "intervals": "الفترات",
      "information": "المعلومات",
      "profile": "الملف الشخصي",
      "language": "اللغة",
      "telegramBotLanguage": "لغة بوت Telegram",
      "security": {
        "admin": "بيانات الأدمن",
        "twoFactor": "المصادقة الثنائية",
        "twoFactorEnable": "تفعيل المصادقة الثنائية",
        "twoFactorEnableDesc": "يضيف طبقة إضافية من المصادقة لتعزيز الأمان.",
        "twoFactorModalSetTitle": "تفعيل المصادقة الثنائية",
        "twoFactorModalDeleteTitle": "تعطيل المصادقة الثنائية",
        "twoFactorModalSteps": "لإعداد المصادقة الثنائية، قم ببعض الخطوات:",
        "twoFactorModalFirstStep": "1. امسح رمز QR هذا في تطبيق المصادقة أو انسخ الرمز الموجود بجانب رمز QR والصقه في التطبيق",
        "twoFactorModalSecondStep": "2. أدخل الرمز من التطبيق",
        "twoFactorModalRemoveStep": "أدخل الرمز من التطبيق لإزالة المصادقة الثنائية.",
        "twoFactorModalChangeCredentialsTitle": "تغيير بيانات الاعتماد",
        "twoFactorModalChangeCredentialsStep": "أدخل الرمز من التطبيق لتغيير بيانات اعتماد المسؤول.",
        "twoFactorModalSetSuccess": "تم إنشاء المصادقة الثنائية بنجاح",
        "twoFactorModalDeleteSuccess": "تم حذف المصادقة الثنائية بنجاح",
        "twoFactorModalError": "رمز خاطئ",
        "show": "إظهار",
        "hide": "إخفاء",
        "apiTokenNew": "رمز جديد",
        "apiTokenName": "الاسم",
        "apiTokenNamePlaceholder": "مثل central-panel-a",
        "apiTokenNameRequired": "الاسم مطلوب",
        "apiTokenEmpty": "لا توجد رموز بعد — أنشئ واحدًا لمصادقة الروبوتات أو اللوحات البعيدة.",
        "apiTokenDeleteWarning": "أي عميل يستخدم هذا الرمز سيفقد المصادقة فورًا.",
        "apiTokenCreatedTitle": "تم إنشاء الرمز",
        "apiTokenCreatedNotice": "انسخ هذا الرمز الآن. لأسباب أمنية لا يتم تخزينه بصيغة قابلة للقراءة ولن يتم عرضه مرة أخرى."
      },
      "toasts": {
        "modifySettings": "تم تغيير المعلمات.",
        "getSettings": "حدث خطأ أثناء استرداد المعلمات.",
        "modifyUserError": "حدث خطأ أثناء تغيير بيانات اعتماد المسؤول.",
        "modifyUser": "لقد قمت بتغيير بيانات اعتماد المسؤول بنجاح.",
        "originalUserPassIncorrect": "اسم المستخدم أو الباسورد الحالي غير صحيح",
        "userPassMustBeNotEmpty": "اسم المستخدم والباسورد الجديدين فاضيين",
        "getOutboundTrafficError": "خطأ في الحصول على حركات المرور الصادرة",
        "resetOutboundTrafficError": "خطأ في إعادة تعيين حركات المرور الصادرة"
      },
      "smtpSettings": "إعدادات SMTP",
      "smtpEnable": "تفعيل إشعارات البريد الإلكتروني",
      "smtpEnableDesc": "تفعيل إشعارات البريد الإلكتروني عبر SMTP",
      "smtpHost": "خادم SMTP",
      "smtpHostDesc": "اسم مضيف خادم SMTP (مثال: smtp.gmail.com)",
      "smtpPort": "منفذ SMTP",
      "smtpPortDesc": "منفذ خادم SMTP (الافتراضي: 587)",
      "smtpUsername": "اسم مستخدم SMTP",
      "smtpUsernameDesc": "اسم المستخدم للمصادقة على SMTP",
      "smtpFrom": "عنوان المُرسِل (From)",
      "smtpFromDesc": "العنوان المستخدم في ترويسة From للبريد. اتركه فارغًا لاستخدام اسم المستخدم.",
      "smtpFromName": "اسم المُرسِل (From)",
      "smtpFromNameDesc": "اسم عرض اختياري يظهر قبل العنوان في ترويسة From.",
      "smtpPassword": "كلمة مرور SMTP",
      "smtpPasswordDesc": "كلمة المرور للمصادقة على SMTP",
      "smtpTo": "المستلمون",
      "smtpToDesc": "عناوين البريد الإلكتروني للمستلمين مفصولة بفواصل",
      "emailSettings": "البريد الإلكتروني",
      "emailNotifications": "الإشعارات",
      "smtpEventBusNotify": "إشعارات الأحداث بالبريد الإلكتروني",
      "smtpEventBusNotifyDesc": "اختر الأحداث التي تُطلق إشعارات البريد الإلكتروني",
      "tgEventBusNotify": "إشعارات الأحداث عبر Telegram",
      "tgEventBusNotifyDesc": "اختر الأحداث التي تُطلق إشعارات Telegram",
      "testSmtp": "إرسال بريد تجريبي",
      "testTgBot": "إرسال رسالة تجريبية",
      "eventGroupOutbound": "الصادر",
      "eventGroupXray": "نواة Xray",
      "eventGroupSystem": "النظام",
      "eventGroupSecurity": "الأمان",
      "eventGroupNode": "العقد",
      "eventOutboundDown": "غير متصل",
      "eventOutboundUp": "متصل",
      "eventXrayCrash": "تعطّل",
      "eventNodeDown": "غير متصلة",
      "eventNodeUp": "متصلة",
      "eventCPUHigh": "ارتفاع استخدام المعالج (%)",
      "requestFailed": "فشل الطلب",
      "smtpEncryption": "التشفير",
      "smtpEncryptionDesc": "طريقة تشفير اتصال SMTP",
      "smtpEncryptionNone": "بدون (نص عادي)",
      "smtpEncryptionStartTLS": "STARTTLS",
      "smtpEncryptionTLS": "TLS (ضمني)",
      "smtpStageConnect": "الاتصال",
      "smtpStageAuth": "المصادقة",
      "smtpStageSend": "الإرسال",
      "smtpTestSuccess": "تم إرسال البريد التجريبي بنجاح",
      "smtpHostNotConfigured": "خادم SMTP غير مهيأ",
      "smtpNoRecipients": "لا يوجد مستلمون مهيؤون",
      "smtpFromNotConfigured": "عنوان مرسل SMTP غير مُهيأ",
      "eventLoginAttempt": "محاولة تسجيل دخول",
      "telegramTokenConfigured": "مهيأ؛ اتركه فارغاً للاحتفاظ بالتوكن الحالي.",
      "telegramTokenPlaceholder": "مهيأ — أدخل توكن جديد لاستبداله",
      "smtpPasswordConfigured": "مهيأة؛ اتركها فارغة للاحتفاظ بكلمة المرور الحالية.",
      "smtpPasswordPlaceholder": "مهيأة — أدخل كلمة مرور جديدة لاستبدالها",
      "smtpNotInitialized": "لم تتم تهيئة SMTP",
      "tgBotNotEnabled": "بوت Telegram غير مفعّل",
      "tgTestFailed": "فشل اختبار Telegram",
      "tgTestSuccess": "تم إرسال رسالة تجريبية إلى Telegram",
      "tgBotNotRunning": "بوت Telegram لا يعمل",
      "smtpErrorAuth": "فشلت المصادقة — تحقق من اسم المستخدم وكلمة المرور",
      "smtpErrorStarttls": "الخادم يتطلب STARTTLS — غيّر نوع التشفير",
      "smtpErrorTls": "الخادم يتطلب TLS — غيّر نوع التشفير",
      "smtpErrorRefused": "تم رفض الاتصال — تحقق من الخادم والمنفذ",
      "smtpErrorTimeout": "انتهت مهلة الاتصال — تعذّر الوصول إلى الخادم",
      "smtpErrorRelay": "الخادم يرفض الإرسال من هذا العنوان",
      "smtpErrorEof": "تم إغلاق الاتصال من قبل الخادم",
      "smtpErrorUnknown": "خطأ SMTP: {{ .Error }}",
      "eventMemoryHigh": "ارتفاع استخدام الذاكرة (%)",
      "remarkTemplate": "قالب الملاحظة",
      "remarkTemplateDesc": "عند تعيينه، يحل هذا محل نموذج الملاحظة لكل رابط اشتراك — اكتب صيغتك الخاصة باستخدام رموز المتغيرات (استخدم الزر لإدراجها). اتركه فارغاً لاستخدام النموذج أعلاه.",
      "subShowIdentityOnAllLinks": "إظهار الهوية في كل رابط",
      "subShowIdentityOnAllLinksDesc": "عند التفعيل، يبقى {{EMAIL}} و{{USERNAME}} في ملاحظة كل رابط في محتوى الاشتراك. تظل رموز الاستخدام في الرابط الأول فقط.",
      "validation": {
        "pathLeadingSlash": "يجب أن يبدأ المسار بالرمز /"
      },
      "secretClear": "مسح",
      "secretClearUndo": "تراجع عن المسح",
      "calendarGregorian": "Gregorian (Standard)",
      "calendarJalalian": "Jalalian (شمسی)",
      "ipLimitAllowlist": "قائمة سماح حد IP",
      "ipLimitAllowlistDesc": "عناوين وشبكات لا يحسبها حد IP ولا يحظرها، حتى لا يستهلك عنوان مكتب أو حرم جامعي مشترك حد العميل. IPs/CIDRs مفصولة بفواصل.",
      "subBalancers": {
        "menu": "موزّعات الاشتراك",
        "title": "موزّع الاشتراك",
        "add": "إضافة موزّع",
        "desc": "كل موزّع مُفعّل يُضاف إلى اشتراك JSON كملف تعريف إضافي يختار تلقائيًا أفضل نقطة نهاية من الإينبوندات المحددة.",
        "remark": "ملاحظة",
        "remarkPlaceholder": "تلقائي · الأسرع",
        "strategy": "الاستراتيجية",
        "strategyLeastLoad": "أقل حمل",
        "strategyLeastPing": "أقل ping",
        "strategyRandom": "عشوائي",
        "strategyRoundRobin": "دوران",
        "sortOrder": "الترتيب",
        "sortOrderHelp": "الموضع في قائمة الاشتراك، متداخل مع ترتيب الإينبوندات؛ عند تساوي الرقم يأتي الموزّع بعد الإينباند.",
        "inbounds": "الإينبوندات",
        "inboundsCount": "{count} الإينبوندات",
        "enabled": "مُفعّل",
        "empty": "لا يوجد موزّعات بعد",
        "deleteConfirm": "حذف هذا الموزّع؟",
        "errRemarkRequired": "الملاحظة مطلوبة",
        "errInboundsRequired": "اختر إينبوندًا واحدًا على الأقل",
        "errSortOrder": "الترتيب يجب أن يكون عددًا صحيحًا ≥ 1",
        "toasts": {
          "list": "تعذّر عرض موزّعات الاشتراك",
          "create": "تعذّر إنشاء موزّع اشتراك",
          "update": "تعذّر تحديث موزّع اشتراك",
          "delete": "تعذّر حذف موزّع اشتراك",
          "invalidId": "معرّف غير صالح"
        },
        "tabBalancers": "موازنات التحميل",
        "tabObservatory": "المرصد",
        "observatory": {
          "title": "مرصد الموزّع",
          "desc": "معاملات probe لـ burstObservatory المُضمَّن في كل ملف leastPing/leastLoad. random/roundRobin بلا مرصد. يُحفظ كإعداد شامل لاشتراك JSON.",
          "destination": "عنوان probe",
          "destinationDesc": "العنوان الذي يقيس العميل به كل صادر عضو.",
          "connectivity": "عنوان الاتصالية",
          "connectivityDesc": "عنوان اختياري للتحقق مرة واحدة من وصول العضو للهدف. اتركه فارغًا للتخطي.",
          "interval": "فترة probe",
          "intervalDesc": "الزمن بين جولات probe، مثال 1m.",
          "timeout": "مهلة probe",
          "timeoutDesc": "مهلة probe واحدة، مثال 5s.",
          "sampling": "أخذ العينات",
          "samplingDesc": "عدد probe المتتالية لقياس الاستقرار.",
          "httpMethod": "أسلوب HTTP",
          "httpMethodDesc": "الأسلوب المستخدم في طلبات probe.",
          "note": "تحمل موزّعات leastPing/leastLoad دائمًا burstObservatory. يخصّص هذا المفتاح معاملات probe — أوقفه لاستخدام الإعدادات الافتراضية المدمجة. تُطبَّق التغييرات بعد إعادة تشغيل اللوحة."
        }
      }
    },
    "xray": {
      "save": "احفظ",
      "restartSuccess": "تم إعادة تشغيل Xray بنجاح",
      "stopSuccess": "تم إيقاف Xray بنجاح",
      "restartError": "حدث خطأ أثناء إعادة تشغيل Xray.",
      "stopError": "حدث خطأ أثناء إيقاف Xray.",
      "basicTemplate": "أساسي",
      "advancedTemplate": "متقدم",
      "generalConfigs": "إعدادات عامة",
      "generalConfigsDesc": "الخيارات دي هتحدد التعديلات العامة.",
      "logConfigs": "السجل",
      "logConfigsDesc": "السجلات ممكن تأثر على كفاءة السيرفر. ننصح بتفعيلها بحكمة لما تكون محتاجها.",
      "basicRouting": "توجيه أساسي",
      "blockConnectionsConfigsDesc": "الخيارات دي هتحجب الترافيك بناءً على الدولة المطلوبة.",
      "directConnectionsConfigsDesc": "الاتصال المباشر بيضمن إن الترافيك المعين مايمرش من سيرفر تاني.",
      "blockips": "حظر IPs",
      "blockdomains": "حظر دومينات",
      "directips": "اتصالات مباشرة لـ IPs",
      "directdomains": "اتصالات مباشرة للدومينات",
      "ipv4Routing": "توجيه IPv4",
      "ipv4RoutingDesc": "الخيارات دي هتوجه الترافيك بناءً على وجهة معينة عبر IPv4.",
      "Template": "قالب إعدادات Xray المتقدم",
      "TemplateDesc": "ملف إعدادات Xray النهائي هيتولد بناءً على القالب ده.",
      "FreedomStrategy": "استراتيجية بروتوكول الحرية",
      "FreedomStrategyDesc": "اختار استراتيجية المخرجات للشبكة في بروتوكول الحرية.",
      "FreedomHappyEyeballs": "Freedom Happy Eyeballs (IPv4/IPv6)",
      "FreedomHappyEyeballsDesc": "اتصال ثنائي المكدّس للمخرج المباشر (freedom) — مفيد على خوادم الخروج التي تدعم IPv4 وIPv6 معًا.",
      "FreedomHappyEyeballsTryDelayDesc": "عدد المللي ثانية قبل تجربة عائلة العناوين البديلة. 150–250 مللي ثانية نقطة بداية جيدة.",
      "RoutingStrategy": "استراتيجية التوجيه العامة",
      "RoutingStrategyDesc": "حدد استراتيجية التوجيه الإجمالية لحل كل الطلبات.",
      "outboundTestUrl": "رابط اختبار المخرج",
      "outboundTestUrlDesc": "الرابط المستخدم عند اختبار اتصال المخرج",
      "Torrent": "حظر بروتوكول التورنت",
      "Inbounds": "الواردات",
      "Outbounds": "الصادرات",
      "importRules": "استيراد القواعد",
      "exportRules": "تصدير القواعد",
      "importOutbounds": "استيراد الصادرات",
      "exportOutbounds": "تصدير الصادرات",
      "importInvalidJson": "JSON غير صالح — المتوقع مصفوفة أو كائن بمفتاح مطابق.",
      "metricsListen": "نقطة نهاية المقاييس",
      "metricsListenDesc": "بتعرض مقاييس Xray بنمط Prometheus على العنوان:المنفذ ده (مثلاً 127.0.0.1:11111). سيبه فاضي عشان تعطّله. اربطه بـ localhost وحطّ قدامه reverse-proxy — لإنه من غير مصادقة.",
      "metricsTag": "وسم المقاييس",
      "Balancers": "موازنات التحميل",
      "balancerTagRequired": "الوسم مطلوب",
      "balancerSelectorRequired": "اختر صادراً واحداً على الأقل",
      "balancerLive": "الهدف الحالي",
      "balancerOverride": "تجاوز الاختيار",
      "balancerOverridePh": "تلقائي (الاستراتيجية)",
      "balancerLiveRefresh": "تحديث حالة موازن التحميل",
      "balancerNotRunning": "موازن التحميل ده مش نشط في Xray الشغال — احفظ التغييرات أو ابدأ Xray الأول",
      "routeTester": "اختبار المسار",
      "routeTesterDesc": "اسأل Xray الشغال أي صادر هيتعامل مع الاتصال ده. مفيش ترافيك بيتبعت — القرار بييجي مباشرة من محرك التوجيه الحي.",
      "routeTesterDest": "نطاق أو IP",
      "routeTesterPort": "المنفذ",
      "routeTesterInbound": "الوارد",
      "routeTesterProtocol": "البروتوكول المكتشف",
      "routeTesterTest": "اختبر المسار",
      "routeTesterMatchedOutbound": "الصادر المطابق",
      "routeTesterViaBalancer": "عبر موازن التحميل",
      "routeTesterDefaultOutbound": "ما في قاعدة توجيه اتطابقت — الترافيك رايح للصادر الافتراضي (الأول).",
      "Routings": "قواعد التوجيه",
      "completeTemplate": "الكل",
      "logLevel": "مستوى السجلات",
      "logLevelDesc": "مستوى السجل الخاص بالأخطاء، اللي بيوضح المعلومات المطلوبة للتسجيل.",
      "accessLog": "سجل الوصول",
      "accessLogDesc": "مسار ملف سجل الوصول. القيمة الخاصة 'none' بتعطل سجل الوصول.",
      "errorLog": "سجل الأخطاء",
      "errorLogDesc": "مسار ملف سجل الأخطاء. القيمة الخاصة 'none' بتعطل سجل الأخطاء.",
      "dnsLog": "سجل DNS",
      "dnsLogDesc": "لو هتسجل استعلامات DNS.",
      "maskAddress": "إخفاء العنوان",
      "maskAddressDesc": "إخفاء عنوان الـ IP؛ لو مفعل، هيستبدل تلقائياً عنوان IP اللي بيظهر في السجل.",
      "statistics": "إحصائيات",
      "statsInboundUplink": "إحصائيات رفع الإدخال",
      "statsInboundDownlink": "إحصائيات تنزيل الإدخال",
      "statsOutboundUplink": "إحصائيات رفع المخرجات",
      "statsOutboundDownlink": "إحصائيات تنزيل المخرجات",
      "connectionLimits": "حدود الاتصال",
      "connectionLimitsDesc": "سياسات على مستوى الاتصال لمستوى المستخدم 0. اترك الحقل فارغًا لاستخدام القيمة الافتراضية لـ Xray.",
      "connIdle": "مهلة الخمول",
      "connIdleDesc": "يغلق الاتصال بعد بقائه خاملًا لهذا العدد من الثواني. خفضه يحرر الذاكرة وواصفات الملفات بشكل أسرع على الخوادم المزدحمة (الافتراضي في Xray: 300).",
      "bufferSize": "حجم المخزن المؤقت",
      "bufferSizeDesc": "حجم المخزن المؤقت الداخلي لكل اتصال بالكيلوبايت. اضبطه على 0 لتقليل استهلاك الذاكرة على الخوادم منخفضة الذاكرة (الافتراضي في Xray يعتمد على المنصة).",
      "bufferSizePlaceholder": "تلقائي",
      "seconds": "ثانية",
      "rules": {
        "source": "المصدر",
        "dest": "الوجهة",
        "inbound": "إدخال",
        "balancer": "موازن",
        "useComma": "عناصر مفصولة بفواصل"
      },
      "routing": {
        "dragToReorder": "اسحب لإعادة الترتيب"
      },
      "geoBrowser": {
        "title": "فئات قواعد geo",
        "openTooltip": "استعراض فئات geo",
        "database": "قاعدة البيانات",
        "searchCategory": "بحث عن فئة",
        "searchEntries": "تصفية داخل الفئة",
        "selectFound": "تحديد النتائج",
        "selected": "المحدد: {count}",
        "clearAll": "مسح الكل",
        "apply": "تطبيق",
        "emptySelection": "حدّد الفئات لتتحول إلى عناصر في قاعدة التوجيه",
        "pickCategory": "اختر فئة من القائمة لعرض محتواها",
        "noMatches": "لم يتم العثور على شيء",
        "noFiles": "لا توجد قواعد geo في مجلد Xray",
        "noFilesHint": "ستظهر بعد أن ينزّل Xray ملفي geosite.dat و geoip.dat",
        "fileMeta": "{count} فئة · {size} · تم التحديث {date}",
        "entriesCount": "{count} إدخال",
        "subnetsCount": "{count} شبكة فرعية",
        "shownRange": "عرض {from}–{to} من {total}",
        "loadFailed": "تعذر تحميل قواعد geo",
        "checkFailed": "تعذر التحقق من هذه القيم مقابل قواعد geo",
        "parseFailed": "الملف تالف أو ليس قاعدة geosite/geoip",
        "tooLarge": "الملف أكبر من أن يتم استعراضه",
        "unknownCategories": "غير موجود في القاعدة: {tokens}",
        "missingDatabase": "ملف القاعدة غير موجود: {tokens}. أضِفه من قسم Geodata",
        "unknownAttribute": "السمة غير موجودة، ولن تطابق القاعدة أي نطاق: {tokens}",
        "invalidToken": "لن يقبل Xray هذه الصيغة: {tokens}",
        "wrongKind": "نوع قاعدة البيانات غير مناسب لهذا الحقل: {tokens}"
      },
      "ruleForm": {
        "sourceIps": "IPs المصدر",
        "sourcePort": "منفذ المصدر",
        "vlessRoute": "مسار VLESS",
        "attributes": "الخصائص",
        "value": "القيمة",
        "user": "المستخدم",
        "userPlaceholder": "اختر المستخدمين",
        "userEmpty": "لا يوجد مستخدمون متاحون",
        "userLoadError": "تعذر تحميل المستخدمين",
        "inboundTags": "وسوم الواردات",
        "outboundTag": "وسم الصادر",
        "balancerTag": "وسم الموازن",
        "balancerTagTooltip": "يوجه حركة المرور عبر أحد موازنات الحمل المهيأة"
      },
      "outboundForm": {
        "tagDuplicate": "الوسم مستخدم بالفعل من قبل صادر آخر",
        "tagRequired": "الوسم مطلوب",
        "tagPlaceholder": "وسم-فريد",
        "localIpPlaceholder": "IP محلي",
        "dialerProxyPlaceholder": "اختر مخرجًا لتمرير الاتصال عبره",
        "dialerProxyHint": "وجّه هذا المخرج عبر مخرج آخر (حسب الوسم) لبناء سلسلة بروكسي. اتركه فارغًا للاتصال المباشر.",
        "targetStrategyHint": "كيفية حلّ نطاق الوجهة قبل الاتصال: AsIs (الافتراضي) يرسله كما هو، UseIP… يحلّه مع الرجوع عند الفشل، ForceIP… يشترط نجاح الحلّ.",
        "addressRequired": "العنوان مطلوب",
        "portRequired": "المنفذ مطلوب",
        "optional": "اختياري",
        "udpOverTcp": "UDP over TCP",
        "uotVersion": "إصدار UoT",
        "inboundTag": "وسم الوارد",
        "inboundTagPlaceholder": "وسم الوارد المستخدم في قواعد التوجيه",
        "responseType": "نوع الاستجابة",
        "rewriteNetwork": "إعادة كتابة الشبكة",
        "unchanged": "(دون تغيير)",
        "unchangedAddress": "(دون تغيير) مثل 1.1.1.1",
        "rules": "القواعد",
        "ruleN": "القاعدة {n}",
        "action": "الإجراء",
        "redirect": "Redirect",
        "finalRules": "القواعد النهائية",
        "overrideXrayPrivateIp": "تجاوز حظر IP الخاص الافتراضي في Xray",
        "blockDelay": "تأخير الحظر (ms)",
        "reverseSniffing": "Sniffing عكسي",
        "reserved": "محجوز",
        "minUploadInterval": "أدنى فاصل رفع (ms)",
        "maxUploadSizeBytes": "حجم الرفع الأقصى (بايت)",
        "uplinkChunkSize": "حجم chunk الرفع",
        "noGrpcHeader": "بدون ترويسة gRPC",
        "maxConcurrency": "أقصى تزامن",
        "maxConnections": "أقصى اتصالات",
        "maxReuseTimes": "أقصى مرات إعادة استخدام",
        "maxRequestTimes": "أقصى طلبات",
        "maxReusableSecs": "أقصى ثوانٍ قابلة لإعادة الاستخدام",
        "keepAlivePeriod": "فترة keep alive",
        "authPassword": "كلمة مرور Auth",
        "visionTestpre": "Vision testpre",
        "serverNamePlaceholder": "اسم الخادم",
        "verifyPeerName": "التحقق من اسم peer",
        "pinnedSha256": "SHA256 مثبت",
        "shortId": "Short ID",
        "sockopts": "Sockopts",
        "keepAliveInterval": "فاصل keep alive",
        "markFwmark": "Mark (fwmark)",
        "interface": "الواجهة",
        "proxyProtocol": "Proxy protocol",
        "tcpUserTimeoutMs": "TCP user timeout (ms)",
        "tcpKeepAliveIdleS": "TCP keep-alive idle (ثانية)"
      },
      "outbound": {
        "tag": "الوسم",
        "egress": "Egress",
        "egressHint": "Run an HTTP test to show egress IP and country.",
        "outboundStatus": "حالة المخرج",
        "sendThrough": "أرسل من خلال",
        "targetStrategy": "استراتيجية الوجهة",
        "modeRealDelay": "التأخير الفعلي",
        "testModeTooltip": "TCP: فحص dial سريع. HTTP: طلب كامل عبر xray. التأخير الفعلي: الوقت الكامل شاملاً إنشاء الاتصال.",
        "testAll": "اختبار الكل",
        "httpStatus": "حالة HTTP",
        "breakdownConnect": "اتصال البروكسي",
        "breakdownTls": "TLS عبر الصادر",
        "breakdownTtfb": "أول بايت",
        "country": "الدولة",
        "server": "الخادم",
        "city": "المدينة",
        "allCities": "كل المدن",
        "moveToTop": "نقل إلى الأعلى"
      },
      "outboundSub": {
        "manage": "الاشتراكات",
        "title": "اشتراكات الصادرات",
        "remark": "ملاحظة (اختياري)",
        "remarkPlaceholder": "مثلاً نودز هونج كونج",
        "url": "رابط الاشتراك",
        "urlPlaceholder": "https://... (قائمة روابط بصيغة base64)",
        "tagPrefix": "بادئة الوسم",
        "tagPrefixPlaceholder": "hk-",
        "interval": "فاصل التحديث",
        "hours": "س",
        "minutes": "د",
        "intervalHint": "الافتراضي 10 دقايق. المهمة اللي بتشتغل في الخلفية بتشيك بشكل متكرر؛ كل اشتراك بيعيد الجلب لما يعدّي الفاصل الخاص بيه بس.",
        "enabled": "مفعّل",
        "allowPrivate": "السماح بالعناوين الخاصة",
        "allowPrivateHint": "اسمح بعناوين localhost / الشبكة المحلية (LAN) / عناوين IP الخاصة لرابط الاشتراك ده. متعطّل افتراضياً لدواعي الأمان — فعّله بس لو المصدر المحلي موثوق.",
        "prepend": "قبل الصادرات اليدوية",
        "prependHint": "حُط صادرات الاشتراك ده قبل الصادرات اللي ضبطتها بإيدك، عشان واحد منها يقدر يبقى الافتراضي.",
        "preview": "معاينة",
        "previewEmpty": "مفيش صادرات على الرابط ده.",
        "refreshAll": "حدّث الكل",
        "statusOk": "تمام",
        "toastUpdated": "تم تحديث الاشتراك",
        "addButton": "إضافة",
        "active": "الاشتراكات النشطة",
        "empty": "مفيش اشتراكات لسه. أضف واحد من فوق.",
        "colRemark": "ملاحظة",
        "colLastFetch": "آخر جلب",
        "colEnabled": "مفعّل",
        "auto": "تلقائي",
        "never": "أبداً",
        "refreshNow": "حدّث الآن",
        "deleteConfirm": "تحذف الاشتراك ده؟",
        "restartHint": "بعد الإضافة أو التحديث، أعد تشغيل Xray (أو استنى إعادة التحميل التلقائي اللي جاية) عشان تفعّل الصادرات.",
        "fromSubsTitle": "من اشتراكات الصادرات (للقراءة فقط)",
        "fromSubsDesc": "مستوردة من اشتراكاتك النشطة. تقدر تديرها من لوحة الاشتراكات اللي فوق.",
        "toastLoadFailed": "فشل تحميل الاشتراكات",
        "toastUrlRequired": "رابط الاشتراك مطلوب",
        "toastAdded": "تمت إضافة الاشتراك",
        "toastAddFailed": "فشلت إضافة الاشتراك",
        "toastRefreshed": "تم التحديث",
        "toastRefreshFailed": "فشل التحديث",
        "toastDeleted": "تم الحذف",
        "toastDeleteFailed": "فشل الحذف"
      },
      "pia": {
        "menu": "PIA",
        "username": "اسم مستخدم PIA",
        "password": "كلمة مرور PIA",
        "account": "الحساب",
        "region": "المنطقة",
        "allRegions": "كل المناطق",
        "noServers": "لا توجد خوادم للدولة المحددة",
        "outboundAdded": "تمت إضافة مسار PIA الصادر",
        "outboundUpdated": "تم تحديث مسار PIA الصادر",
        "addedServers": "الخوادم المضافة",
        "alreadyAdded": "هذا الخادم موجود بالفعل في قائمة الصادر. استخدم {reset} لتجديد المفتاح.",
        "provisionFailed": "تعذر إنشاء مسار PIA الصادر. حاول مرة أخرى."
      },
      "tabBalancerSettings": "إعدادات الموازن",
      "tabObservatory": "المرصد",
      "observatory": {
        "autoManaged": "تتم إدارة المراصد تلقائيًا من الموازنات لديك. اضبط طريقة الفحص بالأسفل؛ تتبع الوجهات الصادرة المراقَبة محدِّدات الموازن.",
        "emptyHint": "لا يوجد مرصد اتصال نشط. تتم إضافة واحد تلقائيًا عند إنشاء موازن Least Ping أو Least Load — أو موازن Random / Round-robin مع fallback — حتى تتمكن الموازنات المعتمدة على المرصد من فحص صحة الوجهات الصادرة قبل اختيار الهدف.",
        "mixedLegacy": "يحتوي هذا الإعداد على Observatory و Burst Observatory معًا. يستخدم Xray مرصدًا عالميًا واحدًا، لذلك هذه الحالة القديمة المختلطة غير مدعومة؛ حفظ الموازنات سيحوّلها إلى مرصد واحد.",
        "subjectSelector": "الوجهات المراقَبة",
        "subjectSelectorDesc": "وسوم الوجهات الصادرة التي يفحصها هذا المرصد. تتم إدارتها تلقائيًا من الموازنات لديك.",
        "probeURL": "رابط الفحص (URL)",
        "probeURLDesc": "الرابط الذي يُطلب لقياس كل وجهة صادرة. يجب أن يُعيد HTTP 204.",
        "probeInterval": "فترة الفحص",
        "probeIntervalDesc": "كم مرة يتم فحص كل وجهة صادرة، مثل 30s أو 1m أو 2h45m.",
        "enableConcurrency": "فحص متزامن",
        "enableConcurrencyDesc": "افحص كل الوجهات المراقَبة دفعة واحدة بدلًا من واحدة تلو الأخرى. أسرع، لكنه أكثر وضوحًا على الشبكة.",
        "destination": "وجهة الفحص",
        "destinationDesc": "الرابط الذي يُطلب لقياس كل وجهة صادرة. يجب أن يُعيد HTTP 204.",
        "connectivity": "فحص الاتصال",
        "connectivityDesc": "رابط اختياري لفحص الشبكة المحلية، يُجرَّب فقط بعد فشل الوجهة. اتركه فارغًا للتخطي.",
        "interval": "فترة الفحص",
        "intervalDesc": "متوسط الوقت بين عمليات الفحص لكل وجهة صادرة، مثل 1m. الحد الأدنى 10s.",
        "timeout": "مهلة الفحص",
        "timeoutDesc": "كم من الوقت يُنتظر استجابة الفحص قبل اعتباره فاشلًا، مثل 5s.",
        "sampling": "عدد العينات",
        "samplingDesc": "عدد نتائج الفحص الأخيرة المحفوظة لتقييم كل وجهة صادرة.",
        "httpMethod": "طريقة HTTP",
        "httpMethodDesc": "طريقة HTTP المستخدمة في عمليات الفحص.",
        "deleteAlsoObservatory": "هذا آخر موازن يستخدم Observatory، لذلك ستتم إزالته أيضًا.",
        "deleteAlsoBurst": "هذا آخر موازن يستخدم Burst Observatory، لذلك ستتم إزالته أيضًا."
      },
      "refCleanup": {
        "header": "حذف هذا سيُحدِّث التوجيه أيضًا:",
        "ruleRemoved": "القاعدة {label} — أُزيلت (لا توجد وجهة متبقية)",
        "ruleModified": "القاعدة {label} — مُحتفَظ بها (تستخدم الآن {keeps})",
        "balancerRemoved": "الموازن {tag} — أُزيل (لا توجد أهداف متبقية)"
      },
      "balancer": {
        "balancerStrategy": "استراتيجية الموازن",
        "tag": "الوسم",
        "tagDuplicate": "الوسم مستخدم بالفعل من قبل موازن آخر",
        "tagPlaceholder": "وسم موازن فريد",
        "selector": "المحدد",
        "fallback": "Fallback",
        "cycleTooltip": "حلقة: {path} → (العودة إلى {start})",
        "expected": "المتوقع",
        "expectedPlaceholder": "العدد الأمثل للعقد",
        "maxRtt": "أقصى RTT",
        "tolerance": "التحمل",
        "baselines": "Baselines",
        "costs": "Costs",
        "costMatch": "نمط الوسم",
        "costValue": "الوزن",
        "costRegexp": "مطابقة تعبير نمطي",
        "balancerDeleteInUse": "لا يمكن حذف هذا الموزان — يتم استخدامه كبديل لـ: {names}",
        "balancerFallbackCycle": "لا يمكن تعيين هذا الموزان كبديل — سيؤدي ذلك إلى إنشاء تبعية دائرية.",
        "balancerFallbackInfo": "سيتم توجيه حركة المرور عبر: الموزان → Loopback → الخادم → الموزان المستهدف → الاتصال الخارجي. سيؤدي هذا إلى إضافة قفزة إضافية عبر الخادم، مما قد يسبب تأخيرات طفيفة.",
        "fallbackBalancerHint": "اختر موزان أحمال آخر كبديل",
        "reservedPrefix": "البادئة _bl_ محجوزة لكائنات loopback الداخلية للموازنات"
      },
      "wireguard": {
        "secretKey": "المفتاح السري",
        "publicKey": "المفتاح العام",
        "subnetIp": "الشبكة الفرعية",
        "subnetCidr": "بادئة الشبكة الفرعية (CIDR)",
        "allowedIPs": "عناوين IP المسموح بها",
        "endpoint": "النهاية",
        "domainStrategy": "استراتيجية الدومين"
      },
      "amneziawg": {
        "privateKey": "المفتاح الخاص",
        "publicKey": "المفتاح العام",
        "subnetIp": "الشبكة الفرعية",
        "subnetCidr": "بادئة الشبكة الفرعية (CIDR)",
        "mtu": "الحد الأقصى لوحدة النقل (MTU)",
        "primaryDns": "DNS الأساسي",
        "secondaryDns": "DNS الثانوي",
        "externalInterface": "الواجهة الخارجية",
        "externalInterfaceHint": "واجهة الشبكة على الخادم المستخدمة لـ NAT (PostUp/PostDown). اتركها فارغة للاكتشاف التلقائي.",
        "ipv6Enabled": "تفعيل IPv6",
        "ipv6Subnet": "الشبكة الفرعية IPv6",
        "ipv6SubnetHint": "مثل fd86:ea04:1115::/64. مطلوب عند تفعيل IPv6.",
        "ipv6ExternalInterface": "الواجهة الخارجية لـ IPv6",
        "ipv6ExternalInterfaceHint": "واجهة الشبكة على الخادم لإدخالات وكيل NDP. اتركها فارغة لاستخدام الواجهة الخارجية.",
        "obfuscation": "معاملات التمويه",
        "regenerateObfuscation": "إعادة التوليد",
        "jc": "Jc (عدد الحزم العشوائية)",
        "jmin": "Jmin (الحد الأدنى لحجم الحزمة العشوائية)",
        "jmax": "Jmax (الحد الأقصى لحجم الحزمة العشوائية)",
        "s1": "S1 (حجم حشو حزمة init)",
        "s2": "S2 (حجم حشو حزمة response)",
        "s3": "S3 (حشو رد الكوكي)",
        "s4": "S4 (حشو حزمة النقل)",
        "h1": "H1 (رأس سحري)",
        "h2": "H2 (رأس سحري)",
        "h3": "H3 (رأس سحري)",
        "h4": "H4 (رأس سحري)",
        "hHint": "رقم واحد أو نطاق. اتركه فارغًا للقيم الافتراضية الكلاسيكية 1/2/3/4.",
        "i1": "I1 (حزمة التوقيع)",
        "i1Hint": "حزمة توقيع اختيارية. اتركه فارغًا لعدم إرسالها.",
        "i2": "I2 (حزمة التوقيع)",
        "i3": "I3 (حزمة التوقيع)",
        "i4": "I4 (حزمة التوقيع)",
        "i5": "I5 (حزمة التوقيع)",
        "headerProtectionKey": "HeaderProtectionKey (حماية الترويسات)",
        "headerProtectionKeyHint": "مفتاح Base64 بطول 32 بايت؛ يجب أن يتطابق في إعدادات كل عميل. اتركه فارغًا لتعطيل حماية الترويسات.",
        "contentPaddingAddition": "ContentPaddingAddition (حشو المحتوى)",
        "contentPaddingAdditionHint": "عدد صحيح أو نطاق بايتات يُضاف إلى حزم المحتوى. اتركه فارغًا للتعطيل.",
        "rekeyAfterTime": "RekeyAfterTime (ثوانٍ)",
        "rekeyTimeout": "RekeyTimeout (ثوانٍ)",
        "rejectAfterTime": "RejectAfterTime (ثوانٍ)",
        "keepaliveTimeout": "KeepaliveTimeout (ثوانٍ)",
        "maxHandshakeAttempts": "MaxHandshakeAttempts",
        "timingRangeHint": "عدد صحيح أو نطاق. اتركه فارغًا لاستخدام قيمة WireGuard الافتراضية.",
        "maxHandshakeAttemptsHint": "عدد محاولات المصافحة قبل التوقف. اتركه فارغًا للقيمة الافتراضية.",
        "randomTrailers": "RandomTrailers",
        "randomTrailersHint": "يضيف بايتات عشوائية إلى نهاية كل حزمة. يتطلب AmneziaWG 3.1+ على الطرفين.",
        "disableCookies": "DisableCookies",
        "disableCookiesHint": "عدم إرسال ردود الكوكي — يزيل بصمة DPI لكنه يضعف الحماية من الفيضانات."
      },
      "tun": {
        "userLevel": "مستوى المستخدم"
      },
      "nord": {
        "accessToken": "Access token",
        "privateKey": "المفتاح الخاص",
        "noServers": "لم يتم العثور على خوادم للدولة المحددة",
        "noPublicKey": "الخادم المحدد لا يُعلن عن مفتاح NordLynx العام.",
        "outboundAdded": "تمت إضافة صادر NordVPN",
        "outboundUpdated": "تم تحديث صادر NordVPN"
      },
      "warp": {
        "changeIp": "تغيير الـ IP",
        "changeIpSuccess": "تم تغيير عنوان IP الخاص بـ WARP بنجاح!",
        "autoUpdateIp": "التحديث التلقائي لعنوان IP",
        "intervalDays": "الفاصل الزمني (أيام)",
        "intervalDesc": "0 للتعطيل. يغيّر عنوان IP تلقائيًا.",
        "licenseError": "فشل تعيين رخصة WARP.",
        "fetchFirst": "احصل على تكوين WARP أولاً.",
        "createAccount": "إنشاء حساب WARP",
        "accessToken": "Access token",
        "deviceId": "معرف الجهاز",
        "licenseKey": "مفتاح الرخصة",
        "privateKey": "المفتاح الخاص",
        "deleteAccount": "حذف الحساب",
        "settings": "الإعدادات",
        "licenseKeyLabel": "مفتاح رخصة WARP / WARP+",
        "key": "المفتاح",
        "keyPlaceholder": "مفتاح WARP+ مكوّن من 26 حرفاً",
        "accountInfo": "معلومات الحساب",
        "deviceName": "اسم الجهاز",
        "deviceModel": "طراز الجهاز",
        "deviceEnabled": "الجهاز مفعّل",
        "accountType": "نوع الحساب",
        "role": "الدور",
        "warpPlusData": "بيانات WARP+",
        "quota": "الحصة",
        "usage": "الاستخدام",
        "addOutbound": "إضافة صادر"
      },
      "dns": {
        "enable": "فعل DNS",
        "enableDesc": "فعل سيرفر DNS المدمج",
        "tag": "تاج إدخال DNS",
        "tagDesc": "التاج ده هيبقى متاح كإدخال في قواعد التوجيه.",
        "clientIp": "IP العميل",
        "clientIpDesc": "بيحدد موقع العميل خلال استعلامات DNS",
        "disableCache": "تعطيل الكاش",
        "disableCacheDesc": "بيعطل تخزين نتائج DNS مؤقتاً",
        "disableFallback": "تعطيل النسخ الاحتياطي",
        "disableFallbackDesc": "بيعطل استعلامات DNS الاحتياطية",
        "disableFallbackIfMatch": "تعطيل النسخ الاحتياطي عند التطابق",
        "disableFallbackIfMatchDesc": "بيعطل استعلامات DNS الاحتياطية لما يتحقق تطابق مع قائمة الدومينات",
        "enableParallelQuery": "تفعيل الاستعلام المتوازي",
        "enableParallelQueryDesc": "تفعيل استعلامات DNS المتوازية لعدة خوادم لحل أسرع",
        "strategy": "استراتيجية الاستعلام",
        "strategyDesc": "الاستراتيجية العامة لحل أسماء الدومين",
        "add": "أضف سيرفر",
        "edit": "عدل السيرفر",
        "domains": "النطاقات",
        "expectIPs": "العناوين المتوقعة",
        "unexpectIPs": "عناوين IP غير متوقعة",
        "useSystemHosts": "استخدام ملف Hosts الخاص بالنظام",
        "useSystemHostsDesc": "استخدام ملف hosts من نظام مثبت",
        "serveStale": "تقديم النتائج المنتهية",
        "serveStaleDesc": "إرجاع نتائج الكاش المنتهية الصلاحية أثناء التحديث في الخلفية",
        "serveExpiredTTL": "مدة صلاحية النتائج المنتهية",
        "serveExpiredTTLDesc": "مدة صلاحية إدخالات الكاش المنتهية بالثواني؛ 0 = لا تنتهي أبدًا",
        "timeoutMs": "المهلة (مللي ثانية)",
        "skipFallback": "تخطي الاحتياطي",
        "finalQuery": "الاستعلام النهائي",
        "hosts": "Hosts",
        "hostsAdd": "إضافة Host",
        "hostsEmpty": "لم يتم تعريف أي Host",
        "hostsDomain": "النطاق (مثل domain:example.com)",
        "hostsValues": "عنوان IP أو نطاق — اكتب واضغط Enter",
        "usePreset": "استخدام النموذج",
        "dnsPresetTitle": "قوالب DNS",
        "dnsPresetFamily": "العائلي",
        "clearAll": "حذف الكل",
        "clearAllTitle": "حذف جميع خوادم DNS؟",
        "clearAllConfirm": "سيؤدي هذا إلى إزالة جميع خوادم DNS من القائمة. لا يمكن التراجع عن هذا الإجراء.",
        "dnsLeakWarning": "قد يتسرب DNS عبر localhost أو UDP/TCP غير المشفر أو وضع DoH/DoQ المحلي أو استعلامات الرجوع أو EDNS client IP. استخدم DoH عبر التوجيه، وثبت أسماء المحللات في hosts، وعطل الرجوع عندما تكون الخصوصية مهمة."
      },
      "fakedns": {
        "add": "أضف Fake DNS",
        "ipPool": "نطاق IP Pool",
        "poolSize": "حجم المجموعة"
      },
      "defaultOutbound": "الصادر الافتراضي",
      "defaultOutboundDesc": "الحركة التي لا تطابق أي قاعدة توجيه تستخدم هذا الصادر (الأول في القائمة)."
    },
    "hosts": {
      "addHost": "إضافة مضيف",
      "editHost": "تعديل المضيف",
      "selectInbound": "اختر وارداً",
      "selectedCount": "{count} محدد",
      "summary": {
        "total": "الإجمالي",
        "enabled": "مفعّل",
        "disabled": "معطّل"
      },
      "moveUp": "تحريك لأعلى",
      "moveDown": "تحريك لأسفل",
      "bulkEnable": "تفعيل",
      "bulkDisable": "تعطيل",
      "bulkDelete": "حذف",
      "bulkDeleteConfirm": "حذف {count} مضيف محدد؟",
      "deleteConfirmTitle": "حذف المضيف \"{name}\"؟",
      "sections": {
        "basic": "أساسي",
        "security": "الأمان",
        "advanced": "متقدم",
        "general": "عام",
        "clash": "Clash (mihomo)"
      },
      "fields": {
        "remark": "ملاحظة",
        "serverDescription": "الوصف",
        "inbound": "الواردات",
        "address": "العنوان",
        "port": "المنفذ",
        "endpoint": "النهاية",
        "enable": "مفعل",
        "actions": "الإجراءات",
        "security": "الأمان",
        "sni": "SNI",
        "overrideSniFromAddress": "استخدم العنوان كـ SNI",
        "keepSniBlank": "اترك SNI فارغاً",
        "hostHeader": "ترويسة Host",
        "path": "المسار",
        "alpn": "ALPN",
        "fingerprint": "بصمة",
        "pins": "SHA-256 للشهادة المثبّتة",
        "allowInsecure": "السماح بغير الآمن",
        "echConfigList": "قائمة إعدادات ECH",
        "muxParams": "Mux",
        "sockoptParams": "Sockopt",
        "finalMask": "Final Mask",
        "vlessRoute": "مسار VLESS",
        "mihomoIpVersion": "إصدار IP",
        "mihomoX25519": "Mihomo X25519",
        "shuffleHost": "خلط المضيف",
        "tags": "وسوم",
        "nodeGuids": "النودز",
        "excludeFromSubTypes": "استبعاد من الصيغ",
        "verifyPeerCertByName": "التحقق من شهادة النظير بالاسم",
        "inheritAddress": "يرث العنوان"
      },
      "hints": {
        "address": "اتركه فارغاً ليرث عنوان الوارد نفسه.",
        "port": "0 يرث منفذ الوارد.",
        "tags": "غير مرئي للمستخدمين النهائيين؛ يُرسل مع اشتراك RAW فقط. أحرف كبيرة وأرقام و _ و : فقط.",
        "nodeGuids": "اختر النودز التي تم تحليلها من هذا المضيف. تعيين بصري فقط.",
        "serverDescription": "ملاحظة اختيارية تظهر تحت الملاحظة.",
        "allowInsecure": "تخطّي التحقق من شهادة TLS (allowInsecure / skip-cert-verify).",
        "vlessRoute": "قيمة مسار VLESS واحدة (0-65535) تُدمَج في UUID، مثل 443. اتركه فارغاً لعدم وجود أي منها.",
        "remark": "تسمية بسيطة لهذا المضيف. تظهر كاسم للإعداد فقط عندما لا يكون للوارد ملاحظة خاصة به."
      },
      "remarkVars": {
        "title": "متغيرات القالب",
        "intro": "اضغط على متغير لإضافته. يتم استبداله لكل عميل عند إنشاء الاشتراك.",
        "preview": "معاينة",
        "groups": {
          "client": "العميل",
          "traffic": "حركة المرور",
          "time": "الوقت والحالة",
          "connection": "الاتصال"
        },
        "descEMAIL": "بريد العميل",
        "descINBOUND": "ملاحظة الوارد نفسه (اسم الإعداد)",
        "descHOST": "ملاحظة المضيف",
        "descID": "UUID العميل",
        "descSHORT_ID": "أول 8 أحرف من الـ UUID",
        "descTELEGRAM_ID": "معرّف تلغرام للعميل (فارغ إذا لم يُحدَّد)",
        "descSUB_ID": "معرّف الاشتراك",
        "descCOMMENT": "تعليق العميل",
        "descTRAFFIC_USED": "حركة المرور المستخدمة (قابلة للقراءة)",
        "descTRAFFIC_LEFT": "حركة المرور المتبقية (مخفية إذا كانت غير محدودة)",
        "descTRAFFIC_TOTAL": "إجمالي حركة المرور (مخفي إذا كان غير محدود)",
        "descTRAFFIC_USED_BYTES": "حركة المرور المستخدمة بالبايت",
        "descTRAFFIC_LEFT_BYTES": "حركة المرور المتبقية بالبايت",
        "descTRAFFIC_TOTAL_BYTES": "إجمالي حركة المرور بالبايت",
        "descUP": "حركة مرور الرفع",
        "descDOWN": "حركة مرور التنزيل",
        "descSTATUS": "نشط / منتهٍ / معطّل / مستنفد",
        "descSTATUS_EMOJI": "الحالة كرمز تعبيري (✅ ⏳ 🚫)",
        "descDAYS_LEFT": "الأيام حتى الانتهاء (مخفية إذا كانت غير محدودة)",
        "descTIME_LEFT": "الوقت المتبقي (مثال: 12d 4h 30m)",
        "descUSAGE_PERCENTAGE": "حركة المرور المستخدمة كنسبة مئوية (مخفية إذا كانت غير محدودة)",
        "descEXPIRE_DATE": "تاريخ الانتهاء (YYYY-MM-DD)",
        "descJALALI_EXPIRE_DATE": "تاريخ الانتهاء بالتقويم الجلالي (YYYY/MM/DD)",
        "descEXPIRE_UNIX": "الانتهاء كطابع زمني Unix (بالثواني)",
        "descCREATED_UNIX": "وقت الإنشاء كطابع زمني Unix (بالثواني)",
        "descRESET_DAYS": "فترة إعادة تعيين حركة المرور بالأيام",
        "descRESET_DAY": "يوم الشهر الذي يتم فيه التجديد",
        "descPROTOCOL": "بروتوكول الوارد (VLESS، VMess، Trojan، …)",
        "descTRANSPORT": "شبكة النقل (tcp، ws، grpc، …)",
        "descSECURITY": "أمان النقل (TLS، REALITY، NONE)"
      },
      "toasts": {
        "list": "فشل تحميل المضيفات",
        "obtain": "فشل تحميل المضيف",
        "add": "إضافة مضيف",
        "update": "تحديث المضيف",
        "delete": "حذف المضيف",
        "badTag": "وسم غير صالح",
        "badVlessRoute": "أدخل رقماً واحداً بين 0 و65535"
      }
    }
  },
  "tgbot": {
    "keyboardClosed": "❌ لوحة المفاتيح مغلقة!",
    "noResult": "❗ لا يوجد نتائج!",
    "noQuery": "❌ لم يتم العثور على الاستعلام! يرجى استخدام الأمر مرة أخرى!",
    "wentWrong": "❌ حدث خطأ ما!",
    "noIpRecord": "❗ لا يوجد سجل IP!",
    "noInbounds": "❗ لم يتم العثور على أي وارد!",
    "unlimited": "♾ غير محدود (إعادة تعيين)",
    "add": "إضافة",
    "month": "شهر",
    "months": "أشهر",
    "days": "أيام",
    "hours": "ساعات",
    "minutes": "دقائق",
    "unknown": "غير معروف",
    "inbounds": "الواردات",
    "clients": "العملاء",
    "offline": "🔴 غير متصل",
    "online": "🟢 متصل",
    "commands": {
      "unknown": "❗ أمر مش معروف.",
      "pleaseChoose": "👇 من فضلك اختار:\r\n",
      "help": "🤖 أهلا بيك في البوت! البوت ده معمول عشان يديك بيانات معينة من البانل ويسمحلك بالتعديلات.",
      "start": "👋 أهلا <i>{{ .Firstname }}</i>.\r\n",
      "welcome": "🤖 أهلا بيك في بوت إدارة <b>{{ .Hostname }}</b>.\r\n",
      "status": "✅ البوت شغال!",
      "usage": "❗ من فضلك ادخل نص للتبحث عنه!",
      "getID": "🆔 الـ ID بتاعك: <code>{{ .ID }}</code>",
      "helpAdminCommands": "عشان تعيد تشغيل Xray Core:\r\n<code>/restart</code>\r\n\r\nعشان تدور على إيميل عميل:\r\n<code>/usage [Email]</code>\r\n\r\nعشان تدور على إدخالات (مع إحصائيات العملاء):\r\n<code>/inbound [Remark]</code>\r\n\r\nID شات Telegram:\r\n<code>/id</code>",
      "helpClientCommands": "عشان تدور على الإحصائيات، استخدم الأمر ده:\r\n\r\n<code>/usage [Email]</code>\r\n\r\nID شات Telegram:\r\n<code>/id</code>",
      "restartUsage": "\r\n\r\n<code>/restart</code>",
      "restartSuccess": "✅ العملية نجحت!",
      "restartFailed": "❗ حصل خطأ في العملية.\r\n\r\n<code>Error: {{ .Error }}</code>.",
      "xrayNotRunning": "❗ Xray Core مش شغال.",
      "startDesc": "عرض القائمة الرئيسية",
      "helpDesc": "مساعدة البوت",
      "statusDesc": "التحقق من حالة البوت",
      "idDesc": "عرض معرف Telegram الخاص بك",
      "usageDesc": "عرض استهلاك العميل: /usage البريد",
      "inboundDesc": "البحث في الواردات: /inbound الاسم (مشرف)",
      "restartDesc": "إعادة تشغيل نواة Xray (مشرف)",
      "clearallDesc": "تصفير استهلاك جميع العملاء (مشرف)"
    },
    "messages": {
      "cpuThreshold": "حمل المعالج {{ .Percent }}% عدى الحد المسموح ({{ .Threshold }}%)",
      "selectUserFailed": "❌ حصل خطأ في اختيار المستخدم!",
      "userSaved": "✅ حفظت بيانات مستخدم Telegram.",
      "loginSuccess": "✅ تسجيل الدخول للبانل تم بنجاح.\r\n",
      "loginFailed": "❗️فشل محاولة تسجيل الدخول للبانل.\r\n",
      "report": "🕰 التقارير المجدولة: {{ .RunTime }}\r\n",
      "datetime": "⏰ التاريخ والوقت: {{ .DateTime }}\r\n",
      "hostname": "💻 المضيف: {{ .Hostname }}\r\n",
      "version": "🚀 نسخة 3X-UI: {{ .Version }}\r\n",
      "xrayVersion": "📡 نسخة Xray: {{ .XrayVersion }}\r\n",
      "ipv6": "🌐 IPv6: {{ .IPv6 }}\r\n",
      "ipv4": "🌐 IPv4: {{ .IPv4 }}\r\n",
      "ip": "🌐 IP: {{ .IP }}\r\n",
      "ips": "🔢 IPs:\r\n{{ .IPs }}\r\n",
      "serverUpTime": "⏳ وقت التشغيل: {{ .UpTime }} {{ .Unit }}\r\n",
      "serverLoad": "📈 تحميل النظام: {{ .Load1 }}, {{ .Load2 }}, {{ .Load3 }}\r\n",
      "serverMemory": "📋 RAM: {{ .Current }}/{{ .Total }}\r\n",
      "tcpCount": "🔹 TCP: {{ .Count }}\r\n",
      "udpCount": "🔸 UDP: {{ .Count }}\r\n",
      "traffic": "🚦 الترافيك: {{ .Total }} (↑{{ .Upload }},↓{{ .Download }})\r\n",
      "xrayStatus": "ℹ️ الحالة: {{ .State }}\r\n",
      "username": "👤 اسم المستخدم: {{ .Username }}\r\n",
      "reason": "❗️ السبب: {{ .Reason }}\r\n",
      "time": "⏰ الوقت: {{ .Time }}\r\n",
      "inbound": "📍 الوارد: {{ .Remark }}\r\n",
      "port": "🔌 المنفذ: {{ .Port }}\r\n",
      "expire": "📅 تاريخ الانتهاء: {{ .Time }}\r\n",
      "expireIn": "📅 هيخلص بعد: {{ .Time }}\r\n",
      "active": "💡 مفعل: {{ .Enable }}\r\n",
      "enabled": "🚨 مفعل: {{ .Enable }}\r\n",
      "online": "🌐 حالة الاتصال: {{ .Status }}\r\n",
      "lastOnline": "🔙 آخر متصل: {{ .Time }}\r\n",
      "email": "📧 البريد: {{ .Email }}\r\n",
      "upload": "🔼 الرفع: ↑{{ .Upload }}\r\n",
      "download": "🔽 التنزيل: ↓{{ .Download }}\r\n",
      "total": "📊 الإجمالي: ↑↓{{ .UpDown }} / {{ .Total }}\r\n",
      "TGUser": "👤 مستخدم Telegram: {{ .TelegramID }}\r\n",
      "exhaustedCount": "🚨 عدد النفاذ لـ {{ .Type }}:\r\n",
      "onlinesCount": "🌐 العملاء الأونلاين: {{ .Count }}\r\n",
      "disabled": "🛑 معطل: {{ .Disabled }}\r\n",
      "depleteSoon": "🔜 هينتهي قريب: {{ .Deplete }}\r\n\r\n",
      "backupTime": "🗄 وقت النسخة الاحتياطية: {{ .Time }}\r\n",
      "refreshedOn": "\r\n📋🔄 اتحدّث في: {{ .Time }}\r\n\r\n",
      "yes": "✅ أيوه",
      "no": "❌ لا",
      "received_email": "📧📥 الإيميل اتحدث.",
      "received_comment": "💬📥 التعليق اتحدث.",
      "email_prompt": "📧 الإيميل الافتراضي: {{ .ClientEmail }}\n\nادخل الإيميل بتاعك.",
      "comment_prompt": "💬 التعليق الافتراضي: {{ .ClientComment }}\n\nادخل تعليقك.",
      "cancel": "❌ العملية اتلغت! \n\nممكن تبدأ من /start في أي وقت. 🔄",
      "error_add_client": "⚠️ خطأ:\n\n {{ .error }}",
      "using_default_value": "تمام، هشيل على القيمة الافتراضية. 😊",
      "incorrect_input": "المدخلات مش صحيحة.\nالكلمات لازم تكون متصلة من غير فراغات.\nمثال صحيح: aaaaaa\nمثال غلط: aaa aaa 🚫",
      "AreYouSure": "إنت متأكد؟ 🤔",
      "SuccessResetTraffic": "📧 البريد الإلكتروني: {{ .ClientEmail }}\n🏁 النتيجة: ✅ تم بنجاح",
      "FailedResetTraffic": "📧 البريد الإلكتروني: {{ .ClientEmail }}\n🏁 النتيجة: ❌ فشل \n\n🛠️ الخطأ: [ {{ .ErrorMessage }} ]",
      "FinishProcess": "🔚 عملية إعادة ضبط الترافيك خلصت لكل العملاء.",
      "eventOutboundDown": "الصادر {{ .Tag }} غير متصل",
      "eventOutboundUp": "الصادر {{ .Tag }} متصل",
      "eventErrorDetail": "الخطأ: {{ .Error }}",
      "eventDelayDetail": "التأخير: {{ .Delay }} مللي ثانية",
      "eventXrayCrash": "تعطّل Xray",
      "eventXrayCrashError": "الخطأ: {{ .Error }}",
      "eventNodeDown": "العقدة {{ .Name }} غير متصلة",
      "eventNodeUp": "العقدة {{ .Name }} متصلة",
      "eventLoginFallback": "فشل تسجيل الدخول من {{ .Source }}",
      "memoryThreshold": "استخدام الذاكرة {{ .Percent }}% يتجاوز الحد {{ .Threshold }}%"
    },
    "buttons": {
      "closeKeyboard": "❌ اقفل الكيبورد",
      "cancel": "❌ إلغاء",
      "cancelReset": "❌ إلغاء إعادة الضبط",
      "cancelIpLimit": "❌ إلغاء حد الـ IP",
      "confirmResetTraffic": "✅ تأكيد إعادة ضبط الترافيك؟",
      "confirmClearIps": "✅ تأكيد مسح الـ IPs؟",
      "confirmRemoveTGUser": "✅ تأكيد حذف مستخدم Telegram؟",
      "confirmToggle": "✅ تأكيد تفعيل/تعطيل المستخدم؟",
      "dbBackup": "احصل على نسخة DB",
      "serverUsage": "استخدام السيرفر",
      "getInbounds": "احصل على الإدخالات",
      "depleteSoon": "هينتهي قريب",
      "clientUsage": "استخدام العميل",
      "onlines": "العملاء الأونلاين",
      "commands": "الأوامر",
      "refresh": "🔄 تجديد",
      "clearIPs": "❌ مسح الـ IPs",
      "removeTGUser": "❌ حذف مستخدم Telegram",
      "selectTGUser": "👤 اختار مستخدم Telegram",
      "selectOneTGUser": "👤 اختار مستخدم Telegram:",
      "resetTraffic": "📈 إعادة ضبط الترافيك",
      "resetExpire": "📅 تغيير تاريخ الانتهاء",
      "ipLog": "🔢 سجل الـ IP",
      "ipLimit": "🔢 حد الـ IP",
      "setTGUser": "👤 ضبط مستخدم Telegram",
      "toggle": "🔘 تفعيل / تعطيل",
      "custom": "🔢 مخصص",
      "confirmNumber": "✅ تأكيد: {{ .Num }}",
      "confirmNumberAdd": "✅ تأكيد إضافة: {{ .Num }}",
      "limitTraffic": "🚧 حد الترافيك",
      "getBanLogs": "احصل على سجلات الحظر",
      "allClients": "كل العملاء",
      "addClient": "إضافة عميل",
      "submitDisable": "إرسال كمعطّل ☑️",
      "submitEnable": "إرسال كمفعّل ✅",
      "use_default": "🏷️ استخدام الإعدادات الافتراضية",
      "change_email": "⚙️📧 البريد",
      "change_comment": "⚙️💬 تعليق",
      "ResetAllTraffics": "إعادة ضبط جميع الترافيك",
      "SortedTrafficUsageReport": "تقرير استخدام الترافيك المرتب"
    },
    "answers": {
      "successfulOperation": "✅ العملية نجحت!",
      "errorOperation": "❗ حصل خطأ في العملية.",
      "getInboundsFailed": "❌ فشل الحصول على الإدخالات.",
      "getClientsFailed": "❌ فشل الحصول على العملاء.",
      "canceled": "❌ {{ .Email }}: العملية اتلغت.",
      "clientRefreshSuccess": "✅ {{ .Email }}: العميل اتحدث بنجاح.",
      "IpRefreshSuccess": "✅ {{ .Email }}: الـ IPs اتحدثت بنجاح.",
      "TGIdRefreshSuccess": "✅ {{ .Email }}: مستخدم Telegram اتحدث بنجاح.",
      "resetTrafficSuccess": "✅ {{ .Email }}: الترافيك اتظبط بنجاح.",
      "setTrafficLimitSuccess": "✅ {{ .Email }}: حد الترافيك اتسجل بنجاح.",
      "expireResetSuccess": "✅ {{ .Email }}: أيام الانتهاء اتظبطت بنجاح.",
      "resetIpSuccess": "✅ {{ .Email }}: حد الـ IP ({{ .Count }}) اتسجل بنجاح.",
      "clearIpSuccess": "✅ {{ .Email }}: الـ IPs اتمسحت بنجاح.",
      "getIpLog": "✅ {{ .Email }}: سجل الـ IP اتجاب.",
      "getUserInfo": "✅ {{ .Email }}: بيانات مستخدم Telegram اتجاب.",
      "removedTGUserSuccess": "✅ {{ .Email }}: مستخدم Telegram اتحذف بنجاح.",
      "enableSuccess": "✅ {{ .Email }}: اتفعل بنجاح.",
      "disableSuccess": "✅ {{ .Email }}: اتعطل بنجاح.",
      "askToAddUserId": "مافيش إعدادات ليك!\r\nاطلب من الأدمن يضيف الـ Telegram ChatID الخاص بيك في إعداداتك.\r\n\r\nالـ ChatID بتاعك: <code>{{ .TgUserID }}</code>",
      "chooseClient": "اختار عميل للإدخال {{ .Inbound }}",
      "chooseInbound": "اختار الإدخال"
    }
  },
  "email": {
    "labelStatus": "الحالة",
    "labelOutbound": "الصادر",
    "labelNode": "العقدة",
    "labelError": "الخطأ",
    "labelDelay": "التأخير",
    "labelUsername": "اسم المستخدم",
    "labelIP": "IP",
    "labelReason": "السبب",
    "labelSource": "المصدر",
    "statusCrashed": "متعطّل",
    "statusHigh": "مرتفع",
    "statusSuccess": "نجاح",
    "statusFailed": "فشل",
    "statusDown": "غير متصل",
    "statusUp": "متصل"
  }
}
