mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-05-31 18:24:10 +00:00
Two PostgreSQL gaps on the panel:
1. x-ui setting and other CLI subcommands read XUI_DB_TYPE/XUI_DB_DSN from
the process environment, which systemd injects via EnvironmentFile but a
plain shell invocation does not. On a PostgreSQL install the CLI silently
fell back to SQLite, so changes made from the management menu never
reached the panel's database. Load the systemd EnvironmentFile
(/etc/default/x-ui and distro equivalents) at startup; godotenv.Load does
not override existing vars, so it stays a no-op for the managed service.
2. DB backup/restore (panel endpoints and the Telegram bot) only handled the
SQLite file, so on PostgreSQL Back Up returned a stale/absent x-ui.db and
Restore silently did nothing. Add pg_dump/pg_restore based backup/restore:
- GetDb/ImportDB run pg_dump (custom format) / pg_restore, passing
credentials via the PG* environment instead of argv.
- getDb downloads x-ui.dump on Postgres, x-ui.db on SQLite.
- Telegram backup sends the matching file via GetDb.
- BackupModal shows a Postgres note and accepts .dump; the dist page
injects window.X_UI_DB_TYPE; new strings translated for all locales.
- install.sh installs postgresql-client for the external-DSN path and
points the user to in-panel Backup & Restore.
Closes #4658
1558 lines
95 KiB
JSON
1558 lines
95 KiB
JSON
{
|
||
"username": "اسم المستخدم",
|
||
"password": "الباسورد",
|
||
"login": "تسجيل الدخول",
|
||
"confirm": "تأكيد",
|
||
"cancel": "إلغاء",
|
||
"close": "إغلاق",
|
||
"save": "حفظ",
|
||
"logout": "تسجيل خروج",
|
||
"create": "إنشاء",
|
||
"add": "إضافة",
|
||
"remove": "إزالة",
|
||
"update": "تحديث",
|
||
"copy": "نسخ",
|
||
"copied": "اتنسخ",
|
||
"more": "المزيد",
|
||
"download": "تحميل",
|
||
"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": "تشفير",
|
||
"useIPv4ForHost": "استخدم IPv4 للمضيف",
|
||
"transmission": "نقل",
|
||
"host": "المضيف",
|
||
"path": "المسار",
|
||
"camouflage": "تمويه",
|
||
"status": "الحالة",
|
||
"enabled": "مفعل",
|
||
"disabled": "معطل",
|
||
"depleted": "خلص",
|
||
"depletingSoon": "هينتهي قريب",
|
||
"offline": "غير متصل",
|
||
"online": "متصل",
|
||
"domainName": "اسم الدومين",
|
||
"monitor": "المسمع IP",
|
||
"certificate": "شهادة رقمية",
|
||
"fail": "فشل",
|
||
"comment": "تعليق",
|
||
"success": "تم بنجاح",
|
||
"lastOnline": "آخر متصل",
|
||
"getVersion": "جيب النسخة",
|
||
"install": "تثبيت",
|
||
"clients": "عملاء",
|
||
"usage": "استخدام",
|
||
"twoFactorCode": "الكود",
|
||
"remained": "المتبقي",
|
||
"security": "أمان",
|
||
"secAlertTitle": "تنبيه أمني",
|
||
"secAlertSsl": "الاتصال ده مش آمن. ابعد عن إدخال معلومات حساسة لغاية ما تشغل TLS لحماية البيانات.",
|
||
"secAlertConf": "بعض الإعدادات معرضة لهجمات. ينصح بتعزيز بروتوكولات الأمان عشان تمنع الاختراقات المحتملة.",
|
||
"secAlertSSL": "البانل مش مؤمن. حمّل شهادة TLS لحماية البيانات.",
|
||
"secAlertPanelPort": "بورت البانل الافتراضي معرض للخطر. ياريت تغير لبورت عشوائي أو محدد.",
|
||
"secAlertPanelURI": "مسار URI الافتراضي للبانل مش آمن. ياريت تضبط مسار URI معقد.",
|
||
"secAlertSubURI": "مسار URI الافتراضي للاشتراك مش آمن. ياريت تضبط مسار URI معقد.",
|
||
"secAlertSubJsonURI": "مسار URI الافتراضي لاشتراك JSON مش آمن. ياريت تضبط مسار URI معقد.",
|
||
"emptyDnsDesc": "مفيش سيرفر DNS مضاف.",
|
||
"emptyFakeDnsDesc": "مفيش سيرفر Fake DNS مضاف.",
|
||
"emptyBalancersDesc": "مفيش موازن تحميل مضاف.",
|
||
"emptyReverseDesc": "مفيش بروكسي عكسي مضاف.",
|
||
"somethingWentWrong": "حدث خطأ ما",
|
||
"subscription": {
|
||
"title": "معلومات الاشتراك",
|
||
"subId": "معرّف الاشتراك",
|
||
"status": "الحالة",
|
||
"downloaded": "التنزيل",
|
||
"uploaded": "الرفع",
|
||
"expiry": "تاريخ الانتهاء",
|
||
"totalQuota": "الحصة الإجمالية",
|
||
"individualLinks": "روابط فردية",
|
||
"active": "نشط",
|
||
"inactive": "غير نشط",
|
||
"unlimited": "غير محدود",
|
||
"noExpiry": "بدون انتهاء"
|
||
},
|
||
"menu": {
|
||
"theme": "الثيم",
|
||
"dark": "داكن",
|
||
"ultraDark": "داكن جدًا",
|
||
"dashboard": "نظرة عامة",
|
||
"inbounds": "الواردات",
|
||
"clients": "العملاء",
|
||
"groups": "المجموعات",
|
||
"nodes": "النودز",
|
||
"settings": "إعدادات اللوحة",
|
||
"xray": "إعدادات Xray",
|
||
"apiDocs": "توثيق API",
|
||
"logout": "تسجيل خروج",
|
||
"link": "إدارة",
|
||
"donate": "تبرع"
|
||
},
|
||
"pages": {
|
||
"login": {
|
||
"hello": "أهلا",
|
||
"title": "أهلاً وسهلاً",
|
||
"loginAgain": "انتهت صلاحية الجلسة، سجل دخول تاني",
|
||
"toasts": {
|
||
"invalidFormData": "تنسيق البيانات المدخلة مش صحيح.",
|
||
"emptyUsername": "اسم المستخدم مطلوب",
|
||
"emptyPassword": "الباسورد مطلوب",
|
||
"wrongUsernameOrPassword": "اسم المستخدم أو كلمة المرور أو كود المصادقة الثنائية غير صحيح.",
|
||
"successLogin": "لقد تم تسجيل الدخول إلى حسابك بنجاح."
|
||
}
|
||
},
|
||
"index": {
|
||
"title": "نظرة عامة",
|
||
"cpu": "CPU",
|
||
"logicalProcessors": "المعالجات المنطقية",
|
||
"frequency": "التردد",
|
||
"swap": "Swap",
|
||
"storage": "تخزين",
|
||
"memory": "RAM",
|
||
"threads": "خيوط",
|
||
"xrayStatus": "Xray",
|
||
"stopXray": "إيقاف",
|
||
"restartXray": "إعادة تشغيل",
|
||
"xraySwitch": "النسخة",
|
||
"xrayUpdates": "تحديثات Xray",
|
||
"xraySwitchClick": "اختار النسخة اللي عايز تتحول لها.",
|
||
"xraySwitchClickDesk": "اختار بحذر، النسخ القديمة ممكن ما تتوافقش مع الإعدادات الحالية.",
|
||
"updatePanel": "تحديث البانل",
|
||
"panelUpdateDesc": "ده هيحدث 3X-UI لآخر إصدار وهيعيد تشغيل خدمة البانل.",
|
||
"currentPanelVersion": "إصدار البانل الحالي",
|
||
"latestPanelVersion": "أحدث إصدار للبانل",
|
||
"panelUpToDate": "البانل محدث لآخر إصدار",
|
||
"upToDate": "محدث",
|
||
"xrayStatusUnknown": "مش معروف",
|
||
"xrayStatusRunning": "شغالة",
|
||
"xrayStatusStop": "متوقفة",
|
||
"xrayStatusError": "خطأ",
|
||
"xrayErrorPopoverTitle": "حصل خطأ أثناء تشغيل Xray",
|
||
"operationHours": "مدة التشغيل",
|
||
"systemHistoryTitle": "تاريخ النظام",
|
||
"charts": "الرسوم البيانية",
|
||
"xrayMetricsTitle": "مقاييس Xray",
|
||
"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": "آخر محاولة",
|
||
"trendLast2Min": "آخر دقيقتين",
|
||
"systemLoad": "تحميل النظام",
|
||
"systemLoadDesc": "متوسط تحميل النظام في الدقائق 1, 5, و15",
|
||
"connectionCount": "إحصائيات الاتصال",
|
||
"ipAddresses": "عناوين IP",
|
||
"toggleIpVisibility": "بدل إظهار IP",
|
||
"overallSpeed": "السرعة الكلية",
|
||
"upload": "رفع",
|
||
"download": "تنزيل",
|
||
"totalData": "إجمالي البيانات",
|
||
"sent": "مرسل",
|
||
"received": "مستقبل",
|
||
"documentation": "التوثيق",
|
||
"xraySwitchVersionDialog": "هل تريد حقًا تغيير إصدار Xray؟",
|
||
"xraySwitchVersionDialogDesc": "سيؤدي هذا إلى تغيير إصدار Xray إلى #version#.",
|
||
"xraySwitchVersionPopover": "تم تحديث Xray بنجاح",
|
||
"panelUpdateDialog": "هل فعلاً عايز تحدث البانل؟",
|
||
"panelUpdateDialogDesc": "ده هيحدث 3X-UI للإصدار #version# وهيعيد تشغيل البانل.",
|
||
"panelUpdateCheckPopover": "فشل التحقق من تحديث البانل",
|
||
"panelUpdateStartedPopover": "بدأ تحديث البانل",
|
||
"geofileUpdateDialog": "هل تريد حقًا تحديث ملف الجغرافيا؟",
|
||
"geofileUpdateDialogDesc": "سيؤدي هذا إلى تحديث ملف #filename#.",
|
||
"geofilesUpdateDialogDesc": "سيؤدي هذا إلى تحديث كافة الملفات.",
|
||
"geofilesUpdateAll": "تحديث الكل",
|
||
"geofileUpdatePopover": "تم تحديث ملف الجغرافيا بنجاح",
|
||
"customGeoTitle": "GeoSite / GeoIP مخصص",
|
||
"customGeoAdd": "إضافة",
|
||
"customGeoType": "النوع",
|
||
"customGeoAlias": "اسم مستعار",
|
||
"customGeoUrl": "URL",
|
||
"customGeoEnabled": "مفعّل",
|
||
"customGeoLastUpdated": "آخر تحديث",
|
||
"customGeoExtColumn": "التوجيه (ext:…)",
|
||
"customGeoToastUpdateAll": "تم تحديث جميع المصادر المخصصة",
|
||
"customGeoActions": "إجراءات",
|
||
"customGeoEdit": "تحرير",
|
||
"customGeoDelete": "حذف",
|
||
"customGeoDownload": "تحديث الآن",
|
||
"customGeoModalAdd": "إضافة geo مخصص",
|
||
"customGeoModalEdit": "تعديل geo مخصص",
|
||
"customGeoModalSave": "حفظ",
|
||
"customGeoDeleteConfirm": "حذف مصدر geo المخصص هذا؟",
|
||
"customGeoRoutingHint": "في قواعد التوجيه استخدم العمود كـ ext:file.dat:tag (استبدل tag).",
|
||
"customGeoInvalidId": "معرّف المورد غير صالح",
|
||
"customGeoAliasesError": "تعذّر تحميل أسماء geo المخصصة",
|
||
"customGeoValidationAlias": "الاسم المستعار: أحرف صغيرة وأرقام و - و _ فقط",
|
||
"customGeoValidationUrl": "يجب أن يبدأ الرابط بـ http:// أو https://",
|
||
"customGeoAliasPlaceholder": "a-z 0-9 _ -",
|
||
"customGeoAliasLabelSuffix": " (مخصص)",
|
||
"customGeoToastList": "قائمة geo المخصص",
|
||
"customGeoToastAdd": "إضافة geo مخصص",
|
||
"customGeoToastUpdate": "تحديث geo مخصص",
|
||
"customGeoToastDelete": "تم حذف geofile «{{ .fileName }}» المخصص",
|
||
"customGeoToastDownload": "تم تحديث geofile «{{ .fileName }}»",
|
||
"customGeoErrInvalidType": "يجب أن يكون النوع geosite أو geoip",
|
||
"customGeoErrAliasRequired": "الاسم المستعار مطلوب",
|
||
"customGeoErrAliasPattern": "الاسم المستعار يحتوي على أحرف غير مسموحة",
|
||
"customGeoErrAliasReserved": "هذا الاسم محجوز",
|
||
"customGeoErrUrlRequired": "الرابط مطلوب",
|
||
"customGeoErrInvalidUrl": "الرابط غير صالح",
|
||
"customGeoErrUrlScheme": "يجب أن يستخدم الرابط http أو https",
|
||
"customGeoErrUrlHost": "مضيف الرابط غير صالح",
|
||
"customGeoErrDuplicateAlias": "هذا الاسم مستخدم مسبقاً لهذا النوع",
|
||
"customGeoErrNotFound": "مصدر geo المخصص غير موجود",
|
||
"customGeoErrDownload": "فشل التنزيل",
|
||
"customGeoErrUpdateAllIncomplete": "تعذر تحديث مصدر واحد أو أكثر من مصادر geo المخصصة",
|
||
"customGeoEmpty": "لا توجد مصادر geo مخصصة بعد — انقر على «إضافة» لإنشاء واحد",
|
||
"dontRefresh": "التثبيت شغال، متعملش Refresh للصفحة",
|
||
"logs": "السجلات",
|
||
"config": "الإعدادات",
|
||
"backup": "نسخ احتياطي",
|
||
"backupTitle": "نسخ احتياطي واستعادة",
|
||
"exportDatabase": "اخزن نسخة",
|
||
"exportDatabaseDesc": "اضغط عشان تحمل ملف .db يحتوي على نسخة احتياطية لقاعدة البيانات الحالية على جهازك.",
|
||
"importDatabase": "استرجاع",
|
||
"importDatabaseDesc": "اضغط عشان تختار وتحمل ملف .db من جهازك لاسترجاع قاعدة البيانات من نسخة احتياطية.",
|
||
"importDatabaseSuccess": "تم استيراد قاعدة البيانات بنجاح",
|
||
"importDatabaseError": "حدث خطأ أثناء استيراد قاعدة البيانات",
|
||
"readDatabaseError": "حدث خطأ أثناء قراءة قاعدة البيانات",
|
||
"getDatabaseError": "حدث خطأ أثناء استرجاع قاعدة البيانات",
|
||
"getConfigError": "حدث خطأ أثناء استرجاع ملف الإعدادات",
|
||
"backupPostgresNote": "تعمل هذه اللوحة على PostgreSQL. يقوم «النسخ الاحتياطي» بتنزيل أرشيف pg_dump (.dump)، و«الاستعادة» تعيد تحميله عبر pg_restore. يجب أن تكون أدوات عميل PostgreSQL (pg_dump و pg_restore) مثبَّتة على الخادم.",
|
||
"exportDatabasePgDesc": "انقر لتنزيل نسخة PostgreSQL (.dump) من قاعدة بياناتك الحالية إلى جهازك.",
|
||
"importDatabasePgDesc": "انقر لاختيار ورفع ملف .dump لاستعادة قاعدة بيانات PostgreSQL. سيؤدي هذا إلى استبدال جميع البيانات الحالية."
|
||
},
|
||
"inbounds": {
|
||
"title": "الواردات",
|
||
"totalDownUp": "إجمالي المرسل/المستقبل",
|
||
"totalUsage": "إجمالي الاستخدام",
|
||
"inboundCount": "عدد الإدخالات",
|
||
"operate": "القائمة",
|
||
"enable": "مفعل",
|
||
"remark": "ملاحظة",
|
||
"node": "العقدة",
|
||
"deployTo": "نشر على",
|
||
"localPanel": "بانل محلي",
|
||
"fallbacks": {
|
||
"title": "Fallbacks",
|
||
"help": "عند وصول اتصال إلى هذا الـ inbound لا يطابق أي عميل، يتم توجيهه إلى inbound آخر. اختر فرعًا أدناه وسيتم ملء حقول التوجيه (SNI / ALPN / Path / xver) تلقائيًا من نقل الفرع — في الغالب لا تحتاج إلى أي تعديل إضافي. يجب أن يستمع كل فرع على 127.0.0.1 مع security=none.",
|
||
"empty": "لا توجد fallbacks بعد",
|
||
"add": "إضافة fallback",
|
||
"pickInbound": "اختر inbound",
|
||
"matchAny": "أي",
|
||
"destPlaceholder": "تلقائي (listen:port للفرع)",
|
||
"rederive": "إعادة الملء من الفرع",
|
||
"rederived": "تم إعادة الملء من الفرع",
|
||
"editAdvanced": "تحرير حقول التوجيه",
|
||
"hideAdvanced": "إخفاء المتقدم",
|
||
"quickAddAll": "إضافة سريعة لكل الـ inbounds المؤهلة",
|
||
"quickAdded": "تمت إضافة {n} fallback",
|
||
"quickAddedNone": "لا توجد inbounds جديدة مؤهلة للإضافة",
|
||
"routesWhen": "يوجَّه عندما",
|
||
"defaultCatchAll": "افتراضي — يلتقط أي شيء آخر"
|
||
},
|
||
"protocol": "بروتوكول",
|
||
"port": "المنفذ",
|
||
"portMap": "تعيين المنفذ",
|
||
"traffic": "حركة المرور",
|
||
"details": "تفاصيل",
|
||
"transportConfig": "النقل",
|
||
"expireDate": "المدة",
|
||
"createdAt": "تاريخ الإنشاء",
|
||
"updatedAt": "تاريخ التحديث",
|
||
"resetTraffic": "إعادة تعيين حركة المرور",
|
||
"addInbound": "أضف إدخال",
|
||
"generalActions": "إجراءات عامة",
|
||
"modifyInbound": "تعديل الإدخال",
|
||
"deleteInbound": "حذف الإدخال",
|
||
"deleteInboundContent": "متأكد إنك عايز تحذف الإدخال؟",
|
||
"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} محدد",
|
||
"detachClients": "فصل العملاء",
|
||
"detachClientsTitle": "فصل عملاء من «{remark}»",
|
||
"detachClientsDesc": "يزيل العميل (العملاء) المحدد من هذا الوارد فقط. تُحفظ سجلات العملاء (استخدم Delete للإزالة الكاملة). المصدر يحتوي على {count} عميل إجمالاً.",
|
||
"detachClientsResult": "فُصل {detached}، تم تخطي {skipped}.",
|
||
"detachClientsResultMixed": "فُصل {detached}، تخطي {skipped}، أخطاء {errors}.",
|
||
"detachClientsSelectLabel": "العملاء للفصل",
|
||
"exportLinksTitle": "تصدير روابط الإدخال",
|
||
"exportSubsTitle": "تصدير روابط الاشتراك",
|
||
"exportAllLinksTitle": "تصدير كل روابط الإدخالات",
|
||
"exportAllSubsTitle": "تصدير كل روابط الاشتراكات",
|
||
"exportAllLinksFileName": "جميع-الواردات",
|
||
"exportAllSubsFileName": "جميع-الواردات-Subs",
|
||
"inboundJsonTitle": "JSON الوارد",
|
||
"deleteClient": "حذف العميل",
|
||
"deleteClientContent": "متأكد إنك عايز تحذف العميل؟",
|
||
"resetTrafficContent": "متأكد إنك عايز تعيد ضبط الترافيك؟",
|
||
"copyLink": "انسخ الرابط",
|
||
"address": "العنوان",
|
||
"network": "الشبكة",
|
||
"destinationPort": "بورت الوجهة",
|
||
"targetAddress": "عنوان الهدف",
|
||
"monitorDesc": "سيبها فاضية لو عايز تستمع على كل الـ IPs",
|
||
"meansNoLimit": "= غير محدود. (الوحدة: GB)",
|
||
"totalFlow": "إجمالي التدفق",
|
||
"leaveBlankToNeverExpire": "سيبها فاضية عشان ماتنتهيش",
|
||
"noRecommendKeepDefault": "ننصح باستخدام الافتراضي",
|
||
"certificatePath": "مسار الملف",
|
||
"certificateContent": "محتوى الملف",
|
||
"publicKey": "المفتاح العام",
|
||
"privatekey": "المفتاح الخاص",
|
||
"clickOnQRcode": "اضغط على كود QR للنسخ",
|
||
"client": "عميل",
|
||
"export": "تصدير كل الروابط",
|
||
"clone": "استنساخ",
|
||
"cloneInbound": "استنساخ الإدخال",
|
||
"cloneInboundContent": "كل إعدادات الإدخال ده، غير البورت، IP الاستماع، والعملاء، هتتطبق على الاستنساخ.",
|
||
"cloneInboundOk": "استنساخ",
|
||
"resetAllTraffic": "إعادة ضبط ترافيك كل الإدخالات",
|
||
"resetAllTrafficTitle": "إعادة ضبط ترافيك كل الإدخالات",
|
||
"resetAllTrafficContent": "متأكد إنك عايز تعيد ضبط الترافيك لكل الإدخالات؟",
|
||
"resetInboundClientTraffics": "إعادة ضبط ترافيك العملاء",
|
||
"resetInboundClientTrafficTitle": "إعادة ضبط ترافيك العملاء",
|
||
"resetInboundClientTrafficContent": "متأكد إنك عايز تعيد ضبط ترافيك عملاء الإدخال ده؟",
|
||
"resetAllClientTraffics": "إعادة ضبط ترافيك كل العملاء",
|
||
"resetAllClientTrafficTitle": "إعادة ضبط ترافيك كل العملاء",
|
||
"resetAllClientTrafficContent": "متأكد إنك عايز تعيد ضبط ترافيك كل العملاء؟",
|
||
"delDepletedClients": "حذف العملاء اللي خلصت",
|
||
"delDepletedClientsTitle": "حذف العملاء اللي خلصت",
|
||
"delDepletedClientsContent": "متأكد إنك عايز تحذف كل العملاء اللي خلصت؟",
|
||
"email": "البريد",
|
||
"emailDesc": "ادخل إيميل فريد.",
|
||
"IPLimit": "تحديد IP",
|
||
"IPLimitDesc": "بيعطل الإدخال لو العدد زاد عن القيمة المحددة. (0 = تعطيل)",
|
||
"IPLimitlog": "سجل IP",
|
||
"IPLimitlogDesc": "سجل تاريخ الـ IPs. (عشان تفعل الإدخال بعد التعطيل، امسح السجل)",
|
||
"IPLimitlogclear": "امسح السجل",
|
||
"setDefaultCert": "استخدم شهادة البانل",
|
||
"setDefaultCertEmpty": "لا توجد شهادة معدّة للوحة. عينّ واحدة من الإعدادات أولاً.",
|
||
"streamTab": "تدفق",
|
||
"securityTab": "الأمان",
|
||
"sniffingTab": "تنصت",
|
||
"sniffingMetadataOnly": "البيانات الوصفية فقط",
|
||
"sniffingRouteOnly": "التوجيه فقط",
|
||
"sniffingIpsExcluded": "IP المستثناة",
|
||
"sniffingDomainsExcluded": "النطاقات المستثناة",
|
||
"decryption": "فك التشفير",
|
||
"encryption": "التشفير",
|
||
"vlessAuthX25519": "مصادقة X25519",
|
||
"vlessAuthMlkem768": "مصادقة ML-KEM-768",
|
||
"vlessAuthCustom": "مخصص",
|
||
"vlessAuthSelected": "المحدد: {auth}",
|
||
"advanced": {
|
||
"title": "أقسام JSON للاتصال الوارد",
|
||
"subtitle": "JSON الكامل للاتصال الوارد ومحررات مخصصة لـ settings و sniffing و streamSettings.",
|
||
"all": "الكل",
|
||
"allHelp": "كائن الاتصال الوارد الكامل بكل الحقول في محرر واحد.",
|
||
"settings": "الإعدادات",
|
||
"settingsHelp": "غلاف كتلة settings في Xray:",
|
||
"sniffing": "Sniffing",
|
||
"sniffingHelp": "غلاف كتلة sniffing في Xray:",
|
||
"stream": "Stream",
|
||
"streamHelp": "غلاف كتلة stream في Xray:",
|
||
"jsonErrorPrefix": "JSON متقدم"
|
||
},
|
||
"telegramDesc": "ادخل ID شات Telegram. (استخدم '/id' في البوت) أو ({'@'}userinfobot)",
|
||
"subscriptionDesc": "عشان تلاقي رابط الاشتراك، ادخل على 'التفاصيل'. وكمان ممكن تستخدم نفس الاسم لعدة عملاء.",
|
||
"same": "نفسه",
|
||
"inboundInfo": "معلومات الإدخال",
|
||
"exportInbound": "تصدير الإدخال",
|
||
"import": "استيراد",
|
||
"importInbound": "استيراد إدخال",
|
||
"periodicTrafficResetTitle": "إعادة تعيين حركة المرور",
|
||
"periodicTrafficResetDesc": "إعادة تعيين عداد حركة المرور تلقائيًا في فترات محددة",
|
||
"lastReset": "آخر إعادة تعيين",
|
||
"periodicTrafficReset": {
|
||
"never": "أبداً",
|
||
"daily": "يومياً",
|
||
"weekly": "أسبوعياً",
|
||
"monthly": "شهرياً",
|
||
"hourly": "كل ساعة"
|
||
},
|
||
"toasts": {
|
||
"obtain": "تم الحصول عليه",
|
||
"updateSuccess": "تم التحديث بنجاح",
|
||
"logCleanSuccess": "تم مسح السجل",
|
||
"inboundsUpdateSuccess": "تم تحديث الواردات بنجاح",
|
||
"inboundUpdateSuccess": "تم تحديث الوارد بنجاح",
|
||
"inboundCreateSuccess": "تم إنشاء الوارد بنجاح",
|
||
"bulkDeleted": "تم حذف {count} إدخال",
|
||
"bulkDeletedMixed": "تم حذف {ok}, وفشل {failed}",
|
||
"inboundDeleteSuccess": "تم حذف الوارد بنجاح",
|
||
"inboundClientAddSuccess": "تمت إضافة عميل(عملاء) وارد",
|
||
"inboundClientDeleteSuccess": "تم حذف عميل وارد",
|
||
"inboundClientUpdateSuccess": "تم تحديث عميل وارد",
|
||
"delDepletedClientsSuccess": "تم حذف جميع العملاء المستنفذين",
|
||
"resetAllClientTrafficSuccess": "تم إعادة تعيين كل حركة المرور من العميل",
|
||
"resetAllTrafficSuccess": "تم إعادة تعيين كل حركة المرور",
|
||
"resetInboundClientTrafficSuccess": "تم إعادة تعيين حركة المرور",
|
||
"resetInboundTrafficSuccess": "تم إعادة تعيين حركة مرور الداخل",
|
||
"trafficGetError": "خطأ في الحصول على حركات المرور",
|
||
"getNewX25519CertError": "حدث خطأ أثناء الحصول على شهادة X25519.",
|
||
"getNewmldsa65Error": "حدث خطاء في الحصول على mldsa65.",
|
||
"getNewVlessEncError": "حدث خطأ أثناء الحصول على VlessEnc."
|
||
},
|
||
"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": "طريقة التشفير",
|
||
"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",
|
||
"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": "وكيل خارجي",
|
||
"sniPlaceholder": "SNI (افتراضياً host)",
|
||
"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",
|
||
"tcpFastOpen": "TCP Fast Open",
|
||
"multipathTcp": "Multipath TCP",
|
||
"penetrate": "Penetrate",
|
||
"v6Only": "V6 فقط",
|
||
"tcpCongestion": "TCP Congestion",
|
||
"dialerProxy": "Dialer Proxy",
|
||
"trustedXForwardedFor": "X-Forwarded-For موثوق",
|
||
"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 المُرمَّزة بـ Base64 لشهادة النظير. للوحة فقط — لا تُكتب في إعدادات xray على الخادم، لكنها تُضمَّن في روابط المشاركة ليتمكَّن العملاء من تثبيت الشهادة.",
|
||
"pinnedPeerCertSha256Placeholder": "تجزئة (تجزئات) base64، مفصولة بفواصل",
|
||
"generateRandomPin": "إنشاء تجزئة عشوائية",
|
||
"getNewEchCert": "احصل على شهادة ECH جديدة",
|
||
"show": "عرض",
|
||
"xver": "Xver",
|
||
"target": "الهدف",
|
||
"maxTimeDiff": "أقصى فرق زمن (ms)",
|
||
"minClientVer": "أدنى إصدار للعميل",
|
||
"maxClientVer": "أقصى إصدار للعميل",
|
||
"shortIds": "Short IDs",
|
||
"spiderX": "SpiderX",
|
||
"getNewCert": "احصل على شهادة جديدة",
|
||
"mldsa65Seed": "mldsa65 Seed",
|
||
"mldsa65Verify": "mldsa65 Verify",
|
||
"getNewSeed": "احصل على Seed جديد"
|
||
},
|
||
"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}"
|
||
},
|
||
"stream": {
|
||
"general": {
|
||
"request": "طلب",
|
||
"response": "رد",
|
||
"name": "اسم",
|
||
"value": "قيمة"
|
||
},
|
||
"tcp": {
|
||
"version": "نسخة",
|
||
"method": "طريقة",
|
||
"path": "المسار",
|
||
"status": "الحالة",
|
||
"statusDescription": "وصف الحالة",
|
||
"requestHeader": "رأس الطلب",
|
||
"responseHeader": "رأس الرد"
|
||
}
|
||
}
|
||
},
|
||
"clients": {
|
||
"add": "إضافة عميل",
|
||
"edit": "تعديل العميل",
|
||
"submitAdd": "إضافة عميل",
|
||
"submitEdit": "حفظ التغييرات",
|
||
"clientCount": "عدد العملاء",
|
||
"bulk": "إضافة مجمعة",
|
||
"copyFromInbound": "نسخ العملاء من الاتصال الوارد",
|
||
"copyToInbound": "نسخ العملاء إلى",
|
||
"copySelected": "نسخ المحدد",
|
||
"copySource": "المصدر",
|
||
"copyEmailPreview": "معاينة البريد الناتج",
|
||
"copySelectSourceFirst": "يرجى تحديد اتصال وارد مصدر أولاً.",
|
||
"copyResult": "نتيجة النسخ",
|
||
"copyResultSuccess": "تم النسخ بنجاح",
|
||
"copyResultNone": "لا شيء للنسخ: لم يتم تحديد عملاء أو أن المصدر فارغ",
|
||
"copyResultErrors": "أخطاء النسخ",
|
||
"copyFlowLabel": "Flow للعملاء الجدد (VLESS)",
|
||
"copyFlowHint": "يُطبَّق على جميع العملاء المنسوخين. اتركه فارغًا للتخطي.",
|
||
"selectAll": "تحديد الكل",
|
||
"clearAll": "مسح الكل",
|
||
"method": "الطريقة",
|
||
"first": "أول",
|
||
"last": "آخر",
|
||
"ipLog": "سجل IP",
|
||
"prefix": "بادئة",
|
||
"postfix": "لاحقة",
|
||
"delayedStart": "البدء بعد أول استخدام",
|
||
"expireDays": "المدة",
|
||
"days": "يوم",
|
||
"renew": "تجديد تلقائي",
|
||
"renewDesc": "تجديد تلقائي بعد انتهاء الصلاحية. (0 = تعطيل) (الوحدة: يوم)",
|
||
"searchPlaceholder": "ابحث بالبريد، التعليق، sub ID، UUID، كلمة المرور، auth…",
|
||
"filterTitle": "تصفية العملاء",
|
||
"clearAllFilters": "مسح الكل",
|
||
"sortOldest": "الأقدم أولاً",
|
||
"sortNewest": "الأحدث أولاً",
|
||
"sortRecentlyUpdated": "محدّث مؤخراً",
|
||
"sortRecentlyOnline": "متصل مؤخراً",
|
||
"sortEmailAZ": "بريد A→Z",
|
||
"sortEmailZA": "بريد Z→A",
|
||
"sortMostTraffic": "الأكثر استهلاكاً",
|
||
"sortHighestRemaining": "الأعلى متبقياً",
|
||
"sortExpiringSoonest": "الأقرب انتهاءً",
|
||
"has": "يملك",
|
||
"hasNot": "لا يملك",
|
||
"title": "العملاء",
|
||
"actions": "الإجراءات",
|
||
"totalGB": "مجموع المرسل/المستقبل (جيجابايت)",
|
||
"expiryTime": "انتهاء الصلاحية",
|
||
"addClients": "إضافة عملاء",
|
||
"limitIp": "حد عناوين IP",
|
||
"password": "كلمة المرور",
|
||
"subId": "معرّف الاشتراك",
|
||
"online": "متصل",
|
||
"email": "البريد",
|
||
"emailInvalidChars": "لا يمكن أن يحتوي البريد الإلكتروني على مسافات أو '/' أو '\\' أو أحرف تحكم",
|
||
"subIdInvalidChars": "لا يمكن أن يحتوي معرّف الاشتراك على مسافات أو '/' أو '\\' أو أحرف تحكم",
|
||
"group": "المجموعة",
|
||
"groupDesc": "تسمية منطقية لتجميع العملاء (مثل فريق، عميل، منطقة). يمكن تصفيتها من شريط الأدوات.",
|
||
"groupPlaceholder": "مثلاً customer-a",
|
||
"comment": "ملاحظة",
|
||
"traffic": "حركة المرور",
|
||
"offline": "غير متصل",
|
||
"addClient": "إضافة عميل",
|
||
"qrCode": "رمز QR",
|
||
"clientInfo": "معلومات العميل",
|
||
"delete": "حذف",
|
||
"reset": "إعادة ضبط حركة المرور",
|
||
"editClient": "تعديل العميل",
|
||
"client": "العميل",
|
||
"enabled": "مفعّل",
|
||
"remaining": "المتبقي",
|
||
"duration": "المدة",
|
||
"attachedInbounds": "الاتصالات الواردة المرتبطة",
|
||
"selectInbound": "حدد اتصالاً واردًا واحدًا أو أكثر",
|
||
"noSubId": "هذا العميل ليس لديه subId، لا يوجد رابط قابل للمشاركة.",
|
||
"noLinks": "لا توجد روابط للمشاركة — قم بإرفاق هذا العميل بأحد الاتصالات الواردة الداعمة للبروتوكول أولاً.",
|
||
"link": "الرابط",
|
||
"resetNotPossible": "قم بإرفاق هذا العميل بأحد الاتصالات الواردة أولاً.",
|
||
"general": "عام",
|
||
"resetAllTraffics": "إعادة ضبط حركة مرور كل العملاء",
|
||
"resetAllTrafficsTitle": "إعادة ضبط حركة مرور كل العملاء؟",
|
||
"resetAllTrafficsContent": "يُعاد ضبط عدّاد الإرسال/الاستقبال لكل عميل إلى الصفر. لا تتأثر الحصص ومواعيد الانتهاء. لا يمكن التراجع.",
|
||
"deleteConfirmTitle": "حذف العميل {email}؟",
|
||
"deleteConfirmContent": "سيؤدي هذا إلى إزالة العميل من جميع الاتصالات الواردة المرتبطة وحذف سجل حركة مروره. لا يمكن التراجع.",
|
||
"deleteSelected": "حذف ({count})",
|
||
"adjustSelected": "تعديل ({count})",
|
||
"subLinksSelected": "روابط الاشتراك ({count})",
|
||
"addToGroupTitle": "إضافة {count} عميل إلى مجموعة",
|
||
"addToGroupTooltip": "اختر مجموعة موجودة أو أدخل اسماً جديداً. استخدم Ungroup لإزالة العملاء من مجموعتهم الحالية.",
|
||
"groupName": "اسم المجموعة",
|
||
"addToGroupSuccessToast": "تمت إضافة {count} عميل إلى {group}",
|
||
"ungroupSuccessToast": "تم مسح المجموعة من {count} عميل",
|
||
"ungroup": "إزالة من المجموعة",
|
||
"ungroupConfirmTitle": "إزالة {count} عميل من مجموعتهم؟",
|
||
"ungroupConfirmContent": "يمسح تسمية المجموعة من كل عميل محدد. يُحفظ العملاء (استخدم Delete للإزالة الكاملة).",
|
||
"addToGroup": "إضافة إلى مجموعة",
|
||
"attach": "إرفاق",
|
||
"adjust": "ضبط",
|
||
"subLinks": "روابط الاشتراك",
|
||
"selectedCount": "{count} محدد",
|
||
"attachSelected": "إرفاق ({count})",
|
||
"attachToInboundsTitle": "إرفاق {count} عميل بالواردات",
|
||
"attachToInboundsDesc": "يربط {count} عميل المحدد (نفس UUID/كلمة المرور والمرور المشترك) بالواردات المختارة. يحتفظون بارتباطاتهم الحالية.",
|
||
"attachToInboundsTargets": "الواردات الهدف",
|
||
"attachToInboundsNoTargets": "لا توجد واردات متعددة المستخدمين للارتباط.",
|
||
"detachSelected": "فصل ({count})",
|
||
"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)",
|
||
"delDepleted": "حذف المنتهية",
|
||
"delDepletedConfirmTitle": "حذف العملاء المنتهية حصصهم؟",
|
||
"delDepletedConfirmContent": "يُحذف كل عميل استُنفِدت حصة حركة مروره أو انتهت صلاحيته. لا يمكن التراجع.",
|
||
"auth": "Auth",
|
||
"hysteriaAuth": "Hysteria Auth",
|
||
"uuid": "UUID",
|
||
"flow": "Flow",
|
||
"vmessSecurity": "أمان VMess",
|
||
"reverseTag": "وسم عكسي",
|
||
"reverseTagPlaceholder": "Reverse tag اختياري",
|
||
"telegramId": "معرّف مستخدم تلغرام",
|
||
"telegramIdPlaceholder": "معرّف مستخدم تلغرام رقمي (0 = لا شيء)",
|
||
"created": "تاريخ الإنشاء",
|
||
"updated": "تاريخ التحديث",
|
||
"ipLimit": "حد IP",
|
||
"toasts": {
|
||
"deleted": "تم حذف العميل",
|
||
"trafficReset": "تمت إعادة ضبط حركة المرور",
|
||
"allTrafficsReset": "تمت إعادة ضبط حركة مرور كل العملاء",
|
||
"bulkDeleted": "تم حذف {count} عميل",
|
||
"bulkDeletedMixed": "تم حذف {ok}, وفشل {failed}",
|
||
"bulkCreated": "تم إنشاء {count} عميل",
|
||
"bulkCreatedMixed": "تم إنشاء {ok}, وفشل {failed}",
|
||
"bulkAdjusted": "تم تعديل {count} عميل",
|
||
"bulkAdjustedMixed": "{ok} تم تعديلهم، {skipped} تم تخطيهم",
|
||
"delDepleted": "تم حذف {count} عميل منتهٍ"
|
||
}
|
||
},
|
||
"groups": {
|
||
"title": "المجموعات",
|
||
"name": "الاسم",
|
||
"clientCount": "عملاء في المجموعة",
|
||
"totalGroups": "إجمالي المجموعات",
|
||
"totalGroupedClients": "العملاء بمجموعة",
|
||
"emptyGroups": "مجموعات فارغة",
|
||
"addGroup": "إضافة مجموعة",
|
||
"createSuccess": "تم إنشاء المجموعة «{name}».",
|
||
"rename": "إعادة تسمية",
|
||
"renameTitle": "إعادة تسمية {name}",
|
||
"renameCollision": "مجموعة باسم «{name}» موجودة بالفعل.",
|
||
"renameSuccess": "تمت إعادة تسمية المجموعة على {count} عميل.",
|
||
"deleteConfirmTitle": "حذف المجموعة {name}؟",
|
||
"deleteConfirmContent": "يحذف المجموعة ويمسح تسميتها من {count} عميل. العملاء أنفسهم لا يُحذفون.",
|
||
"deleteSuccess": "تم مسح المجموعة من {count} عميل.",
|
||
"resetTraffic": "إعادة تعيين حركة المرور",
|
||
"resetConfirmTitle": "إعادة تعيين حركة المرور للمجموعة {name}؟",
|
||
"resetConfirmContent": "يصفر up/down لجميع {count} عميل في هذه المجموعة.",
|
||
"resetSuccess": "تمت إعادة تعيين حركة المرور لـ {count} عميل.",
|
||
"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": {
|
||
"title": "النودز",
|
||
"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.",
|
||
"regenerate": "تجديد التوكن",
|
||
"regenerateConfirm": "تجديد التوكن هيلغي التوكن الحالي. أي بانل مركزي بيستخدمه هيفقد الصلاحية لحد ما تحدّث التوكن. تكمّل؟",
|
||
"allowPrivateAddress": "السماح بالعنوان الخاص",
|
||
"allowPrivateAddressHint": "التفعيل فقط للعقد على شبكة خاصة أو VPN.",
|
||
"enable": "مفعل",
|
||
"status": "الحالة",
|
||
"cpu": "CPU",
|
||
"mem": "الذاكرة",
|
||
"uptime": "مدة التشغيل",
|
||
"latency": "الكمون",
|
||
"lastHeartbeat": "آخر نبضة",
|
||
"xrayVersion": "إصدار Xray",
|
||
"panelVersion": "إصدار اللوحة",
|
||
"actions": "العمليات",
|
||
"probe": "فحص فوري",
|
||
"testConnection": "اختبار الاتصال",
|
||
"connectionOk": "الاتصال شغال ({ms} ms)",
|
||
"connectionFailed": "فشل الاتصال",
|
||
"never": "أبدًا",
|
||
"justNow": "دلوقتي",
|
||
"deleteConfirmTitle": "تحذف النود \"{name}\"؟",
|
||
"deleteConfirmContent": "ده هيوقّف مراقبة النود. البانل البعيد نفسه مش هيتأثر.",
|
||
"statusValues": {
|
||
"online": "متصل",
|
||
"offline": "غير متصل",
|
||
"unknown": "غير معروف"
|
||
},
|
||
"toasts": {
|
||
"list": "فشل تحميل النودز",
|
||
"obtain": "فشل تحميل النود",
|
||
"add": "إضافة نود",
|
||
"update": "تحديث النود",
|
||
"delete": "حذف النود",
|
||
"deleted": "اتمسح النود",
|
||
"test": "اختبار الاتصال",
|
||
"fillRequired": "الاسم والعنوان والبورت وتوكن API كلهم مطلوبين",
|
||
"probeFailed": "فشل الفحص"
|
||
}
|
||
},
|
||
"settings": {
|
||
"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 = تعطيل)",
|
||
"panelProxy": "وكيل شبكة اللوحة",
|
||
"panelProxyDesc": "يوجه طلبات اللوحة الصادرة (تحديثات geo، فحص إصدارات Xray/اللوحة، تيليجرام) عبر هذا الوكيل لتجاوز فلترة GitHub/تيليجرام على الخادم. يقبل socks5:// أو http(s)://، مثل وارد SOCKS محلي لـ Xray. اتركه فارغاً للاتصال المباشر.",
|
||
"remarkModel": "نموذج الملاحظة وحرف الفصل",
|
||
"datepicker": "نوع التقويم",
|
||
"datepickerPlaceholder": "اختار التاريخ",
|
||
"datepickerDescription": "المهام المجدولة هتشتغل بناءً على التقويم ده.",
|
||
"sampleRemark": "مثال للملاحظة",
|
||
"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)",
|
||
"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",
|
||
"subTitle": "عنوان الاشتراك",
|
||
"subTitleDesc": "العنوان اللي هيظهر في عميل VPN",
|
||
"subSupportUrl": "رابط الدعم",
|
||
"subSupportUrlDesc": "رابط الدعم الفني المعروض في عميل VPN",
|
||
"subProfileUrl": "رابط الملف الشخصي",
|
||
"subProfileUrlDesc": "رابط لموقعك الإلكتروني يظهر في عميل VPN",
|
||
"subAnnounce": "إعلان",
|
||
"subAnnounceDesc": "نص الإعلان المعروض في عميل VPN",
|
||
"subEnableRouting": "تفعيل التوجيه",
|
||
"subEnableRoutingDesc": "إعداد عام لتمكين التوجيه (Routing) في عميل VPN. (فقط لـ Happ)",
|
||
"subRoutingRules": "قواعد التوجيه",
|
||
"subRoutingRulesDesc": "قواعد التوجيه العامة لعميل VPN. (فقط لـ Happ)",
|
||
"subListen": "IP الاستماع",
|
||
"subListenDesc": "عنوان IP لخدمة الاشتراك. (سيبه فاضي عشان يستمع على كل الـ IPs)",
|
||
"subPort": "بورت الاستماع",
|
||
"subPortDesc": "رقم البورت لخدمة الاشتراك. (لازم يكون بورت فاضي)",
|
||
"subCertPath": "مسار المفتاح العام",
|
||
"subCertPathDesc": "مسار ملف المفتاح العام لخدمة الاشتراك. (يبدأ بـ '/')",
|
||
"subKeyPath": "مسار المفتاح الخاص",
|
||
"subKeyPathDesc": "مسار ملف المفتاح الخاص لخدمة الاشتراك. (يبدأ بـ '/')",
|
||
"subPath": "مسار URI",
|
||
"subPathDesc": "مسار URI لخدمة الاشتراك. (يبدأ بـ '/' وبينتهي بـ '/')",
|
||
"subDomain": "دومين الاستماع",
|
||
"subDomainDesc": "اسم الدومين لخدمة الاشتراك. (سيبه فاضي عشان يستمع على كل الدومينات والـ IPs)",
|
||
"subUpdates": "فترات التحديث",
|
||
"subUpdatesDesc": "فترات تحديث رابط الاشتراك في تطبيقات العملاء. (الوحدة: ساعة)",
|
||
"subEncrypt": "تشفير",
|
||
"subEncryptDesc": "المحتوى اللي هيترجع من خدمة الاشتراك هيكون مشفر بـ Base64.",
|
||
"subShowInfo": "اظهر معلومات الاستخدام",
|
||
"subShowInfoDesc": "هيظهر الترافيك المتبقي والتاريخ في تطبيقات العملاء.",
|
||
"subEmailInRemark": "تضمين البريد الإلكتروني في الاسم",
|
||
"subEmailInRemarkDesc": "تضمين بريد العميل الإلكتروني في اسم ملف تعريف الاشتراك.",
|
||
"subURI": "مسار البروكسي العكسي",
|
||
"subURIDesc": "مسار URI لرابط الاشتراك عشان تستخدمه ورا البروكسي.",
|
||
"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)",
|
||
"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": {
|
||
"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": "المعلومات",
|
||
"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": "أي عميل يستخدم هذا الرمز سيفقد المصادقة فورًا."
|
||
},
|
||
"toasts": {
|
||
"modifySettings": "تم تغيير المعلمات.",
|
||
"getSettings": "حدث خطأ أثناء استرداد المعلمات.",
|
||
"modifyUserError": "حدث خطأ أثناء تغيير بيانات اعتماد المسؤول.",
|
||
"modifyUser": "لقد قمت بتغيير بيانات اعتماد المسؤول بنجاح.",
|
||
"originalUserPassIncorrect": "اسم المستخدم أو الباسورد الحالي غير صحيح",
|
||
"userPassMustBeNotEmpty": "اسم المستخدم والباسورد الجديدين فاضيين",
|
||
"getOutboundTrafficError": "خطأ في الحصول على حركات المرور الصادرة",
|
||
"resetOutboundTrafficError": "خطأ في إعادة تعيين حركات المرور الصادرة"
|
||
}
|
||
},
|
||
"xray": {
|
||
"title": "إعدادات Xray",
|
||
"save": "احفظ",
|
||
"restart": "إعادة تشغيل Xray",
|
||
"restartSuccess": "تم إعادة تشغيل Xray بنجاح",
|
||
"restartOutputTitle": "مخرجات إعادة تشغيل Xray",
|
||
"restartConfirmTitle": "إعادة تشغيل xray؟",
|
||
"restartConfirmContent": "يعيد تحميل خدمة xray بالتكوين المحفوظ.",
|
||
"stopSuccess": "تم إيقاف Xray بنجاح",
|
||
"restartError": "حدث خطأ أثناء إعادة تشغيل Xray.",
|
||
"stopError": "حدث خطأ أثناء إيقاف Xray.",
|
||
"basicTemplate": "أساسي",
|
||
"advancedTemplate": "متقدم",
|
||
"generalConfigs": "إعدادات عامة",
|
||
"generalConfigsDesc": "الخيارات دي هتحدد التعديلات العامة.",
|
||
"logConfigs": "السجل",
|
||
"logConfigsDesc": "السجلات ممكن تأثر على كفاءة السيرفر. ننصح بتفعيلها بحكمة لما تكون محتاجها.",
|
||
"blockConfigsDesc": "الخيارات دي هتحجب الترافيك بناءً على بروتوكولات ومواقع محددة.",
|
||
"basicRouting": "توجيه أساسي",
|
||
"blockConnectionsConfigsDesc": "الخيارات دي هتحجب الترافيك بناءً على الدولة المطلوبة.",
|
||
"directConnectionsConfigsDesc": "الاتصال المباشر بيضمن إن الترافيك المعين مايمرش من سيرفر تاني.",
|
||
"blockips": "حظر IPs",
|
||
"blockdomains": "حظر دومينات",
|
||
"directips": "اتصالات مباشرة لـ IPs",
|
||
"directdomains": "اتصالات مباشرة للدومينات",
|
||
"ipv4Routing": "توجيه IPv4",
|
||
"ipv4RoutingDesc": "الخيارات دي هتوجه الترافيك بناءً على وجهة معينة عبر IPv4.",
|
||
"warpRouting": "توجيه WARP",
|
||
"warpRoutingDesc": "الخيارات دي هتوجه الترافيك بناءً على وجهة معينة عبر WARP.",
|
||
"nordRouting": "توجيه NordVPN",
|
||
"nordRoutingDesc": "الخيارات دي هتوجه الترافيك بناءً على وجهة معينة عبر NordVPN.",
|
||
"Template": "قالب إعدادات Xray المتقدم",
|
||
"TemplateDesc": "ملف إعدادات Xray النهائي هيتولد بناءً على القالب ده.",
|
||
"FreedomStrategy": "استراتيجية بروتوكول الحرية",
|
||
"FreedomStrategyDesc": "اختار استراتيجية المخرجات للشبكة في بروتوكول الحرية.",
|
||
"RoutingStrategy": "استراتيجية التوجيه العامة",
|
||
"RoutingStrategyDesc": "حدد استراتيجية التوجيه الإجمالية لحل كل الطلبات.",
|
||
"outboundTestUrl": "رابط اختبار المخرج",
|
||
"outboundTestUrlDesc": "الرابط المستخدم عند اختبار اتصال المخرج",
|
||
"Torrent": "حظر بروتوكول التورنت",
|
||
"Inbounds": "الواردات",
|
||
"InboundsDesc": "قبول العملاء المعينين.",
|
||
"Outbounds": "الصادرات",
|
||
"Balancers": "موازنات التحميل",
|
||
"balancerTagRequired": "الوسم مطلوب",
|
||
"balancerSelectorRequired": "اختر صادراً واحداً على الأقل",
|
||
"OutboundsDesc": "حدد مسار الترافيك الصادر.",
|
||
"Routings": "قواعد التوجيه",
|
||
"RoutingsDesc": "أولوية كل قاعدة مهمة جداً!",
|
||
"completeTemplate": "الكل",
|
||
"logLevel": "مستوى السجلات",
|
||
"logLevelDesc": "مستوى السجل الخاص بالأخطاء، اللي بيوضح المعلومات المطلوبة للتسجيل.",
|
||
"accessLog": "سجل الوصول",
|
||
"accessLogDesc": "مسار ملف سجل الوصول. القيمة الخاصة 'none' بتعطل سجل الوصول.",
|
||
"errorLog": "سجل الأخطاء",
|
||
"errorLogDesc": "مسار ملف سجل الأخطاء. القيمة الخاصة 'none' بتعطل سجل الأخطاء.",
|
||
"dnsLog": "سجل DNS",
|
||
"dnsLogDesc": "لو هتسجل استعلامات DNS.",
|
||
"maskAddress": "إخفاء العنوان",
|
||
"maskAddressDesc": "إخفاء عنوان الـ IP؛ لو مفعل، هيستبدل تلقائياً عنوان IP اللي بيظهر في السجل.",
|
||
"statistics": "إحصائيات",
|
||
"statsInboundUplink": "إحصائيات رفع الإدخال",
|
||
"statsInboundUplinkDesc": "تفعيل جمع الإحصائيات لترافيك الرفع لكل بروكسي من الإدخالات.",
|
||
"statsInboundDownlink": "إحصائيات تنزيل الإدخال",
|
||
"statsInboundDownlinkDesc": "تفعيل جمع الإحصائيات لترافيك التنزيل لكل بروكسي من الإدخالات.",
|
||
"statsOutboundUplink": "إحصائيات رفع المخرجات",
|
||
"statsOutboundUplinkDesc": "تفعيل جمع الإحصائيات لترافيك الرفع لكل بروكسي من المخرجات.",
|
||
"statsOutboundDownlink": "إحصائيات تنزيل المخرجات",
|
||
"statsOutboundDownlinkDesc": "تفعيل جمع الإحصائيات لترافيك التنزيل لكل بروكسي من المخرجات.",
|
||
"rules": {
|
||
"first": "أول",
|
||
"last": "آخر",
|
||
"up": "فوق",
|
||
"down": "تحت",
|
||
"source": "المصدر",
|
||
"dest": "الوجهة",
|
||
"inbound": "إدخال",
|
||
"outbound": "مخرج",
|
||
"balancer": "موازن",
|
||
"info": "معلومات",
|
||
"add": "أضف قاعدة",
|
||
"edit": "عدل القاعدة",
|
||
"useComma": "عناصر مفصولة بفواصل"
|
||
},
|
||
"routing": {
|
||
"dragToReorder": "اسحب لإعادة الترتيب"
|
||
},
|
||
"ruleForm": {
|
||
"sourceIps": "IPs المصدر",
|
||
"sourcePort": "منفذ المصدر",
|
||
"vlessRoute": "مسار VLESS",
|
||
"attributes": "الخصائص",
|
||
"value": "القيمة",
|
||
"user": "المستخدم",
|
||
"inboundTags": "وسوم الواردات",
|
||
"outboundTag": "وسم الصادر",
|
||
"balancerTag": "وسم الموازن",
|
||
"balancerTagTooltip": "يوجه حركة المرور عبر أحد موازنات الحمل المهيأة"
|
||
},
|
||
"outboundForm": {
|
||
"tagDuplicate": "الوسم مستخدم بالفعل من قبل صادر آخر",
|
||
"tagRequired": "الوسم مطلوب",
|
||
"tagPlaceholder": "وسم-فريد",
|
||
"localIpPlaceholder": "IP محلي",
|
||
"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",
|
||
"fragment": "Fragment",
|
||
"finalRules": "القواعد النهائية",
|
||
"overrideXrayPrivateIp": "تجاوز حظر IP الخاص الافتراضي في Xray",
|
||
"blockDelay": "تأخير الحظر (ms)",
|
||
"reverseSniffing": "Sniffing عكسي",
|
||
"workers": "Workers",
|
||
"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": "الواجهة",
|
||
"ipv6Only": "IPv6 فقط",
|
||
"acceptProxyProtocol": "قبول proxy protocol",
|
||
"proxyProtocol": "Proxy protocol",
|
||
"tcpUserTimeoutMs": "TCP user timeout (ms)",
|
||
"tcpKeepAliveIdleS": "TCP keep-alive idle (ثانية)"
|
||
},
|
||
"outbound": {
|
||
"addOutbound": "أضف مخرج",
|
||
"addReverse": "أضف عكسي",
|
||
"editOutbound": "عدل المخرج",
|
||
"editReverse": "عدل العكسي",
|
||
"reverseTag": "وسم العكسي",
|
||
"reverseTagDesc": "وسم الخروج لبروكسي VLESS العكسي البسيط. اتركه فارغاً لتعطيله.",
|
||
"reverseTagPlaceholder": "وسم الخروج (اتركه فارغاً للتعطيل)",
|
||
"tag": "الوسم",
|
||
"tagDesc": "تاج فريد",
|
||
"address": "العنوان",
|
||
"reverse": "عكسي",
|
||
"domain": "النطاق",
|
||
"type": "النوع",
|
||
"bridge": "Bridge",
|
||
"portal": "Portal",
|
||
"link": "الرابط",
|
||
"intercon": "تواصل",
|
||
"settings": "إعدادات",
|
||
"accountInfo": "معلومات الحساب",
|
||
"outboundStatus": "حالة المخرج",
|
||
"sendThrough": "أرسل من خلال",
|
||
"test": "اختبار",
|
||
"testResult": "نتيجة الاختبار",
|
||
"testing": "جاري اختبار الاتصال...",
|
||
"testSuccess": "الاختبار ناجح",
|
||
"testFailed": "فشل الاختبار",
|
||
"testError": "فشل اختبار المخرج",
|
||
"testModeTooltip": "TCP: فحص dial سريع. HTTP: طلب كامل عبر xray.",
|
||
"testAll": "اختبار الكل",
|
||
"nordvpn": "NordVPN",
|
||
"accessToken": "رمز الوصول",
|
||
"country": "الدولة",
|
||
"server": "الخادم",
|
||
"city": "المدينة",
|
||
"allCities": "كل المدن",
|
||
"privateKey": "المفتاح الخاص",
|
||
"load": "الحمل"
|
||
},
|
||
"balancer": {
|
||
"addBalancer": "أضف موازن تحميل",
|
||
"editBalancer": "عدل موازن التحميل",
|
||
"balancerStrategy": "استراتيجية الموازن",
|
||
"balancerSelectors": "المحددات",
|
||
"tag": "الوسم",
|
||
"tagDesc": "تاج فريد",
|
||
"tagDuplicate": "الوسم مستخدم بالفعل من قبل موازن آخر",
|
||
"tagPlaceholder": "وسم موازن فريد",
|
||
"selector": "المحدد",
|
||
"fallback": "Fallback",
|
||
"expected": "المتوقع",
|
||
"expectedPlaceholder": "العدد الأمثل للعقد",
|
||
"maxRtt": "أقصى RTT",
|
||
"tolerance": "التحمل",
|
||
"baselines": "Baselines",
|
||
"costs": "Costs",
|
||
"balancerDesc": "ماينفعش تستخدم balancerTag و outboundTag مع بعض. لو اتستخدموا مع بعض، outboundTag هو اللي هيشتغل."
|
||
},
|
||
"wireguard": {
|
||
"secretKey": "المفتاح السري",
|
||
"publicKey": "المفتاح العام",
|
||
"allowedIPs": "عناوين IP المسموح بها",
|
||
"endpoint": "النهاية",
|
||
"psk": "المفتاح المشترك",
|
||
"domainStrategy": "استراتيجية الدومين"
|
||
},
|
||
"tun": {
|
||
"nameDesc": "اسم واجهة TUN. القيمة الافتراضية هي 'xray0'",
|
||
"mtuDesc": "وحدة النقل الأقصى. الحد الأقصى لحجم حزم البيانات. القيمة الافتراضية هي 1500",
|
||
"userLevel": "مستوى المستخدم",
|
||
"userLevelDesc": "ستستخدم جميع الاتصالات المُرسلة عبر هذا الإدخال مستوى المستخدم هذا. القيمة الافتراضية هي 0"
|
||
},
|
||
"nord": {
|
||
"accessToken": "Access token",
|
||
"privateKey": "المفتاح الخاص",
|
||
"noServers": "لم يتم العثور على خوادم للدولة المحددة",
|
||
"noPublicKey": "الخادم المحدد لا يُعلن عن مفتاح NordLynx العام.",
|
||
"outboundAdded": "تمت إضافة صادر NordVPN",
|
||
"outboundUpdated": "تم تحديث صادر NordVPN"
|
||
},
|
||
"warp": {
|
||
"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 من القائمة. لا يمكن التراجع عن هذا الإجراء."
|
||
},
|
||
"fakedns": {
|
||
"add": "أضف Fake DNS",
|
||
"edit": "عدل Fake DNS",
|
||
"ipPool": "نطاق IP Pool",
|
||
"poolSize": "حجم المجموعة"
|
||
}
|
||
}
|
||
},
|
||
"tgbot": {
|
||
"keyboardClosed": "❌ لوحة المفاتيح مغلقة!",
|
||
"noResult": "❗ لا يوجد نتائج!",
|
||
"noQuery": "❌ لم يتم العثور على الاستعلام! يرجى استخدام الأمر مرة أخرى!",
|
||
"wentWrong": "❌ حدث خطأ ما!",
|
||
"noIpRecord": "❗ لا يوجد سجل IP!",
|
||
"noInbounds": "❗ لم يتم العثور على أي وارد!",
|
||
"unlimited": "♾ غير محدود (إعادة تعيين)",
|
||
"add": "إضافة",
|
||
"month": "شهر",
|
||
"months": "أشهر",
|
||
"day": "يوم",
|
||
"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 الخاص بك"
|
||
},
|
||
"messages": {
|
||
"cpuThreshold": "🔴 حمل المعالج {{ .Percent }}% عدى الحد المسموح ({{ .Threshold }}%)",
|
||
"selectUserFailed": "❌ حصل خطأ في اختيار المستخدم!",
|
||
"userSaved": "✅ حفظت بيانات مستخدم Telegram.",
|
||
"loginSuccess": "✅ تسجيل الدخول للبانل تم بنجاح.\r\n",
|
||
"loginFailed": "❗️فشل محاولة تسجيل الدخول للبانل.\r\n",
|
||
"2faFailed": "فشل 2FA",
|
||
"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",
|
||
"exhaustedMsg": "🚨 نفذ {{ .Type }}:\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_id": "🔑📥 الـ ID اتحدث.",
|
||
"received_password": "🔑📥 الباسورد اتحدث.",
|
||
"received_email": "📧📥 الإيميل اتحدث.",
|
||
"received_comment": "💬📥 التعليق اتحدث.",
|
||
"id_prompt": "🔑 الـ ID الافتراضي: {{ .ClientId }}\n\nادخل الـ ID بتاعك.",
|
||
"pass_prompt": "🔑 الباسورد الافتراضي: {{ .ClientPassword }}\n\nادخل الباسورد بتاعك.",
|
||
"email_prompt": "📧 الإيميل الافتراضي: {{ .ClientEmail }}\n\nادخل الإيميل بتاعك.",
|
||
"comment_prompt": "💬 التعليق الافتراضي: {{ .ClientComment }}\n\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دلوقتي تقدر تضيف العميل على الدخول!",
|
||
"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": "🔚 عملية إعادة ضبط الترافيك خلصت لكل العملاء."
|
||
},
|
||
"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_id": "⚙️🔑 ID",
|
||
"change_password": "⚙️🔑 كلمة السر",
|
||
"change_email": "⚙️📧 البريد",
|
||
"change_comment": "⚙️💬 تعليق",
|
||
"change_flow": "⚙️🚦 Flow",
|
||
"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": "اختار الإدخال"
|
||
}
|
||
}
|
||
}
|