mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-08-29 22:47:14 +00:00
i18n(panel): migrate hardcoded panel strings to en-US and translate all locales
Surface ~400 hardcoded English labels, tooltips, placeholders, dt/divider text, modal okText/cancelText, and Spin loading from the panel pages (clients/groups/inbounds/nodes/settings/xray/sub/index) into web/translation/en-US.json under existing pages.<page>.* namespaces, with JSX swapped to t(...). Brand and protocol identifiers (TLS, MTU, SNI, NordVPN, Cloudflare WARP, etc.) stay literal. Sync all 12 non-English locales (ar-EG, es-ES, fa-IR, id-ID, ja-JP, pt-BR, ru-RU, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW) to match en-US's structure and translate the 521 new key paths per locale. Every locale file now has 1539 lines, mirroring en-US ordering. Also remove a dead duplicate "info": "Info" key under pages.inbounds that collided with the new pages.inbounds.info.* object. Backend: bulk attach/detach errors in web/service/client.go now route through logger.Warningf (so they appear under /panel/api/server/logs/) instead of only living on the response payload.
This commit is contained in:
+496
-79
@@ -8,15 +8,22 @@
|
||||
"save": "حفظ",
|
||||
"logout": "تسجيل خروج",
|
||||
"create": "إنشاء",
|
||||
"add": "إضافة",
|
||||
"remove": "إزالة",
|
||||
"update": "تحديث",
|
||||
"copy": "نسخ",
|
||||
"copied": "اتنسخ",
|
||||
"more": "المزيد",
|
||||
"download": "تحميل",
|
||||
"remark": "ملاحظة",
|
||||
"enable": "مفعل",
|
||||
"protocol": "بروتوكول",
|
||||
"search": "بحث",
|
||||
"filter": "فلترة",
|
||||
"filter": "تصفية",
|
||||
"all": "الكل",
|
||||
"from": "من",
|
||||
"to": "إلى",
|
||||
"done": "تم",
|
||||
"loading": "جاري التحميل...",
|
||||
"refresh": "تحديث",
|
||||
"clear": "مسح",
|
||||
@@ -27,28 +34,28 @@
|
||||
"check": "شيك",
|
||||
"indefinite": "غير محدد",
|
||||
"unlimited": "غير محدود",
|
||||
"none": "مفيش",
|
||||
"none": "لا شيء",
|
||||
"qrCode": "كود QR",
|
||||
"info": "معلومات أكتر",
|
||||
"edit": "تعديل",
|
||||
"edit": "تحرير",
|
||||
"delete": "مسح",
|
||||
"reset": "إعادة ضبط",
|
||||
"reset": "إعادة تعيين",
|
||||
"noData": "لا توجد بيانات.",
|
||||
"copySuccess": "اتنسخ بنجاح",
|
||||
"sure": "متأكد؟",
|
||||
"encryption": "تشفير",
|
||||
"useIPv4ForHost": "استخدم IPv4 للمضيف",
|
||||
"transmission": "نقل",
|
||||
"host": "المستضيف",
|
||||
"path": "مسار",
|
||||
"host": "المضيف",
|
||||
"path": "المسار",
|
||||
"camouflage": "تمويه",
|
||||
"status": "الحالة",
|
||||
"enabled": "مفعل",
|
||||
"disabled": "معطل",
|
||||
"depleted": "خلص",
|
||||
"depletingSoon": "هينتهي قريب",
|
||||
"offline": "أوفلاين",
|
||||
"online": "أونلاين",
|
||||
"offline": "غير متصل",
|
||||
"online": "متصل",
|
||||
"domainName": "اسم الدومين",
|
||||
"monitor": "المسمع IP",
|
||||
"certificate": "شهادة رقمية",
|
||||
@@ -95,10 +102,11 @@
|
||||
"dark": "داكن",
|
||||
"ultraDark": "داكن جدًا",
|
||||
"dashboard": "نظرة عامة",
|
||||
"inbounds": "الإدخالات",
|
||||
"inbounds": "الواردات",
|
||||
"clients": "العملاء",
|
||||
"groups": "المجموعات",
|
||||
"nodes": "النودز",
|
||||
"settings": "إعدادات البانل",
|
||||
"settings": "إعدادات اللوحة",
|
||||
"xray": "إعدادات Xray",
|
||||
"apiDocs": "توثيق API",
|
||||
"logout": "تسجيل خروج",
|
||||
@@ -120,13 +128,13 @@
|
||||
},
|
||||
"index": {
|
||||
"title": "نظرة عامة",
|
||||
"cpu": "المعالج",
|
||||
"cpu": "CPU",
|
||||
"logicalProcessors": "المعالجات المنطقية",
|
||||
"frequency": "التردد",
|
||||
"swap": "Swap",
|
||||
"storage": "تخزين",
|
||||
"memory": "رام",
|
||||
"threads": "خيوط المعالجة",
|
||||
"memory": "RAM",
|
||||
"threads": "خيوط",
|
||||
"xrayStatus": "Xray",
|
||||
"stopXray": "إيقاف",
|
||||
"restartXray": "إعادة تشغيل",
|
||||
@@ -143,7 +151,7 @@
|
||||
"xrayStatusUnknown": "مش معروف",
|
||||
"xrayStatusRunning": "شغالة",
|
||||
"xrayStatusStop": "متوقفة",
|
||||
"xrayStatusError": "فيها غلطة",
|
||||
"xrayStatusError": "خطأ",
|
||||
"xrayErrorPopoverTitle": "حصل خطأ أثناء تشغيل Xray",
|
||||
"operationHours": "مدة التشغيل",
|
||||
"systemHistoryTitle": "تاريخ النظام",
|
||||
@@ -186,14 +194,14 @@
|
||||
"customGeoTitle": "GeoSite / GeoIP مخصص",
|
||||
"customGeoAdd": "إضافة",
|
||||
"customGeoType": "النوع",
|
||||
"customGeoAlias": "الاسم المستعار",
|
||||
"customGeoAlias": "اسم مستعار",
|
||||
"customGeoUrl": "URL",
|
||||
"customGeoEnabled": "مفعّل",
|
||||
"customGeoLastUpdated": "آخر تحديث",
|
||||
"customGeoExtColumn": "التوجيه (ext:…)",
|
||||
"customGeoToastUpdateAll": "تم تحديث جميع المصادر المخصصة",
|
||||
"customGeoActions": "إجراءات",
|
||||
"customGeoEdit": "تعديل",
|
||||
"customGeoEdit": "تحرير",
|
||||
"customGeoDelete": "حذف",
|
||||
"customGeoDownload": "تحديث الآن",
|
||||
"customGeoModalAdd": "إضافة geo مخصص",
|
||||
@@ -228,7 +236,7 @@
|
||||
"dontRefresh": "التثبيت شغال، متعملش Refresh للصفحة",
|
||||
"logs": "السجلات",
|
||||
"config": "الإعدادات",
|
||||
"backup": "نسخة احتياطية",
|
||||
"backup": "نسخ احتياطي",
|
||||
"backupTitle": "نسخ احتياطي واستعادة",
|
||||
"exportDatabase": "اخزن نسخة",
|
||||
"exportDatabaseDesc": "اضغط عشان تحمل ملف .db يحتوي على نسخة احتياطية لقاعدة البيانات الحالية على جهازك.",
|
||||
@@ -241,18 +249,18 @@
|
||||
"getConfigError": "حدث خطأ أثناء استرجاع ملف الإعدادات"
|
||||
},
|
||||
"inbounds": {
|
||||
"title": "الإدخالات",
|
||||
"title": "الواردات",
|
||||
"totalDownUp": "إجمالي المرسل/المستقبل",
|
||||
"totalUsage": "إجمالي الاستخدام",
|
||||
"inboundCount": "عدد الإدخالات",
|
||||
"operate": "القائمة",
|
||||
"enable": "مفعل",
|
||||
"remark": "ملاحظة",
|
||||
"node": "نود",
|
||||
"node": "العقدة",
|
||||
"deployTo": "نشر على",
|
||||
"localPanel": "بانل محلي",
|
||||
"fallbacks": {
|
||||
"title": "الـ Fallbacks",
|
||||
"title": "Fallbacks",
|
||||
"help": "عند وصول اتصال إلى هذا الـ inbound لا يطابق أي عميل، يتم توجيهه إلى inbound آخر. اختر فرعًا أدناه وسيتم ملء حقول التوجيه (SNI / ALPN / Path / xver) تلقائيًا من نقل الفرع — في الغالب لا تحتاج إلى أي تعديل إضافي. يجب أن يستمع كل فرع على 127.0.0.1 مع security=none.",
|
||||
"empty": "لا توجد fallbacks بعد",
|
||||
"add": "إضافة fallback",
|
||||
@@ -269,15 +277,15 @@
|
||||
"defaultCatchAll": "افتراضي — يلتقط أي شيء آخر"
|
||||
},
|
||||
"protocol": "بروتوكول",
|
||||
"port": "بورت",
|
||||
"portMap": "خريطة البورت",
|
||||
"traffic": "الترافيك",
|
||||
"port": "المنفذ",
|
||||
"portMap": "تعيين المنفذ",
|
||||
"traffic": "حركة المرور",
|
||||
"details": "تفاصيل",
|
||||
"transportConfig": "نقل",
|
||||
"transportConfig": "النقل",
|
||||
"expireDate": "المدة",
|
||||
"createdAt": "تاريخ الإنشاء",
|
||||
"updatedAt": "تاريخ التحديث",
|
||||
"resetTraffic": "إعادة ضبط الترافيك",
|
||||
"resetTraffic": "إعادة تعيين حركة المرور",
|
||||
"addInbound": "أضف إدخال",
|
||||
"generalActions": "إجراءات عامة",
|
||||
"modifyInbound": "تعديل الإدخال",
|
||||
@@ -292,11 +300,29 @@
|
||||
"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": "تصدير كل روابط الاشتراكات",
|
||||
"inboundJsonTitle": "JSON الإدخال",
|
||||
"inboundJsonTitle": "JSON الوارد",
|
||||
"deleteClient": "حذف العميل",
|
||||
"deleteClientContent": "متأكد إنك عايز تحذف العميل؟",
|
||||
"resetTrafficContent": "متأكد إنك عايز تعيد ضبط الترافيك؟",
|
||||
@@ -306,7 +332,7 @@
|
||||
"destinationPort": "بورت الوجهة",
|
||||
"targetAddress": "عنوان الهدف",
|
||||
"monitorDesc": "سيبها فاضية لو عايز تستمع على كل الـ IPs",
|
||||
"meansNoLimit": "= غير محدود. (الوحدة: جيجابايت)",
|
||||
"meansNoLimit": "= غير محدود. (الوحدة: GB)",
|
||||
"totalFlow": "إجمالي التدفق",
|
||||
"leaveBlankToNeverExpire": "سيبها فاضية عشان ماتنتهيش",
|
||||
"noRecommendKeepDefault": "ننصح باستخدام الافتراضي",
|
||||
@@ -333,7 +359,7 @@
|
||||
"delDepletedClients": "حذف العملاء اللي خلصت",
|
||||
"delDepletedClientsTitle": "حذف العملاء اللي خلصت",
|
||||
"delDepletedClientsContent": "متأكد إنك عايز تحذف كل العملاء اللي خلصت؟",
|
||||
"email": "الإيميل",
|
||||
"email": "البريد",
|
||||
"emailDesc": "ادخل إيميل فريد.",
|
||||
"IPLimit": "تحديد IP",
|
||||
"IPLimitDesc": "بيعطل الإدخال لو العدد زاد عن القيمة المحددة. (0 = تعطيل)",
|
||||
@@ -341,9 +367,10 @@
|
||||
"IPLimitlogDesc": "سجل تاريخ الـ IPs. (عشان تفعل الإدخال بعد التعطيل، امسح السجل)",
|
||||
"IPLimitlogclear": "امسح السجل",
|
||||
"setDefaultCert": "استخدم شهادة البانل",
|
||||
"streamTab": "الدفق",
|
||||
"setDefaultCertEmpty": "لا توجد شهادة معدّة للوحة. عينّ واحدة من الإعدادات أولاً.",
|
||||
"streamTab": "Stream",
|
||||
"securityTab": "الأمان",
|
||||
"sniffingTab": "الاستشعار",
|
||||
"sniffingTab": "Sniffing",
|
||||
"sniffingMetadataOnly": "البيانات الوصفية فقط",
|
||||
"sniffingRouteOnly": "التوجيه فقط",
|
||||
"sniffingIpsExcluded": "IP المستثناة",
|
||||
@@ -361,15 +388,14 @@
|
||||
"allHelp": "كائن الاتصال الوارد الكامل بكل الحقول في محرر واحد.",
|
||||
"settings": "الإعدادات",
|
||||
"settingsHelp": "غلاف كتلة settings في Xray:",
|
||||
"sniffing": "الاستشعار",
|
||||
"sniffing": "Sniffing",
|
||||
"sniffingHelp": "غلاف كتلة sniffing في Xray:",
|
||||
"stream": "الدفق",
|
||||
"stream": "Stream",
|
||||
"streamHelp": "غلاف كتلة stream في Xray:",
|
||||
"jsonErrorPrefix": "JSON متقدم"
|
||||
},
|
||||
"telegramDesc": "ادخل ID شات Telegram. (استخدم '/id' في البوت) أو ({'@'}userinfobot)",
|
||||
"subscriptionDesc": "عشان تلاقي رابط الاشتراك، ادخل على 'التفاصيل'. وكمان ممكن تستخدم نفس الاسم لعدة عملاء.",
|
||||
"info": "معلومات",
|
||||
"same": "نفسه",
|
||||
"inboundData": "بيانات الإدخال",
|
||||
"exportInbound": "تصدير الإدخال",
|
||||
@@ -406,6 +432,139 @@
|
||||
"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",
|
||||
"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": "طلب",
|
||||
@@ -416,7 +575,7 @@
|
||||
"tcp": {
|
||||
"version": "نسخة",
|
||||
"method": "طريقة",
|
||||
"path": "مسار",
|
||||
"path": "المسار",
|
||||
"status": "الحالة",
|
||||
"statusDescription": "وصف الحالة",
|
||||
"requestHeader": "رأس الطلب",
|
||||
@@ -456,6 +615,20 @@
|
||||
"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": "مجموع المرسل/المستقبل (جيجابايت)",
|
||||
@@ -465,7 +638,10 @@
|
||||
"password": "كلمة المرور",
|
||||
"subId": "معرّف الاشتراك",
|
||||
"online": "متصل",
|
||||
"email": "البريد الإلكتروني",
|
||||
"email": "البريد",
|
||||
"group": "المجموعة",
|
||||
"groupDesc": "تسمية منطقية لتجميع العملاء (مثل فريق، عميل، منطقة). يمكن تصفيتها من شريط الأدوات.",
|
||||
"groupPlaceholder": "مثلاً customer-a",
|
||||
"comment": "ملاحظة",
|
||||
"traffic": "حركة المرور",
|
||||
"offline": "غير متصل",
|
||||
@@ -483,17 +659,51 @@
|
||||
"selectInbound": "حدد اتصالاً واردًا واحدًا أو أكثر",
|
||||
"noSubId": "هذا العميل ليس لديه subId، لا يوجد رابط قابل للمشاركة.",
|
||||
"noLinks": "لا توجد روابط للمشاركة — قم بإرفاق هذا العميل بأحد الاتصالات الواردة الداعمة للبروتوكول أولاً.",
|
||||
"link": "رابط",
|
||||
"link": "الرابط",
|
||||
"resetNotPossible": "قم بإرفاق هذا العميل بأحد الاتصالات الواردة أولاً.",
|
||||
"general": "عام",
|
||||
"resetAllTraffics": "إعادة ضبط حركة مرور كل العملاء",
|
||||
"resetAllTrafficsTitle": "إعادة ضبط حركة مرور كل العملاء؟",
|
||||
"resetAllTrafficsContent": "يُعاد ضبط عدّاد الإرسال/الاستقبال لكل عميل إلى الصفر. لا تتأثر الحصص ومواعيد الانتهاء. لا يمكن التراجع.",
|
||||
"empty": "لا يوجد عملاء بعد — أضف واحدًا للبدء.",
|
||||
"deleteConfirmTitle": "حذف العميل {email}؟",
|
||||
"deleteConfirmContent": "سيؤدي هذا إلى إزالة العميل من جميع الاتصالات الواردة المرتبطة وحذف سجل حركة مروره. لا يمكن التراجع.",
|
||||
"deleteSelected": "حذف ({count})",
|
||||
"adjustSelected": "تعديل ({count})",
|
||||
"subLinksSelected": "روابط الاشتراك ({count})",
|
||||
"addToGroupTitle": "إضافة {count} عميل إلى مجموعة",
|
||||
"addToGroupTooltip": "اختر مجموعة موجودة أو أدخل اسماً جديداً. استخدم Ungroup لإزالة العملاء من مجموعتهم الحالية.",
|
||||
"addToGroupPlaceholder": "اسم المجموعة",
|
||||
"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} عميل",
|
||||
@@ -505,10 +715,11 @@
|
||||
"delDepletedConfirmTitle": "حذف العملاء المنتهية حصصهم؟",
|
||||
"delDepletedConfirmContent": "يُحذف كل عميل استُنفِدت حصة حركة مروره أو انتهت صلاحيته. لا يمكن التراجع.",
|
||||
"auth": "Auth",
|
||||
"hysteriaAuth": "Auth (Hysteria)",
|
||||
"hysteriaAuth": "Hysteria Auth",
|
||||
"uuid": "UUID",
|
||||
"flow": "Flow",
|
||||
"reverseTag": "Reverse tag",
|
||||
"vmessSecurity": "أمان VMess",
|
||||
"reverseTag": "وسم عكسي",
|
||||
"reverseTagPlaceholder": "Reverse tag اختياري",
|
||||
"telegramId": "معرّف مستخدم تلغرام",
|
||||
"telegramIdPlaceholder": "معرّف مستخدم تلغرام رقمي (0 = لا شيء)",
|
||||
@@ -528,13 +739,51 @@
|
||||
"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": "تعديل نود",
|
||||
"editNode": "تحرير العقدة",
|
||||
"totalNodes": "إجمالي النودز",
|
||||
"onlineNodes": "أونلاين",
|
||||
"offlineNodes": "أوفلاين",
|
||||
"onlineNodes": "متصل",
|
||||
"offlineNodes": "غير متصل",
|
||||
"avgLatency": "متوسط الكمون",
|
||||
"name": "الاسم",
|
||||
"namePlaceholder": "مثال: de-frankfurt-1",
|
||||
@@ -542,9 +791,9 @@
|
||||
"remark": "ملاحظة",
|
||||
"scheme": "البروتوكول",
|
||||
"address": "العنوان",
|
||||
"port": "البورت",
|
||||
"port": "المنفذ",
|
||||
"basePath": "المسار الأساسي",
|
||||
"apiToken": "توكن API",
|
||||
"apiToken": "رمز API",
|
||||
"apiTokenPlaceholder": "التوكن من صفحة إعدادات البانل البعيد",
|
||||
"apiTokenHint": "البانل البعيد بيعرض توكن API بتاعه في الإعدادات → توكن API.",
|
||||
"regenerate": "تجديد التوكن",
|
||||
@@ -553,7 +802,7 @@
|
||||
"allowPrivateAddressHint": "التفعيل فقط للعقد على شبكة خاصة أو VPN.",
|
||||
"enable": "مفعل",
|
||||
"status": "الحالة",
|
||||
"cpu": "المعالج",
|
||||
"cpu": "CPU",
|
||||
"mem": "الذاكرة",
|
||||
"uptime": "مدة التشغيل",
|
||||
"latency": "الكمون",
|
||||
@@ -570,8 +819,8 @@
|
||||
"deleteConfirmTitle": "تحذف النود \"{name}\"؟",
|
||||
"deleteConfirmContent": "ده هيوقّف مراقبة النود. البانل البعيد نفسه مش هيتأثر.",
|
||||
"statusValues": {
|
||||
"online": "أونلاين",
|
||||
"offline": "أوفلاين",
|
||||
"online": "متصل",
|
||||
"offline": "غير متصل",
|
||||
"unknown": "غير معروف"
|
||||
},
|
||||
"toasts": {
|
||||
@@ -590,7 +839,7 @@
|
||||
"title": "إعدادات البانل",
|
||||
"save": "حفظ",
|
||||
"infoDesc": "كل تغيير هتعمله هنا لازم يتخزن. ياريت تعيد تشغيل البانل عشان التعديلات تتفعل.",
|
||||
"restartPanel": "إعادة تشغيل البانل",
|
||||
"restartPanel": "إعادة تشغيل اللوحة",
|
||||
"restartPanelDesc": "متأكد إنك عايز تعيد تشغيل البانل؟ لو ماقدرتش تدخل بعد إعادة التشغيل، شوف سجل البانل على السيرفر.",
|
||||
"restartPanelSuccess": "تم إعادة تشغيل اللوحة بنجاح",
|
||||
"actions": "إجراءات",
|
||||
@@ -604,7 +853,7 @@
|
||||
"warnDefaultBasePath": "المسار الأساسي الافتراضي \"/\" معروف — غيّره إلى مسار عشوائي.",
|
||||
"warnDefaultSubPath": "مسار الاشتراك الافتراضي \"/sub/\" معروف — قم بتغييره.",
|
||||
"warnDefaultJsonPath": "مسار اشتراك JSON الافتراضي \"/json/\" معروف — قم بتغييره.",
|
||||
"TGBotSettings": "بوت Telegram",
|
||||
"TGBotSettings": "بوت تيليجرام",
|
||||
"panelListeningIP": "IP الاستماع",
|
||||
"panelListeningIPDesc": "عنوان IP للبانل. (سيبه فاضي عشان يستمع على كل الـ IPs)",
|
||||
"panelListeningDomain": "دومين الاستماع",
|
||||
@@ -619,6 +868,8 @@
|
||||
"panelUrlPathDesc": "مسار URI للبانل. (يبدأ بـ '/' وبينتهي بـ '/')",
|
||||
"pageSize": "حجم الصفحة",
|
||||
"pageSizeDesc": "حدد حجم الصفحة لجدول الإدخالات. (0 = تعطيل)",
|
||||
"panelProxy": "وكيل شبكة اللوحة",
|
||||
"panelProxyDesc": "يوجه طلبات اللوحة الصادرة (تحديثات geo، فحص إصدارات Xray/اللوحة، تيليجرام) عبر هذا الوكيل لتجاوز فلترة GitHub/تيليجرام على الخادم. يقبل socks5:// أو http(s)://، مثل وارد SOCKS محلي لـ Xray. اتركه فارغاً للاتصال المباشر.",
|
||||
"remarkModel": "نموذج الملاحظة وحرف الفصل",
|
||||
"datepicker": "نوع التقويم",
|
||||
"datepickerPlaceholder": "اختار التاريخ",
|
||||
@@ -630,11 +881,11 @@
|
||||
"newPassword": "الباسورد الجديد",
|
||||
"telegramBotEnable": "تفعيل بوت Telegram",
|
||||
"telegramBotEnableDesc": "يفعل بوت Telegram.",
|
||||
"telegramToken": "توكن Telegram",
|
||||
"telegramToken": "رمز تيليجرام",
|
||||
"telegramTokenDesc": "توكن البوت اللي جبت من '{'@'}BotFather'.",
|
||||
"telegramProxy": "بروكسي SOCKS",
|
||||
"telegramProxy": "وكيل SOCKS",
|
||||
"telegramProxyDesc": "يفعل بروكسي SOCKS5 للاتصال بـ Telegram. (اضبط الإعدادات حسب الدليل)",
|
||||
"telegramAPIServer": "سيرفر Telegram API",
|
||||
"telegramAPIServer": "خادم API لتيليجرام",
|
||||
"telegramAPIServerDesc": "سيرفر Telegram API المستخدم. سيبه فاضي لاستخدام الافتراضي.",
|
||||
"telegramChatId": "ID شات الأدمن",
|
||||
"telegramChatIdDesc": "ID شات الأدمن في Telegram. (مفصول بفواصل)(تقدر تجيبه من {'@'}userinfobot) أو (استخدم '/id' في البوت)",
|
||||
@@ -658,6 +909,8 @@
|
||||
"subEnable": "تفعيل خدمة الاشتراك",
|
||||
"subEnableDesc": "يفعل خدمة الاشتراك.",
|
||||
"subJsonEnable": "تمكين/تعطيل نقطة نهاية اشتراك JSON بشكل مستقل.",
|
||||
"subJsonEnableTitle": "اشتراك JSON",
|
||||
"subClashEnableTitle": "اشتراك Clash / Mihomo",
|
||||
"subTitle": "عنوان الاشتراك",
|
||||
"subTitleDesc": "العنوان اللي هيظهر في عميل VPN",
|
||||
"subSupportUrl": "رابط الدعم",
|
||||
@@ -693,7 +946,7 @@
|
||||
"subURI": "مسار البروكسي العكسي",
|
||||
"subURIDesc": "مسار URI لرابط الاشتراك عشان تستخدمه ورا البروكسي.",
|
||||
"externalTrafficInformEnable": "تنبيه الترافيك الخارجي",
|
||||
"externalTrafficInformEnableDesc": "يبعت تنبيه لـ API خارجي مع كل تحديث للترافيك.",
|
||||
"externalTrafficInformEnableDesc": "إخطار واجهة API خارجية بكل تحديث لحركة المرور.",
|
||||
"externalTrafficInformURI": "مسار تنبيه الترافيك الخارجي",
|
||||
"externalTrafficInformURIDesc": "تحديثات الترافيك هتتبعت للمسار ده.",
|
||||
"restartXrayOnClientDisable": "إعادة تشغيل Xray بعد التعطيل التلقائي",
|
||||
@@ -703,7 +956,55 @@
|
||||
"fragmentSett": "إعدادات التجزئة",
|
||||
"noisesDesc": "يفعل التشويش.",
|
||||
"noisesSett": "إعدادات التشويش",
|
||||
"mux": "MUX",
|
||||
"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": "اتصال مباشر",
|
||||
@@ -756,8 +1057,11 @@
|
||||
"xray": {
|
||||
"title": "إعدادات Xray",
|
||||
"save": "احفظ",
|
||||
"restart": "أعد تشغيل Xray",
|
||||
"restart": "إعادة تشغيل Xray",
|
||||
"restartSuccess": "تم إعادة تشغيل Xray بنجاح",
|
||||
"restartOutputTitle": "مخرجات إعادة تشغيل Xray",
|
||||
"restartConfirmTitle": "إعادة تشغيل xray؟",
|
||||
"restartConfirmContent": "يعيد تحميل خدمة xray بالتكوين المحفوظ.",
|
||||
"stopSuccess": "تم إيقاف Xray بنجاح",
|
||||
"restartError": "حدث خطأ أثناء إعادة تشغيل Xray.",
|
||||
"stopError": "حدث خطأ أثناء إيقاف Xray.",
|
||||
@@ -765,7 +1069,7 @@
|
||||
"advancedTemplate": "متقدم",
|
||||
"generalConfigs": "إعدادات عامة",
|
||||
"generalConfigsDesc": "الخيارات دي هتحدد التعديلات العامة.",
|
||||
"logConfigs": "السجلات",
|
||||
"logConfigs": "السجل",
|
||||
"logConfigsDesc": "السجلات ممكن تأثر على كفاءة السيرفر. ننصح بتفعيلها بحكمة لما تكون محتاجها.",
|
||||
"blockConfigsDesc": "الخيارات دي هتحجب الترافيك بناءً على بروتوكولات ومواقع محددة.",
|
||||
"basicRouting": "توجيه أساسي",
|
||||
@@ -790,10 +1094,12 @@
|
||||
"outboundTestUrl": "رابط اختبار المخرج",
|
||||
"outboundTestUrlDesc": "الرابط المستخدم عند اختبار اتصال المخرج",
|
||||
"Torrent": "حظر بروتوكول التورنت",
|
||||
"Inbounds": "الإدخالات",
|
||||
"Inbounds": "الواردات",
|
||||
"InboundsDesc": "قبول العملاء المعينين.",
|
||||
"Outbounds": "المخرجات",
|
||||
"Outbounds": "الصادرات",
|
||||
"Balancers": "موازنات التحميل",
|
||||
"balancerTagRequired": "الوسم مطلوب",
|
||||
"balancerSelectorRequired": "اختر صادراً واحداً على الأقل",
|
||||
"OutboundsDesc": "حدد مسار الترافيك الصادر.",
|
||||
"Routings": "قواعد التوجيه",
|
||||
"RoutingsDesc": "أولوية كل قاعدة مهمة جداً!",
|
||||
@@ -832,6 +1138,73 @@
|
||||
"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",
|
||||
"tcpUserTimeoutMs": "TCP user timeout (ms)",
|
||||
"tcpKeepAliveIdleS": "TCP keep-alive idle (ثانية)"
|
||||
},
|
||||
"outbound": {
|
||||
"addOutbound": "أضف مخرج",
|
||||
"addReverse": "أضف عكسي",
|
||||
@@ -840,15 +1213,15 @@
|
||||
"reverseTag": "وسم العكسي",
|
||||
"reverseTagDesc": "وسم الخروج لبروكسي VLESS العكسي البسيط. اتركه فارغاً لتعطيله.",
|
||||
"reverseTagPlaceholder": "وسم الخروج (اتركه فارغاً للتعطيل)",
|
||||
"tag": "تاج",
|
||||
"tag": "الوسم",
|
||||
"tagDesc": "تاج فريد",
|
||||
"address": "العنوان",
|
||||
"reverse": "عكسي",
|
||||
"domain": "دومين",
|
||||
"domain": "النطاق",
|
||||
"type": "النوع",
|
||||
"bridge": "جسر",
|
||||
"portal": "بوابة",
|
||||
"link": "رابط",
|
||||
"bridge": "Bridge",
|
||||
"portal": "Portal",
|
||||
"link": "الرابط",
|
||||
"intercon": "تواصل",
|
||||
"settings": "إعدادات",
|
||||
"accountInfo": "معلومات الحساب",
|
||||
@@ -860,6 +1233,8 @@
|
||||
"testSuccess": "الاختبار ناجح",
|
||||
"testFailed": "فشل الاختبار",
|
||||
"testError": "فشل اختبار المخرج",
|
||||
"testModeTooltip": "TCP: فحص dial سريع. HTTP: طلب كامل عبر xray.",
|
||||
"testAll": "اختبار الكل",
|
||||
"nordvpn": "NordVPN",
|
||||
"accessToken": "رمز الوصول",
|
||||
"country": "الدولة",
|
||||
@@ -874,8 +1249,18 @@
|
||||
"editBalancer": "عدل موازن التحميل",
|
||||
"balancerStrategy": "استراتيجية الموازن",
|
||||
"balancerSelectors": "المحددات",
|
||||
"tag": "تاج",
|
||||
"tag": "الوسم",
|
||||
"tagDesc": "تاج فريد",
|
||||
"tagDuplicate": "الوسم مستخدم بالفعل من قبل موازن آخر",
|
||||
"tagPlaceholder": "وسم موازن فريد",
|
||||
"selector": "المحدد",
|
||||
"fallback": "Fallback",
|
||||
"expected": "المتوقع",
|
||||
"expectedPlaceholder": "العدد الأمثل للعقد",
|
||||
"maxRtt": "أقصى RTT",
|
||||
"tolerance": "التحمل",
|
||||
"baselines": "Baselines",
|
||||
"costs": "Costs",
|
||||
"balancerDesc": "ماينفعش تستخدم balancerTag و outboundTag مع بعض. لو اتستخدموا مع بعض، outboundTag هو اللي هيشتغل."
|
||||
},
|
||||
"wireguard": {
|
||||
@@ -892,6 +1277,38 @@
|
||||
"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 المدمج",
|
||||
@@ -911,7 +1328,7 @@
|
||||
"strategyDesc": "الاستراتيجية العامة لحل أسماء الدومين",
|
||||
"add": "أضف سيرفر",
|
||||
"edit": "عدل السيرفر",
|
||||
"domains": "الدومينات",
|
||||
"domains": "النطاقات",
|
||||
"expectIPs": "العناوين المتوقعة",
|
||||
"unexpectIPs": "عناوين IP غير متوقعة",
|
||||
"useSystemHosts": "استخدام ملف Hosts الخاص بالنظام",
|
||||
@@ -992,16 +1409,16 @@
|
||||
"2faFailed": "فشل 2FA",
|
||||
"report": "🕰 التقارير المجدولة: {{ .RunTime }}\r\n",
|
||||
"datetime": "⏰ التاريخ والوقت: {{ .DateTime }}\r\n",
|
||||
"hostname": "💻 السيرفر: {{ .Hostname }}\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": "🔢 عناوين IP:\r\n{{ .IPs }}\r\n",
|
||||
"ips": "🔢 IPs:\r\n{{ .IPs }}\r\n",
|
||||
"serverUpTime": "⏳ وقت التشغيل: {{ .UpTime }} {{ .Unit }}\r\n",
|
||||
"serverLoad": "📈 تحميل النظام: {{ .Load1 }}, {{ .Load2 }}, {{ .Load3 }}\r\n",
|
||||
"serverMemory": "📋 الرام: {{ .Current }}/{{ .Total }}\r\n",
|
||||
"serverMemory": "📋 RAM: {{ .Current }}/{{ .Total }}\r\n",
|
||||
"tcpCount": "🔹 TCP: {{ .Count }}\r\n",
|
||||
"udpCount": "🔸 UDP: {{ .Count }}\r\n",
|
||||
"traffic": "🚦 الترافيك: {{ .Total }} (↑{{ .Upload }},↓{{ .Download }})\r\n",
|
||||
@@ -1009,17 +1426,17 @@
|
||||
"username": "👤 اسم المستخدم: {{ .Username }}\r\n",
|
||||
"reason": "❗️ السبب: {{ .Reason }}\r\n",
|
||||
"time": "⏰ الوقت: {{ .Time }}\r\n",
|
||||
"inbound": "📍 الإدخال: {{ .Remark }}\r\n",
|
||||
"port": "🔌 البورت: {{ .Port }}\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",
|
||||
"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",
|
||||
@@ -1030,7 +1447,7 @@
|
||||
"backupTime": "🗄 وقت النسخة الاحتياطية: {{ .Time }}\r\n",
|
||||
"refreshedOn": "\r\n📋🔄 اتحدّث في: {{ .Time }}\r\n\r\n",
|
||||
"yes": "✅ أيوه",
|
||||
"no": "❌ لأ",
|
||||
"no": "❌ لا",
|
||||
"received_id": "🔑📥 الـ ID اتحدث.",
|
||||
"received_password": "🔑📥 الباسورد اتحدث.",
|
||||
"received_email": "📧📥 الإيميل اتحدث.",
|
||||
@@ -1042,7 +1459,7 @@
|
||||
"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 }}",
|
||||
"error_add_client": "⚠️ خطأ:\n\n {{ .error }}",
|
||||
"using_default_value": "تمام، هشيل على القيمة الافتراضية. 😊",
|
||||
"incorrect_input": "المدخلات مش صحيحة.\nالكلمات لازم تكون متصلة من غير فراغات.\nمثال صحيح: aaaaaa\nمثال غلط: aaa aaa 🚫",
|
||||
"AreYouSure": "إنت متأكد؟ 🤔",
|
||||
@@ -1087,11 +1504,11 @@
|
||||
"submitDisable": "إرسال كمعطّل ☑️",
|
||||
"submitEnable": "إرسال كمفعّل ✅",
|
||||
"use_default": "🏷️ استخدام الإعدادات الافتراضية",
|
||||
"change_id": "⚙️🔑 المعرّف",
|
||||
"change_id": "⚙️🔑 ID",
|
||||
"change_password": "⚙️🔑 كلمة السر",
|
||||
"change_email": "⚙️📧 البريد الإلكتروني",
|
||||
"change_email": "⚙️📧 البريد",
|
||||
"change_comment": "⚙️💬 تعليق",
|
||||
"change_flow": "⚙️🚦 التدفق",
|
||||
"change_flow": "⚙️🚦 Flow",
|
||||
"ResetAllTraffics": "إعادة ضبط جميع الترافيك",
|
||||
"SortedTrafficUsageReport": "تقرير استخدام الترافيك المرتب"
|
||||
},
|
||||
@@ -1119,4 +1536,4 @@
|
||||
"chooseInbound": "اختار الإدخال"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user