3x-ui/web/translation/ar-EG.json
Aleksei Sidorenko 29fa28bf75 fix(tgbot): resolve client creation race conditions and localization bugs
- Refactored Telegram bot client creation state to use a concurrent-safe map (\clientStates map[int64]*ClientState\), replacing package-level global variables. This prevents data races when multiple administrators interact with the bot simultaneously.
- Fixed hardcoded English strings in \BuildInboundClientDataMessage\ by utilizing the \	.I18nBot()\ localization wrapper.
- Implemented \UpdateBotLocalizer\ to dynamically refresh the bot's language whenever the \	gLang\ setting is updated in the web panel, eliminating the need for a service restart.
- Synchronized missing translation keys for \Sub ID\ and \Flow\ across all non-English/Russian localization files to prevent missing interface elements.
2026-05-13 00:25:35 +03:00

977 lines
No EOL
60 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"camouflage": "تمويه",
"cancel": "إلغاء",
"certificate": "شهادة رقمية",
"check": "شيك",
"clients": "عملاء",
"close": "إغلاق",
"comment": "تعليق",
"confirm": "تأكيد",
"copied": "اتنسخ",
"copy": "نسخ",
"copySuccess": "اتنسخ بنجاح",
"create": "إنشاء",
"day": "يوم",
"delete": "مسح",
"depleted": "خلص",
"depletingSoon": "هينتهي قريب",
"disabled": "معطل",
"domainName": "اسم الدومين",
"download": "تحميل",
"edit": "تعديل",
"emptyBalancersDesc": "مفيش موازن تحميل مضاف.",
"emptyDnsDesc": "مفيش سيرفر DNS مضاف.",
"emptyFakeDnsDesc": "مفيش سيرفر Fake DNS مضاف.",
"emptyReverseDesc": "مفيش بروكسي عكسي مضاف.",
"enable": "مفعل",
"enabled": "مفعل",
"encryption": "تشفير",
"fail": "فشل",
"filter": "فلترة",
"getVersion": "جيب النسخة",
"host": "المستضيف",
"hour": "ساعة",
"indefinite": "غير محدد",
"info": "معلومات أكتر",
"install": "تثبيت",
"lastOnline": "آخر متصل",
"loading": "جاري التحميل...",
"login": "تسجيل الدخول",
"logout": "تسجيل خروج",
"menu": {
"apiDocs": "توثيق API",
"dark": "داكن",
"dashboard": "نظرة عامة",
"inbounds": "الإدخالات",
"link": "إدارة",
"logout": "تسجيل خروج",
"nodes": "النودز",
"settings": "إعدادات البانل",
"theme": "الثيم",
"ultraDark": "داكن جدًا",
"xray": "إعدادات Xray"
},
"minute": "دقيقة",
"monitor": "المسمع IP",
"noData": "لا توجد بيانات.",
"none": "مفيش",
"offline": "أوفلاين",
"online": "أونلاين",
"pages": {
"client": {
"add": "أضف عميل",
"bulk": "إضافة بالجملة",
"clearAll": "مسح الكل",
"clientCount": "عدد العملاء",
"copyEmailPreview": "معاينة البريد الإلكتروني الناتج",
"copyFlowHint": "يُطبَّق على جميع العملاء المنسوخين. اتركه فارغاً لتخطيه.",
"copyFlowLabel": "Flow للعملاء الجدد (VLESS)",
"copyFromInbound": "نسخ العملاء من الـ Inbound",
"copyResult": "نتيجة النسخ",
"copyResultErrors": "أخطاء النسخ",
"copyResultNone": "لا يوجد شيء للنسخ: لم يتم اختيار أي عميل أو أن المصدر فارغ",
"copyResultSuccess": "تم النسخ بنجاح",
"copySelectSourceFirst": "الرجاء اختيار الـ Inbound المصدر أولاً.",
"copySelected": "نسخ المحدد",
"copySource": "المصدر",
"copyToInbound": "نسخ العملاء إلى",
"days": "يوم/أيام",
"delayedStart": "ابدأ بعد أول استخدام",
"edit": "تعديل عميل",
"expireDays": "المدة",
"first": "أول واحد",
"last": "آخر واحد",
"method": "طريقة",
"postfix": "لاحقة",
"prefix": "بادئة",
"renew": "تجديد تلقائي",
"renewDesc": "تجديد تلقائي بعد انتهاء الصلاحية. (0 = تعطيل)(الوحدة: يوم)",
"selectAll": "تحديد الكل",
"submitAdd": "أضف العميل",
"submitEdit": "احفظ التعديلات"
},
"inbounds": {
"IPLimit": "تحديد IP",
"IPLimitDesc": "بيعطل الإدخال لو العدد زاد عن القيمة المحددة. (0 = تعطيل)",
"IPLimitlog": "سجل IP",
"IPLimitlogDesc": "سجل تاريخ الـ IPs. (عشان تفعل الإدخال بعد التعطيل، امسح السجل)",
"IPLimitlogclear": "امسح السجل",
"addInbound": "أضف إدخال",
"address": "العنوان",
"allTimeTraffic": "إجمالي حركة المرور",
"allTimeTrafficUsage": "إجمالي الاستخدام طوال الوقت",
"certificateContent": "محتوى الملف",
"certificatePath": "مسار الملف",
"clickOnQRcode": "اضغط على كود QR للنسخ",
"client": "عميل",
"clone": "استنساخ",
"cloneInbound": "استنساخ الإدخال",
"cloneInboundContent": "كل إعدادات الإدخال ده، غير البورت، IP الاستماع، والعملاء، هتتطبق على الاستنساخ.",
"cloneInboundOk": "استنساخ",
"copyLink": "انسخ الرابط",
"createdAt": "تاريخ الإنشاء",
"delDepletedClients": "حذف العملاء اللي خلصت",
"delDepletedClientsContent": "متأكد إنك عايز تحذف كل العملاء اللي خلصت؟",
"delDepletedClientsTitle": "حذف العملاء اللي خلصت",
"deleteClient": "حذف العميل",
"deleteClientContent": "متأكد إنك عايز تحذف العميل؟",
"deleteInbound": "حذف الإدخال",
"deleteInboundContent": "متأكد إنك عايز تحذف الإدخال؟",
"deployTo": "نشر على",
"destinationPort": "بورت الوجهة",
"details": "تفاصيل",
"email": "الإيميل",
"emailDesc": "ادخل إيميل فريد.",
"enable": "مفعل",
"expireDate": "المدة",
"export": "تصدير كل الروابط",
"exportInbound": "تصدير الإدخال",
"generalActions": "إجراءات عامة",
"import": "استيراد",
"importInbound": "استيراد إدخال",
"inboundCount": "عدد الإدخالات",
"inboundData": "بيانات الإدخال",
"info": "معلومات",
"lastReset": "آخر إعادة تعيين",
"leaveBlankToNeverExpire": "سيبها فاضية عشان ماتنتهيش",
"localPanel": "بانل محلي",
"meansNoLimit": "= غير محدود. (الوحدة: جيجابايت)",
"modifyInbound": "تعديل الإدخال",
"monitorDesc": "سيبها فاضية لو عايز تستمع على كل الـ IPs",
"network": "الشبكة",
"noRecommendKeepDefault": "ننصح باستخدام الافتراضي",
"node": "نود",
"operate": "القائمة",
"periodicTrafficReset": {
"daily": "يومياً",
"hourly": "كل ساعة",
"monthly": "شهرياً",
"never": "أبداً",
"weekly": "أسبوعياً"
},
"periodicTrafficResetDesc": "إعادة تعيين عداد حركة المرور تلقائيًا في فترات محددة",
"periodicTrafficResetTitle": "إعادة تعيين حركة المرور",
"port": "بورت",
"portMap": "خريطة البورت",
"privatekey": "المفتاح الخاص",
"protocol": "بروتوكول",
"publicKey": "المفتاح العام",
"remark": "ملاحظة",
"resetAllClientTrafficContent": "متأكد إنك عايز تعيد ضبط ترافيك كل العملاء؟",
"resetAllClientTrafficTitle": "إعادة ضبط ترافيك كل العملاء",
"resetAllClientTraffics": "إعادة ضبط ترافيك كل العملاء",
"resetAllTraffic": "إعادة ضبط ترافيك كل الإدخالات",
"resetAllTrafficContent": "متأكد إنك عايز تعيد ضبط الترافيك لكل الإدخالات؟",
"resetAllTrafficTitle": "إعادة ضبط ترافيك كل الإدخالات",
"resetInboundClientTrafficContent": "متأكد إنك عايز تعيد ضبط ترافيك عملاء الإدخال ده؟",
"resetInboundClientTrafficTitle": "إعادة ضبط ترافيك العملاء",
"resetInboundClientTraffics": "إعادة ضبط ترافيك العملاء",
"resetTraffic": "إعادة ضبط الترافيك",
"resetTrafficContent": "متأكد إنك عايز تعيد ضبط الترافيك؟",
"same": "نفسه",
"setDefaultCert": "استخدم شهادة البانل",
"stream": {
"general": {
"name": "اسم",
"request": "طلب",
"response": "رد",
"value": "قيمة"
},
"tcp": {
"method": "طريقة",
"path": "مسار",
"requestHeader": "رأس الطلب",
"responseHeader": "رأس الرد",
"status": "الحالة",
"statusDescription": "وصف الحالة",
"version": "نسخة"
}
},
"subscriptionDesc": "عشان تلاقي رابط الاشتراك، ادخل على 'التفاصيل'. وكمان ممكن تستخدم نفس الاسم لعدة عملاء.",
"targetAddress": "عنوان الهدف",
"telegramDesc": "ادخل ID شات Telegram. (استخدم '/id' في البوت) أو ({'@'}userinfobot)",
"title": "الإدخالات",
"toasts": {
"delDepletedClientsSuccess": "تم حذف جميع العملاء المستنفذين",
"getNewVlessEncError": "حدث خطأ أثناء الحصول على VlessEnc.",
"getNewX25519CertError": "حدث خطأ أثناء الحصول على شهادة X25519.",
"getNewmldsa65Error": "حدث خطاء في الحصول على mldsa65.",
"inboundClientAddSuccess": "تمت إضافة عميل(عملاء) وارد",
"inboundClientDeleteSuccess": "تم حذف عميل وارد",
"inboundClientUpdateSuccess": "تم تحديث عميل وارد",
"inboundCreateSuccess": "تم إنشاء الوارد بنجاح",
"inboundDeleteSuccess": "تم حذف الوارد بنجاح",
"inboundUpdateSuccess": "تم تحديث الوارد بنجاح",
"inboundsUpdateSuccess": "تم تحديث الواردات بنجاح",
"logCleanSuccess": "تم مسح السجل",
"obtain": "تم الحصول عليه",
"resetAllClientTrafficSuccess": "تم إعادة تعيين كل حركة المرور من العميل",
"resetAllTrafficSuccess": "تم إعادة تعيين كل حركة المرور",
"resetInboundClientTrafficSuccess": "تم إعادة تعيين حركة المرور",
"trafficGetError": "خطأ في الحصول على حركات المرور",
"updateSuccess": "تم التحديث بنجاح"
},
"totalDownUp": "إجمالي المرسل/المستقبل",
"totalFlow": "إجمالي التدفق",
"totalUsage": "إجمالي الاستخدام",
"traffic": "الترافيك",
"transportConfig": "نقل",
"updatedAt": "تاريخ التحديث"
},
"index": {
"backup": "نسخة احتياطية",
"backupTitle": "نسخ احتياطي واستعادة",
"charts": "الرسوم البيانية",
"config": "الإعدادات",
"connectionCount": "إحصائيات الاتصال",
"cpu": "المعالج",
"currentPanelVersion": "إصدار البانل الحالي",
"customGeoActions": "إجراءات",
"customGeoAdd": "إضافة",
"customGeoAlias": "الاسم المستعار",
"customGeoAliasLabelSuffix": " (مخصص)",
"customGeoAliasPlaceholder": "a-z 0-9 _ -",
"customGeoAliasesError": "تعذّر تحميل أسماء geo المخصصة",
"customGeoDelete": "حذف",
"customGeoDeleteConfirm": "حذف مصدر geo المخصص هذا؟",
"customGeoDownload": "تحديث الآن",
"customGeoEdit": "تعديل",
"customGeoEmpty": "لا توجد مصادر geo مخصصة بعد — انقر على «إضافة» لإنشاء واحد",
"customGeoEnabled": "مفعّل",
"customGeoErrAliasPattern": "الاسم المستعار يحتوي على أحرف غير مسموحة",
"customGeoErrAliasRequired": "الاسم المستعار مطلوب",
"customGeoErrAliasReserved": "هذا الاسم محجوز",
"customGeoErrDownload": "فشل التنزيل",
"customGeoErrDuplicateAlias": "هذا الاسم مستخدم مسبقاً لهذا النوع",
"customGeoErrInvalidType": "يجب أن يكون النوع geosite أو geoip",
"customGeoErrInvalidUrl": "الرابط غير صالح",
"customGeoErrNotFound": "مصدر geo المخصص غير موجود",
"customGeoErrUpdateAllIncomplete": "تعذر تحديث مصدر واحد أو أكثر من مصادر geo المخصصة",
"customGeoErrUrlHost": "مضيف الرابط غير صالح",
"customGeoErrUrlRequired": "الرابط مطلوب",
"customGeoErrUrlScheme": "يجب أن يستخدم الرابط http أو https",
"customGeoExtColumn": "التوجيه (ext:…)",
"customGeoInvalidId": "معرّف المورد غير صالح",
"customGeoLastUpdated": "آخر تحديث",
"customGeoModalAdd": "إضافة geo مخصص",
"customGeoModalEdit": "تعديل geo مخصص",
"customGeoModalSave": "حفظ",
"customGeoRoutingHint": "في قواعد التوجيه استخدم العمود كـ ext:file.dat:tag (استبدل tag).",
"customGeoTitle": "GeoSite / GeoIP مخصص",
"customGeoToastAdd": "إضافة geo مخصص",
"customGeoToastDelete": "تم حذف geofile «{{ .fileName }}» المخصص",
"customGeoToastDownload": "تم تحديث geofile «{{ .fileName }}»",
"customGeoToastList": "قائمة geo المخصص",
"customGeoToastUpdate": "تحديث geo مخصص",
"customGeoToastUpdateAll": "تم تحديث جميع المصادر المخصصة",
"customGeoType": "النوع",
"customGeoUrl": "URL",
"customGeoValidationAlias": "الاسم المستعار: أحرف صغيرة وأرقام و - و _ فقط",
"customGeoValidationUrl": "يجب أن يبدأ الرابط بـ http:// أو https://",
"documentation": "التوثيق",
"dontRefresh": "التثبيت شغال، متعملش Refresh للصفحة",
"download": "تنزيل",
"exportDatabase": "اخزن نسخة",
"exportDatabaseDesc": "اضغط عشان تحمل ملف .db يحتوي على نسخة احتياطية لقاعدة البيانات الحالية على جهازك.",
"frequency": "التردد",
"geofileUpdateDialog": "هل تريد حقًا تحديث ملف الجغرافيا؟",
"geofileUpdateDialogDesc": "سيؤدي هذا إلى تحديث ملف #filename#.",
"geofileUpdatePopover": "تم تحديث ملف الجغرافيا بنجاح",
"geofilesUpdateAll": "تحديث الكل",
"geofilesUpdateDialogDesc": "سيؤدي هذا إلى تحديث كافة الملفات.",
"getConfigError": "حدث خطأ أثناء استرجاع ملف الإعدادات",
"getDatabaseError": "حدث خطأ أثناء استرجاع قاعدة البيانات",
"importDatabase": "استرجاع",
"importDatabaseDesc": "اضغط عشان تختار وتحمل ملف .db من جهازك لاسترجاع قاعدة البيانات من نسخة احتياطية.",
"importDatabaseError": "حدث خطأ أثناء استيراد قاعدة البيانات",
"importDatabaseSuccess": "تم استيراد قاعدة البيانات بنجاح",
"ipAddresses": "عناوين IP",
"latestPanelVersion": "أحدث إصدار للبانل",
"logicalProcessors": "المعالجات المنطقية",
"logs": "السجلات",
"memory": "رام",
"operationHours": "مدة التشغيل",
"overallSpeed": "السرعة الكلية",
"panelUpToDate": "البانل محدث لآخر إصدار",
"panelUpdateCheckPopover": "فشل التحقق من تحديث البانل",
"panelUpdateDesc": "ده هيحدث 3X-UI لآخر إصدار وهيعيد تشغيل خدمة البانل.",
"panelUpdateDialog": "هل فعلاً عايز تحدث البانل؟",
"panelUpdateDialogDesc": "ده هيحدث 3X-UI للإصدار #version# وهيعيد تشغيل البانل.",
"panelUpdateStartedPopover": "بدأ تحديث البانل",
"readDatabaseError": "حدث خطأ أثناء قراءة قاعدة البيانات",
"received": "مستقبل",
"restartXray": "إعادة تشغيل",
"sent": "مرسل",
"stopXray": "إيقاف",
"storage": "تخزين",
"swap": "Swap",
"systemHistoryTitle": "تاريخ النظام",
"systemLoad": "تحميل النظام",
"systemLoadDesc": "متوسط تحميل النظام في الدقائق 1, 5, و15",
"threads": "خيوط المعالجة",
"title": "نظرة عامة",
"toggleIpVisibility": "بدل إظهار IP",
"totalData": "إجمالي البيانات",
"trendLast2Min": "آخر دقيقتين",
"upToDate": "محدث",
"updatePanel": "تحديث البانل",
"upload": "رفع",
"xrayErrorPopoverTitle": "حصل خطأ أثناء تشغيل Xray",
"xrayMetricsDisabled": "نقطة نهاية مقاييس Xray غير مهيأة",
"xrayMetricsHint": "أضف كتلة metrics على المستوى الأعلى في إعدادات xray مع tag باسم metrics_out و listen على 127.0.0.1:11111، ثم أعد تشغيل xray.",
"xrayMetricsTitle": "مقاييس Xray",
"xrayObservatoryAlive": "نشط",
"xrayObservatoryDead": "غير متصل",
"xrayObservatoryEmpty": "لا توجد بيانات Observatory بعد",
"xrayObservatoryHint": "أضف كتلة observatory إلى إعدادات xray مع قائمة وسوم outbound للفحص، ثم أعد تشغيل xray.",
"xrayObservatoryLastSeen": "آخر مشاهدة",
"xrayObservatoryLastTry": "آخر محاولة",
"xrayObservatoryTagPlaceholder": "اختر outbound",
"xrayStatus": "Xray",
"xrayStatusError": "فيها غلطة",
"xrayStatusRunning": "شغالة",
"xrayStatusStop": "متوقفة",
"xrayStatusUnknown": "مش معروف",
"xraySwitch": "النسخة",
"xraySwitchClick": "اختار النسخة اللي عايز تتحول لها.",
"xraySwitchClickDesk": "اختار بحذر، النسخ القديمة ممكن ما تتوافقش مع الإعدادات الحالية.",
"xraySwitchVersionDialog": "هل تريد حقًا تغيير إصدار Xray؟",
"xraySwitchVersionDialogDesc": "سيؤدي هذا إلى تغيير إصدار Xray إلى #version#.",
"xraySwitchVersionPopover": "تم تحديث Xray بنجاح",
"xrayUpdates": "تحديثات Xray"
},
"login": {
"hello": "أهلا",
"loginAgain": "انتهت صلاحية الجلسة، سجل دخول تاني",
"title": "أهلاً وسهلاً",
"toasts": {
"emptyPassword": "الباسورد مطلوب",
"emptyUsername": "اسم المستخدم مطلوب",
"invalidFormData": "تنسيق البيانات المدخلة مش صحيح.",
"successLogin": "لقد تم تسجيل الدخول إلى حسابك بنجاح.",
"wrongUsernameOrPassword": "اسم المستخدم أو كلمة المرور أو كود المصادقة الثنائية غير صحيح."
}
},
"nodes": {
"actions": "العمليات",
"addNode": "إضافة نود",
"address": "العنوان",
"addressPlaceholder": "panel.example.com أو 1.2.3.4",
"apiToken": "توكن API",
"apiTokenHint": "البانل البعيد بيعرض توكن API بتاعه في الإعدادات → توكن API.",
"apiTokenPlaceholder": "التوكن من صفحة إعدادات البانل البعيد",
"avgLatency": "متوسط الكمون",
"basePath": "المسار الأساسي",
"connectionFailed": "فشل الاتصال",
"connectionOk": "الاتصال شغال ({ms} ms)",
"cpu": "المعالج",
"deleteConfirmContent": "ده هيوقّف مراقبة النود. البانل البعيد نفسه مش هيتأثر.",
"deleteConfirmTitle": "تحذف النود \"{name}\"؟",
"editNode": "تعديل نود",
"enable": "مفعل",
"justNow": "دلوقتي",
"lastHeartbeat": "آخر نبضة",
"latency": "الكمون",
"mem": "الذاكرة",
"name": "الاسم",
"namePlaceholder": "مثال: de-frankfurt-1",
"never": "أبدًا",
"offlineNodes": "أوفلاين",
"onlineNodes": "أونلاين",
"port": "البورت",
"probe": "فحص فوري",
"regenerate": "تجديد التوكن",
"regenerateConfirm": "تجديد التوكن هيلغي التوكن الحالي. أي بانل مركزي بيستخدمه هيفقد الصلاحية لحد ما تحدّث التوكن. تكمّل؟",
"remark": "ملاحظة",
"scheme": "البروتوكول",
"status": "الحالة",
"statusValues": {
"offline": "أوفلاين",
"online": "أونلاين",
"unknown": "غير معروف"
},
"testConnection": "اختبار الاتصال",
"title": "النودز",
"toasts": {
"add": "إضافة نود",
"delete": "حذف النود",
"deleted": "اتمسح النود",
"fillRequired": "الاسم والعنوان والبورت وتوكن API كلهم مطلوبين",
"list": "فشل تحميل النودز",
"obtain": "فشل تحميل النود",
"probeFailed": "فشل الفحص",
"test": "اختبار الاتصال",
"update": "تحديث النود"
},
"totalNodes": "إجمالي النودز",
"uptime": "مدة التشغيل",
"xrayVersion": "إصدار Xray"
},
"settings": {
"TGBotSettings": "بوت Telegram",
"actions": "إجراءات",
"certs": "الشهادات",
"currentPassword": "الباسورد الحالي",
"dateAndTime": "التاريخ والوقت",
"datepicker": "نوع التقويم",
"datepickerDescription": "المهام المجدولة هتشتغل بناءً على التقويم ده.",
"datepickerPlaceholder": "اختار التاريخ",
"direct": "اتصال مباشر",
"directDesc": "ينشئ اتصال مباشر مع الدومينات أو نطاقات IP لدولة معينة.",
"expireTimeDiff": "تنبيه بتاريخ الانتهاء",
"expireTimeDiffDesc": "استقبل تنبيه قبل ما توصل لتاريخ الانتهاء بالمدة المحددة. (الوحدة: يوم)",
"externalTraffic": "الترافيك الخارجي",
"externalTrafficInformEnable": "تنبيه الترافيك الخارجي",
"externalTrafficInformEnableDesc": "يبعت تنبيه لـ API خارجي مع كل تحديث للترافيك.",
"externalTrafficInformURI": "مسار تنبيه الترافيك الخارجي",
"externalTrafficInformURIDesc": "تحديثات الترافيك هتتبعت للمسار ده.",
"fragment": "تجزئة",
"fragmentDesc": "يفعل تجزئة لحزمة TLS hello.",
"fragmentSett": "إعدادات التجزئة",
"infoDesc": "كل تغيير هتعمله هنا لازم يتخزن. ياريت تعيد تشغيل البانل عشان التعديلات تتفعل.",
"information": "المعلومات",
"intervals": "الفترات",
"language": "اللغة",
"mux": "MUX",
"muxDesc": "ينقل أكثر من تيار بيانات مستقل خلال تيار بيانات واحد قائم.",
"muxSett": "إعدادات MUX",
"newPassword": "الباسورد الجديد",
"newUsername": "اسم المستخدم الجديد",
"noisesDesc": "يفعل التشويش.",
"noisesSett": "إعدادات التشويش",
"notifications": "الإشعارات",
"oldUsername": "اسم المستخدم الحالي",
"pageSize": "حجم الصفحة",
"pageSizeDesc": "حدد حجم الصفحة لجدول الإدخالات. (0 = تعطيل)",
"panelListeningDomain": "دومين الاستماع",
"panelListeningDomainDesc": "اسم الدومين للبانل. (سيبه فاضي عشان يستمع على كل الدومينات والـ IPs)",
"panelListeningIP": "IP الاستماع",
"panelListeningIPDesc": "عنوان IP للبانل. (سيبه فاضي عشان يستمع على كل الـ IPs)",
"panelPort": "بورت الاستماع",
"panelPortDesc": "رقم البورت للبانل. (لازم يكون بورت فاضي)",
"panelSettings": "عام",
"panelUrlPath": "مسار URI",
"panelUrlPathDesc": "مسار URI للبانل. (يبدأ بـ '/' وبينتهي بـ '/')",
"privateKeyPath": "مسار المفتاح الخاص",
"privateKeyPathDesc": "مسار ملف المفتاح الخاص للبانل. (يبدأ بـ '/')",
"proxyAndServer": "البروكسي والسيرفر",
"publicKeyPath": "مسار المفتاح العام",
"publicKeyPathDesc": "مسار ملف المفتاح العام للبانل. (يبدأ بـ '/')",
"remarkModel": "نموذج الملاحظة وحرف الفصل",
"resetDefaultConfig": "استرجاع الافتراضي",
"restartPanel": "إعادة تشغيل البانل",
"restartPanelDesc": "متأكد إنك عايز تعيد تشغيل البانل؟ لو ماقدرتش تدخل بعد إعادة التشغيل، شوف سجل البانل على السيرفر.",
"restartPanelSuccess": "تم إعادة تشغيل اللوحة بنجاح",
"restartXrayOnClientDisable": "إعادة تشغيل Xray بعد التعطيل التلقائي",
"restartXrayOnClientDisableDesc": "عند تعطيل العميل تلقائيا بسبب انتهاء الصلاحية أو حد حركة المرور، أعد تشغيل Xray.",
"sampleRemark": "مثال للملاحظة",
"save": "حفظ",
"security": {
"admin": "بيانات الأدمن",
"twoFactor": "المصادقة الثنائية",
"twoFactorEnable": "تفعيل المصادقة الثنائية",
"twoFactorEnableDesc": "يضيف طبقة إضافية من المصادقة لتعزيز الأمان.",
"twoFactorModalChangeCredentialsStep": "أدخل الرمز من التطبيق لتغيير بيانات اعتماد المسؤول.",
"twoFactorModalChangeCredentialsTitle": "تغيير بيانات الاعتماد",
"twoFactorModalDeleteSuccess": "تم حذف المصادقة الثنائية بنجاح",
"twoFactorModalDeleteTitle": "تعطيل المصادقة الثنائية",
"twoFactorModalError": "رمز خاطئ",
"twoFactorModalFirstStep": "1. امسح رمز QR هذا في تطبيق المصادقة أو انسخ الرمز الموجود بجانب رمز QR والصقه في التطبيق",
"twoFactorModalRemoveStep": "أدخل الرمز من التطبيق لإزالة المصادقة الثنائية.",
"twoFactorModalSecondStep": "2. أدخل الرمز من التطبيق",
"twoFactorModalSetSuccess": "تم إنشاء المصادقة الثنائية بنجاح",
"twoFactorModalSetTitle": "تفعيل المصادقة الثنائية",
"twoFactorModalSteps": "لإعداد المصادقة الثنائية، قم ببعض الخطوات:"
},
"securitySettings": "المصادقة",
"sessionMaxAge": "مدة الجلسة",
"sessionMaxAgeDesc": "المدة اللي تفضل فيها مسجل دخول. (الوحدة: دقيقة)",
"subAnnounce": "إعلان",
"subAnnounceDesc": "نص الإعلان المعروض في عميل VPN",
"subCertPath": "مسار المفتاح العام",
"subCertPathDesc": "مسار ملف المفتاح العام لخدمة الاشتراك. (يبدأ بـ '/')",
"subDomain": "دومين الاستماع",
"subDomainDesc": "اسم الدومين لخدمة الاشتراك. (سيبه فاضي عشان يستمع على كل الدومينات والـ IPs)",
"subEnable": "تفعيل خدمة الاشتراك",
"subEnableDesc": "يفعل خدمة الاشتراك.",
"subEnableRouting": "تفعيل التوجيه",
"subEnableRoutingDesc": "إعداد عام لتمكين التوجيه (Routing) في عميل VPN. (فقط لـ Happ)",
"subEncrypt": "تشفير",
"subEncryptDesc": "المحتوى اللي هيترجع من خدمة الاشتراك هيكون مشفر بـ Base64.",
"subJsonEnable": "تمكين/تعطيل نقطة نهاية اشتراك JSON بشكل مستقل.",
"subKeyPath": "مسار المفتاح الخاص",
"subKeyPathDesc": "مسار ملف المفتاح الخاص لخدمة الاشتراك. (يبدأ بـ '/')",
"subListen": "IP الاستماع",
"subListenDesc": "عنوان IP لخدمة الاشتراك. (سيبه فاضي عشان يستمع على كل الـ IPs)",
"subPath": "مسار URI",
"subPathDesc": "مسار URI لخدمة الاشتراك. (يبدأ بـ '/' وبينتهي بـ '/')",
"subPort": "بورت الاستماع",
"subPortDesc": "رقم البورت لخدمة الاشتراك. (لازم يكون بورت فاضي)",
"subProfileUrl": "رابط الملف الشخصي",
"subProfileUrlDesc": "رابط لموقعك الإلكتروني يظهر في عميل VPN",
"subRoutingRules": "قواعد التوجيه",
"subRoutingRulesDesc": "قواعد التوجيه العامة لعميل VPN. (فقط لـ Happ)",
"subSettings": "الاشتراك",
"subShowInfo": "اظهر معلومات الاستخدام",
"subShowInfoDesc": "هيظهر الترافيك المتبقي والتاريخ في تطبيقات العملاء.",
"subSupportUrl": "رابط الدعم",
"subSupportUrlDesc": "رابط الدعم الفني المعروض في عميل VPN",
"subTitle": "عنوان الاشتراك",
"subTitleDesc": "العنوان اللي هيظهر في عميل VPN",
"subURI": "مسار البروكسي العكسي",
"subURIDesc": "مسار URI لرابط الاشتراك عشان تستخدمه ورا البروكسي.",
"subUpdates": "فترات التحديث",
"subUpdatesDesc": "فترات تحديث رابط الاشتراك في تطبيقات العملاء. (الوحدة: ساعة)",
"telegramAPIServer": "سيرفر Telegram API",
"telegramAPIServerDesc": "سيرفر Telegram API المستخدم. سيبه فاضي لاستخدام الافتراضي.",
"telegramBotEnable": "تفعيل بوت Telegram",
"telegramBotEnableDesc": "يفعل بوت Telegram.",
"telegramBotLanguage": "لغة بوت Telegram",
"telegramChatId": "ID شات الأدمن",
"telegramChatIdDesc": "ID شات الأدمن في Telegram. (مفصول بفواصل)(تقدر تجيبه من {'@'}userinfobot) أو (استخدم '/id' في البوت)",
"telegramNotifyTime": "وقت الإشعار",
"telegramNotifyTimeDesc": "وقت إشعار البوت للتقارير الدورية. (استخدم صيغة وقت crontab)",
"telegramProxy": "بروكسي SOCKS",
"telegramProxyDesc": "يفعل بروكسي SOCKS5 للاتصال بـ Telegram. (اضبط الإعدادات حسب الدليل)",
"telegramToken": "توكن Telegram",
"telegramTokenDesc": "توكن البوت اللي جبت من '{'@'}BotFather'.",
"tgNotifyBackup": "نسخة احتياطية لقاعدة البيانات",
"tgNotifyBackupDesc": "ابعت ملف النسخة الاحتياطية لقاعدة البيانات مع التقرير.",
"tgNotifyCpu": "تنبيه حمل المعالج",
"tgNotifyCpuDesc": "استقبل تنبيه لو حمل المعالج عدى الحد المحدد. (الوحدة: %)",
"tgNotifyLogin": "إشعار بتسجيل الدخول",
"tgNotifyLoginDesc": "استقبل إشعار بكل محاولة تسجيل دخول للبانل مع اسم المستخدم، الـ IP، والوقت.",
"timeZone": "المنطقة الزمنية",
"timeZoneDesc": "المهام المجدولة هتشتغل بناءً على المنطقة الزمنية دي.",
"title": "إعدادات البانل",
"toasts": {
"getOutboundTrafficError": "خطأ في الحصول على حركات المرور الصادرة",
"getSettings": "حدث خطأ أثناء استرداد المعلمات.",
"modifySettings": "تم تغيير المعلمات.",
"modifyUser": "لقد قمت بتغيير بيانات اعتماد المسؤول بنجاح.",
"modifyUserError": "حدث خطأ أثناء تغيير بيانات اعتماد المسؤول.",
"originalUserPassIncorrect": "اسم المستخدم أو الباسورد الحالي غير صحيح",
"resetOutboundTrafficError": "خطأ في إعادة تعيين حركات المرور الصادرة",
"userPassMustBeNotEmpty": "اسم المستخدم والباسورد الجديدين فاضيين"
},
"trafficDiff": "تنبيه حد الترافيك",
"trafficDiffDesc": "استقبل تنبيه عند وصول الترافيك للحد المحدد. (الوحدة: جيجابايت)"
},
"xray": {
"Balancers": "موازنات التحميل",
"FreedomStrategy": "استراتيجية بروتوكول الحرية",
"FreedomStrategyDesc": "اختار استراتيجية المخرجات للشبكة في بروتوكول الحرية.",
"Inbounds": "الإدخالات",
"InboundsDesc": "قبول العملاء المعينين.",
"Outbounds": "المخرجات",
"OutboundsDesc": "حدد مسار الترافيك الصادر.",
"RoutingStrategy": "استراتيجية التوجيه العامة",
"RoutingStrategyDesc": "حدد استراتيجية التوجيه الإجمالية لحل كل الطلبات.",
"Routings": "قواعد التوجيه",
"RoutingsDesc": "أولوية كل قاعدة مهمة جداً!",
"Template": "قالب إعدادات Xray المتقدم",
"TemplateDesc": "ملف إعدادات Xray النهائي هيتولد بناءً على القالب ده.",
"Torrent": "حظر بروتوكول التورنت",
"accessLog": "سجل الوصول",
"accessLogDesc": "مسار ملف سجل الوصول. القيمة الخاصة 'none' بتعطل سجل الوصول.",
"advancedTemplate": "متقدم",
"balancer": {
"addBalancer": "أضف موازن تحميل",
"balancerDesc": "ماينفعش تستخدم balancerTag و outboundTag مع بعض. لو اتستخدموا مع بعض، outboundTag هو اللي هيشتغل.",
"balancerSelectors": "المحددات",
"balancerStrategy": "استراتيجية الموازن",
"editBalancer": "عدل موازن التحميل",
"tag": "تاج",
"tagDesc": "تاج فريد"
},
"basicRouting": "توجيه أساسي",
"basicTemplate": "أساسي",
"blockConfigsDesc": "الخيارات دي هتحجب الترافيك بناءً على بروتوكولات ومواقع محددة.",
"blockConnectionsConfigsDesc": "الخيارات دي هتحجب الترافيك بناءً على الدولة المطلوبة.",
"blockdomains": "حظر دومينات",
"blockips": "حظر IPs",
"completeTemplate": "الكل",
"directConnectionsConfigsDesc": "الاتصال المباشر بيضمن إن الترافيك المعين مايمرش من سيرفر تاني.",
"directdomains": "اتصالات مباشرة للدومينات",
"directips": "اتصالات مباشرة لـ IPs",
"dns": {
"add": "أضف سيرفر",
"clearAll": "حذف الكل",
"clearAllConfirm": "سيؤدي هذا إلى إزالة جميع خوادم DNS من القائمة. لا يمكن التراجع عن هذا الإجراء.",
"clearAllTitle": "حذف جميع خوادم DNS؟",
"clientIp": "IP العميل",
"clientIpDesc": "بيحدد موقع العميل خلال استعلامات DNS",
"disableCache": "تعطيل الكاش",
"disableCacheDesc": "بيعطل تخزين نتائج DNS مؤقتاً",
"disableFallback": "تعطيل النسخ الاحتياطي",
"disableFallbackDesc": "بيعطل استعلامات DNS الاحتياطية",
"disableFallbackIfMatch": "تعطيل النسخ الاحتياطي عند التطابق",
"disableFallbackIfMatchDesc": "بيعطل استعلامات DNS الاحتياطية لما يتحقق تطابق مع قائمة الدومينات",
"dnsPresetFamily": "العائلي",
"dnsPresetTitle": "قوالب DNS",
"domains": "الدومينات",
"edit": "عدل السيرفر",
"enable": "فعل DNS",
"enableDesc": "فعل سيرفر DNS المدمج",
"enableParallelQuery": "تفعيل الاستعلام المتوازي",
"enableParallelQueryDesc": "تفعيل استعلامات DNS المتوازية لعدة خوادم لحل أسرع",
"expectIPs": "العناوين المتوقعة",
"finalQuery": "الاستعلام النهائي",
"hosts": "Hosts",
"hostsAdd": "إضافة Host",
"hostsDomain": "النطاق (مثل domain:example.com)",
"hostsEmpty": "لم يتم تعريف أي Host",
"hostsValues": "عنوان IP أو نطاق — اكتب واضغط Enter",
"serveExpiredTTL": "مدة صلاحية النتائج المنتهية",
"serveExpiredTTLDesc": "مدة صلاحية إدخالات الكاش المنتهية بالثواني؛ 0 = لا تنتهي أبدًا",
"serveStale": "تقديم النتائج المنتهية",
"serveStaleDesc": "إرجاع نتائج الكاش المنتهية الصلاحية أثناء التحديث في الخلفية",
"skipFallback": "تخطي الاحتياطي",
"strategy": "استراتيجية الاستعلام",
"strategyDesc": "الاستراتيجية العامة لحل أسماء الدومين",
"tag": "تاج إدخال DNS",
"tagDesc": "التاج ده هيبقى متاح كإدخال في قواعد التوجيه.",
"timeoutMs": "المهلة (مللي ثانية)",
"unexpectIPs": "عناوين IP غير متوقعة",
"usePreset": "استخدام النموذج",
"useSystemHosts": "استخدام ملف Hosts الخاص بالنظام",
"useSystemHostsDesc": "استخدام ملف hosts من نظام مثبت"
},
"dnsLog": "سجل DNS",
"dnsLogDesc": "لو هتسجل استعلامات DNS.",
"errorLog": "سجل الأخطاء",
"errorLogDesc": "مسار ملف سجل الأخطاء. القيمة الخاصة 'none' بتعطل سجل الأخطاء.",
"fakedns": {
"add": "أضف Fake DNS",
"edit": "عدل Fake DNS",
"ipPool": "نطاق IP Pool",
"poolSize": "حجم المجموعة"
},
"generalConfigs": "إعدادات عامة",
"generalConfigsDesc": "الخيارات دي هتحدد التعديلات العامة.",
"ipv4Routing": "توجيه IPv4",
"ipv4RoutingDesc": "الخيارات دي هتوجه الترافيك بناءً على وجهة معينة عبر IPv4.",
"logConfigs": "السجلات",
"logConfigsDesc": "السجلات ممكن تأثر على كفاءة السيرفر. ننصح بتفعيلها بحكمة لما تكون محتاجها.",
"logLevel": "مستوى السجلات",
"logLevelDesc": "مستوى السجل الخاص بالأخطاء، اللي بيوضح المعلومات المطلوبة للتسجيل.",
"maskAddress": "إخفاء العنوان",
"maskAddressDesc": "إخفاء عنوان الـ IP؛ لو مفعل، هيستبدل تلقائياً عنوان IP اللي بيظهر في السجل.",
"nordRouting": "توجيه NordVPN",
"nordRoutingDesc": "الخيارات دي هتوجه الترافيك بناءً على وجهة معينة عبر NordVPN.",
"outbound": {
"accessToken": "رمز الوصول",
"accountInfo": "معلومات الحساب",
"addOutbound": "أضف مخرج",
"addReverse": "أضف عكسي",
"address": "العنوان",
"allCities": "كل المدن",
"bridge": "جسر",
"city": "المدينة",
"country": "الدولة",
"domain": "دومين",
"editOutbound": "عدل المخرج",
"editReverse": "عدل العكسي",
"intercon": "تواصل",
"link": "رابط",
"load": "الحمل",
"nordvpn": "NordVPN",
"outboundStatus": "حالة المخرج",
"portal": "بوابة",
"privateKey": "المفتاح الخاص",
"reverse": "عكسي",
"reverseTag": "وسم العكسي",
"reverseTagDesc": "وسم الخروج لبروكسي VLESS العكسي البسيط. اتركه فارغاً لتعطيله.",
"reverseTagPlaceholder": "وسم الخروج (اتركه فارغاً للتعطيل)",
"sendThrough": "أرسل من خلال",
"server": "الخادم",
"settings": "إعدادات",
"tag": "تاج",
"tagDesc": "تاج فريد",
"test": "اختبار",
"testError": "فشل اختبار المخرج",
"testFailed": "فشل الاختبار",
"testResult": "نتيجة الاختبار",
"testSuccess": "الاختبار ناجح",
"testing": "جاري اختبار الاتصال...",
"type": "النوع"
},
"outboundTestUrl": "رابط اختبار المخرج",
"outboundTestUrlDesc": "الرابط المستخدم عند اختبار اتصال المخرج",
"restart": "أعد تشغيل Xray",
"restartError": "حدث خطأ أثناء إعادة تشغيل Xray.",
"restartSuccess": "تم إعادة تشغيل Xray بنجاح",
"rules": {
"add": "أضف قاعدة",
"balancer": "موازن",
"dest": "الوجهة",
"down": "تحت",
"edit": "عدل القاعدة",
"first": "أول",
"inbound": "إدخال",
"info": "معلومات",
"last": "آخر",
"outbound": "مخرج",
"source": "المصدر",
"up": "فوق",
"useComma": "عناصر مفصولة بفواصل"
},
"save": "احفظ",
"statistics": "إحصائيات",
"statsInboundDownlink": "إحصائيات تنزيل الإدخال",
"statsInboundDownlinkDesc": "تفعيل جمع الإحصائيات لترافيك التنزيل لكل بروكسي من الإدخالات.",
"statsInboundUplink": "إحصائيات رفع الإدخال",
"statsInboundUplinkDesc": "تفعيل جمع الإحصائيات لترافيك الرفع لكل بروكسي من الإدخالات.",
"statsOutboundDownlink": "إحصائيات تنزيل المخرجات",
"statsOutboundDownlinkDesc": "تفعيل جمع الإحصائيات لترافيك التنزيل لكل بروكسي من المخرجات.",
"statsOutboundUplink": "إحصائيات رفع المخرجات",
"statsOutboundUplinkDesc": "تفعيل جمع الإحصائيات لترافيك الرفع لكل بروكسي من المخرجات.",
"stopError": "حدث خطأ أثناء إيقاف Xray.",
"stopSuccess": "تم إيقاف Xray بنجاح",
"title": "إعدادات Xray",
"tun": {
"mtuDesc": "وحدة النقل الأقصى. الحد الأقصى لحجم حزم البيانات. القيمة الافتراضية هي 1500",
"nameDesc": "اسم واجهة TUN. القيمة الافتراضية هي 'xray0'",
"userLevel": "مستوى المستخدم",
"userLevelDesc": "ستستخدم جميع الاتصالات المُرسلة عبر هذا الإدخال مستوى المستخدم هذا. القيمة الافتراضية هي 0"
},
"warpRouting": "توجيه WARP",
"warpRoutingDesc": "الخيارات دي هتوجه الترافيك بناءً على وجهة معينة عبر WARP.",
"wireguard": {
"allowedIPs": "عناوين IP المسموح بها",
"domainStrategy": "استراتيجية الدومين",
"endpoint": "النهاية",
"psk": "المفتاح المشترك",
"publicKey": "المفتاح العام",
"secretKey": "المفتاح السري"
}
}
},
"password": "الباسورد",
"path": "مسار",
"protocol": "بروتوكول",
"qrCode": "كود QR",
"remained": "المتبقي",
"remark": "ملاحظة",
"reset": "إعادة ضبط",
"save": "حفظ",
"search": "بحث",
"secAlertConf": "بعض الإعدادات معرضة لهجمات. ينصح بتعزيز بروتوكولات الأمان عشان تمنع الاختراقات المحتملة.",
"secAlertPanelPort": "بورت البانل الافتراضي معرض للخطر. ياريت تغير لبورت عشوائي أو محدد.",
"secAlertPanelURI": "مسار URI الافتراضي للبانل مش آمن. ياريت تضبط مسار URI معقد.",
"secAlertSSL": "البانل مش مؤمن. حمّل شهادة TLS لحماية البيانات.",
"secAlertSsl": "الاتصال ده مش آمن. ابعد عن إدخال معلومات حساسة لغاية ما تشغل TLS لحماية البيانات.",
"secAlertSubJsonURI": "مسار URI الافتراضي لاشتراك JSON مش آمن. ياريت تضبط مسار URI معقد.",
"secAlertSubURI": "مسار URI الافتراضي للاشتراك مش آمن. ياريت تضبط مسار URI معقد.",
"secAlertTitle": "تنبيه أمني",
"second": "ثانية",
"security": "أمان",
"somethingWentWrong": "حدث خطأ ما",
"status": "الحالة",
"subscription": {
"active": "نشط",
"downloaded": "التنزيل",
"expiry": "تاريخ الانتهاء",
"inactive": "غير نشط",
"individualLinks": "روابط فردية",
"noExpiry": "بدون انتهاء",
"status": "الحالة",
"subId": "معرّف الاشتراك",
"title": "معلومات الاشتراك",
"totalQuota": "الحصة الإجمالية",
"unlimited": "غير محدود",
"uploaded": "الرفع"
},
"success": "تم بنجاح",
"sure": "متأكد؟",
"tgbot": {
"add": "إضافة",
"answers": {
"IpRefreshSuccess": "✅ {{ .Email }}: الـ IPs اتحدثت بنجاح.",
"TGIdRefreshSuccess": "✅ {{ .Email }}: مستخدم Telegram اتحدث بنجاح.",
"askToAddUserId": "مافيش إعدادات ليك!\r\nاطلب من الأدمن يضيف الـ Telegram ChatID الخاص بيك في إعداداتك.\r\n\r\nالـ ChatID بتاعك: \u003ccode\u003e{{ .TgUserID }}\u003c/code\u003e",
"canceled": "❌ {{ .Email }}: العملية اتلغت.",
"chooseClient": "اختار عميل للإدخال {{ .Inbound }}",
"chooseInbound": "اختار الإدخال",
"clearIpSuccess": "✅ {{ .Email }}: الـ IPs اتمسحت بنجاح.",
"clientRefreshSuccess": "✅ {{ .Email }}: العميل اتحدث بنجاح.",
"disableSuccess": "✅ {{ .Email }}: اتعطل بنجاح.",
"enableSuccess": "✅ {{ .Email }}: اتفعل بنجاح.",
"errorOperation": "❗ حصل خطأ في العملية.",
"expireResetSuccess": "✅ {{ .Email }}: أيام الانتهاء اتظبطت بنجاح.",
"getClientsFailed": "❌ فشل الحصول على العملاء.",
"getInboundsFailed": "❌ فشل الحصول على الإدخالات.",
"getIpLog": "✅ {{ .Email }}: سجل الـ IP اتجاب.",
"getUserInfo": "✅ {{ .Email }}: بيانات مستخدم Telegram اتجاب.",
"removedTGUserSuccess": "✅ {{ .Email }}: مستخدم Telegram اتحذف بنجاح.",
"resetIpSuccess": "✅ {{ .Email }}: حد الـ IP ({{ .Count }}) اتسجل بنجاح.",
"resetTrafficSuccess": "✅ {{ .Email }}: الترافيك اتظبط بنجاح.",
"setTrafficLimitSuccess": "✅ {{ .Email }}: حد الترافيك اتسجل بنجاح.",
"successfulOperation": "✅ العملية نجحت!"
},
"buttons": {
"ResetAllTraffics": "إعادة ضبط جميع الترافيك",
"SortedTrafficUsageReport": "تقرير استخدام الترافيك المرتب",
"addClient": "إضافة عميل",
"allClients": "كل العملاء",
"cancel": "❌ إلغاء",
"cancelIpLimit": "❌ إلغاء حد الـ IP",
"cancelReset": "❌ إلغاء إعادة الضبط",
"change_comment": "⚙️💬 تعليق",
"change_email": "⚙️📧 البريد الإلكتروني",
"change_flow": "🌊 Flow",
"change_id": "⚙️🔑 المعرّف",
"change_password": "⚙️🔑 كلمة السر",
"change_subid": "📝 Sub ID",
"clearIPs": "❌ مسح الـ IPs",
"clientUsage": "استخدام العميل",
"closeKeyboard": "❌ اقفل الكيبورد",
"commands": "الأوامر",
"confirmClearIps": "✅ تأكيد مسح الـ IPs؟",
"confirmNumber": "✅ تأكيد: {{ .Num }}",
"confirmNumberAdd": "✅ تأكيد إضافة: {{ .Num }}",
"confirmRemoveTGUser": "✅ تأكيد حذف مستخدم Telegram؟",
"confirmResetTraffic": "✅ تأكيد إعادة ضبط الترافيك؟",
"confirmToggle": "✅ تأكيد تفعيل/تعطيل المستخدم؟",
"custom": "🔢 مخصص",
"dbBackup": "احصل على نسخة DB",
"depleteSoon": "هينتهي قريب",
"flow_none": "None",
"getBanLogs": "احصل على سجلات الحظر",
"getInbounds": "احصل على الإدخالات",
"ipLimit": "🔢 حد الـ IP",
"ipLog": "🔢 سجل الـ IP",
"limitTraffic": "🚧 حد الترافيك",
"onlines": "العملاء الأونلاين",
"refresh": "🔄 تجديد",
"removeTGUser": "❌ حذف مستخدم Telegram",
"resetExpire": "📅 تغيير تاريخ الانتهاء",
"resetTraffic": "📈 إعادة ضبط الترافيك",
"selectOneTGUser": "👤 اختار مستخدم Telegram:",
"selectTGUser": "👤 اختار مستخدم Telegram",
"serverUsage": "استخدام السيرفر",
"setTGUser": "👤 ضبط مستخدم Telegram",
"submitDisable": "إرسال كمعطّل ☑️",
"submitEnable": "إرسال كمفعّل ✅",
"toggle": "🔘 تفعيل / تعطيل",
"use_default": "🏷️ استخدام الإعدادات الافتراضية"
},
"clients": "العملاء",
"commands": {
"getID": "🆔 الـ ID بتاعك: \u003ccode\u003e{{ .ID }}\u003c/code\u003e",
"help": "🤖 أهلا بيك في البوت! البوت ده معمول عشان يديك بيانات معينة من البانل ويسمحلك بالتعديلات.",
"helpAdminCommands": "عشان تعيد تشغيل Xray Core:\r\n\u003ccode\u003e/restart\u003c/code\u003e\r\n\r\nعشان تدور على إيميل عميل:\r\n\u003ccode\u003e/usage [Email]\u003c/code\u003e\r\n\r\nعشان تدور على إدخالات (مع إحصائيات العملاء):\r\n\u003ccode\u003e/inbound [Remark]\u003c/code\u003e\r\n\r\nID شات Telegram:\r\n\u003ccode\u003e/id\u003c/code\u003e",
"helpClientCommands": "عشان تدور على الإحصائيات، استخدم الأمر ده:\r\n\r\n\u003ccode\u003e/usage [Email]\u003c/code\u003e\r\n\r\nID شات Telegram:\r\n\u003ccode\u003e/id\u003c/code\u003e",
"helpDesc": "مساعدة البوت",
"idDesc": "عرض معرف Telegram الخاص بك",
"pleaseChoose": "👇 من فضلك اختار:\r\n",
"restartFailed": "❗ حصل خطأ في العملية.\r\n\r\n\u003ccode\u003eError: {{ .Error }}\u003c/code\u003e.",
"restartSuccess": "✅ العملية نجحت!",
"restartUsage": "\r\n\r\n\u003ccode\u003e/restart\u003c/code\u003e",
"start": "👋 أهلا \u003ci\u003e{{ .Firstname }}\u003c/i\u003e.\r\n",
"startDesc": "عرض القائمة الرئيسية",
"status": "✅ البوت شغال!",
"statusDesc": "التحقق من حالة البوت",
"unknown": "❗ أمر مش معروف.",
"usage": "❗ من فضلك ادخل نص للتبحث عنه!",
"welcome": "🤖 أهلا بيك في بوت إدارة \u003cb\u003e{{ .Hostname }}\u003c/b\u003e.\r\n",
"xrayNotRunning": "❗ Xray Core مش شغال."
},
"day": "يوم",
"days": "أيام",
"hours": "ساعات",
"inbounds": "الواردات",
"keyboardClosed": "❌ لوحة المفاتيح مغلقة!",
"messages": {
"2faFailed": "فشل 2FA",
"AreYouSure": "إنت متأكد؟ 🤔",
"FailedResetTraffic": "📧 البريد الإلكتروني: {{ .ClientEmail }}\n🏁 النتيجة: ❌ فشل \n\n🛠 الخطأ: [ {{ .ErrorMessage }} ]",
"FinishProcess": "🔚 عملية إعادة ضبط الترافيك خلصت لكل العملاء.",
"SuccessResetTraffic": "📧 البريد الإلكتروني: {{ .ClientEmail }}\n🏁 النتيجة: ✅ تم بنجاح",
"TGUser": "👤 مستخدم Telegram: {{ .TelegramID }}\r\n",
"active": "💡 مفعل: {{ .Enable }}\r\n",
"backupTime": "🗄 وقت النسخة الاحتياطية: {{ .Time }}\r\n",
"cancel": "❌ العملية اتلغت! \n\nممكن تبدأ من /start في أي وقت. 🔄",
"client_flow": "Flow:",
"client_subid": "Sub ID:",
"comment_prompt": "💬 التعليق الافتراضي: {{ .ClientComment }}\n\nادخل تعليقك.",
"cpuThreshold": "🔴 حمل المعالج {{ .Percent }}% عدى الحد المسموح ({{ .Threshold }}%)",
"datetime": "⏰ التاريخ والوقت: {{ .DateTime }}\r\n",
"depleteSoon": "🔜 هينتهي قريب: {{ .Deplete }}\r\n\r\n",
"disabled": "🛑 معطل: {{ .Disabled }}\r\n",
"download": "🔽 تنزيل: ↓{{ .Download }}\r\n",
"email": "📧 الإيميل: {{ .Email }}\r\n",
"email_prompt": "📧 الإيميل الافتراضي: {{ .ClientEmail }}\n\nادخل الإيميل بتاعك.",
"enabled": "🚨 مفعل: {{ .Enable }}\r\n",
"error_add_client": "⚠️ حصل خطأ:\n\n {{ .error }}",
"exhaustedCount": "🚨 عدد النفاذ لـ {{ .Type }}:\r\n",
"exhaustedMsg": "🚨 نفذ {{ .Type }}:\r\n",
"expire": "📅 تاريخ الانتهاء: {{ .Time }}\r\n",
"expireIn": "📅 هيخلص بعد: {{ .Time }}\r\n",
"hostname": "💻 السيرفر: {{ .Hostname }}\r\n",
"id_prompt": "🔑 الـ ID الافتراضي: {{ .ClientId }}\n\nادخل الـ ID بتاعك.",
"inbound": "📍 الإدخال: {{ .Remark }}\r\n",
"inbound_client_data_id": "🔄 الدخول: {{ .InboundRemark }}\n\n🔑 المعرف: {{ .ClientId }}\n📧 البريد الإلكتروني: {{ .ClientEmail }}\n📊 الترافيك: {{ .ClientTraffic }}\n📅 تاريخ الانتهاء: {{ .ClientExp }}\n🌐 حدّ IP: {{ .IpLimit }}\n💬 تعليق: {{ .ClientComment }}\n\nدلوقتي تقدر تضيف العميل على الدخول!",
"inbound_client_data_pass": "🔄 الدخول: {{ .InboundRemark }}\n\n🔑 كلمة المرور: {{ .ClientPass }}\n📧 البريد الإلكتروني: {{ .ClientEmail }}\n📊 الترافيك: {{ .ClientTraffic }}\n📅 تاريخ الانتهاء: {{ .ClientExp }}\n🌐 حدّ IP: {{ .IpLimit }}\n💬 تعليق: {{ .ClientComment }}\n\nدلوقتي تقدر تضيف العميل على الدخول!",
"incorrect_input": "المدخلات مش صحيحة.\nالكلمات لازم تكون متصلة من غير فراغات.\nمثال صحيح: aaaaaa\nمثال غلط: aaa aaa 🚫",
"invalid_subid": "Invalid format.\nSub ID can only contain letters, numbers, hyphens (-), and underscores (_).\nSpaces and special characters are not allowed. 🚫",
"ip": "🌐 IP: {{ .IP }}\r\n",
"ips": "🔢 عناوين IP:\r\n{{ .IPs }}\r\n",
"ipv4": "🌐 IPv4: {{ .IPv4 }}\r\n",
"ipv6": "🌐 IPv6: {{ .IPv6 }}\r\n",
"lastOnline": "🔙 آخر متصل: {{ .Time }}\r\n",
"loginFailed": "❗️فشل محاولة تسجيل الدخول للبانل.\r\n",
"loginSuccess": "✅ تسجيل الدخول للبانل تم بنجاح.\r\n",
"no": "❌ لأ",
"online": "🌐 حالة الاتصال: {{ .Status }}\r\n",
"onlinesCount": "🌐 العملاء الأونلاين: {{ .Count }}\r\n",
"pass_prompt": "🔑 الباسورد الافتراضي: {{ .ClientPassword }}\n\nادخل الباسورد بتاعك.",
"port": "🔌 البورت: {{ .Port }}\r\n",
"reason": "❗️ السبب: {{ .Reason }}\r\n",
"received_comment": "💬📥 التعليق اتحدث.",
"received_email": "📧📥 الإيميل اتحدث.",
"received_id": "🔑📥 الـ ID اتحدث.",
"received_password": "🔑📥 الباسورد اتحدث.",
"received_subid": "Sub ID updated successfully!",
"refreshedOn": "\r\n📋🔄 اتحدّث في: {{ .Time }}\r\n\r\n",
"report": "🕰 التقارير المجدولة: {{ .RunTime }}\r\n",
"selectUserFailed": "❌ حصل خطأ في اختيار المستخدم!",
"serverLoad": "📈 تحميل النظام: {{ .Load1 }}, {{ .Load2 }}, {{ .Load3 }}\r\n",
"serverMemory": "📋 الرام: {{ .Current }}/{{ .Total }}\r\n",
"serverUpTime": "⏳ وقت التشغيل: {{ .UpTime }} {{ .Unit }}\r\n",
"subid_prompt": "Please enter new Sub ID:\nCurrent: {{.ClientSubId}}",
"tcpCount": "🔹 TCP: {{ .Count }}\r\n",
"time": "⏰ الوقت: {{ .Time }}\r\n",
"total": "📊 الإجمالي: ↑↓{{ .UpDown }} / {{ .Total }}\r\n",
"traffic": "🚦 الترافيك: {{ .Total }} (↑{{ .Upload }},↓{{ .Download }})\r\n",
"udpCount": "🔸 UDP: {{ .Count }}\r\n",
"upload": "🔼 رفع: ↑{{ .Upload }}\r\n",
"userSaved": "✅ حفظت بيانات مستخدم Telegram.",
"username": "👤 اسم المستخدم: {{ .Username }}\r\n",
"using_default_value": "تمام، هشيل على القيمة الافتراضية. 😊",
"version": "🚀 نسخة 3X-UI: {{ .Version }}\r\n",
"xrayStatus": " الحالة: {{ .State }}\r\n",
"xrayVersion": "📡 نسخة Xray: {{ .XrayVersion }}\r\n",
"yes": "✅ أيوه"
},
"minutes": "دقائق",
"month": "شهر",
"months": "أشهر",
"noInbounds": "❗ لم يتم العثور على أي وارد!",
"noIpRecord": "❗ لا يوجد سجل IP!",
"noQuery": "❌ لم يتم العثور على الاستعلام! يرجى استخدام الأمر مرة أخرى!",
"noResult": "❗ لا يوجد نتائج!",
"offline": "🔴 غير متصل",
"online": "🟢 متصل",
"unknown": "غير معروف",
"unlimited": "♾ غير محدود (إعادة تعيين)",
"wentWrong": "❌ حدث خطأ ما!"
},
"transmission": "نقل",
"twoFactorCode": "الكود",
"unlimited": "غير محدود",
"update": "تحديث",
"usage": "استخدام",
"useIPv4ForHost": "استخدم IPv4 للمضيف",
"username": "اسم المستخدم"
}