mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-09-16 15:17:14 +00:00
feat(settings): add setting for Reality scan candidates (#6471)
* feat(settings): allow customizing Reality scan candidate list Persist a realityScanCandidates panel setting (defaulting to the previous hardcoded list), expose it in General Settings with i18n, and have the Find Targets scanner use it when the search box is empty. Fixes #5847 * style(frontend): oxfmt realityScanCandidates in setting.ts * Fix locale JSON syntax This change removes the malformed duplicate key and missing comma in the Android per-app proxy translations across the bundled locale files. The JSON now parses correctly while preserving the translated labels for each language. * docs(i18n): update Happ translations Localize the remaining Happ subscription settings strings across the translation files and refine the English copy. This aligns the labels and descriptions with the current Happ behavior for notifications, TUN options, HWID enforcement, routing presets, and per-app proxy settings. * refactor(reality): drop test-only scaffolding from the candidate setting TestDefaultRealityScanCandidatesCSV compared the CSV against its own initializer and a defaultValueMap lookup, and TestRealityScanCandidateTokensFallsBackWithoutDB drove a no-database state no production caller reaches (the only caller is the scanRealityTargets handler, served after InitDB). The s != nil && GetDB() != nil guard existed only for that second test. None of them could fail except in lockstep with the code they restate. * docs(api): describe the setting-driven scanRealityTargets fallback An empty targets value now probes the realityScanCandidates setting, but the endpoint summary, parameter description and handler comment still promised the built-in seed list, so API consumers were told the wrong target set. Regenerated openapi.json and synced the docs copy, which also lacked the new AllSetting field in the settings reference. --------- Co-authored-by: mrchatam <287639636+mrchatam@users.noreply.github.com> Co-authored-by: Sanaei <ho3ein.sanaei@gmail.com>
This commit is contained in:
@@ -1253,6 +1253,8 @@
|
||||
"noisesSett": "إعدادات التشويش",
|
||||
"trustedProxyCidrs": "CIDR وكلاء موثوقين",
|
||||
"trustedProxyCidrsDesc": "IPs/CIDRs مفصولة بفواصل يُسمح لها بتعيين ترويسات host، proto و client IP المعاد توجيهها.",
|
||||
"realityScanCandidates": "مرشحو فحص Reality",
|
||||
"realityScanCandidatesDesc": "قائمة أهداف host:port (أو CIDR) مفصولة بفواصل تُستخدم كقائمة افتراضية عند تشغيل «البحث عن الأهداف» ببحث فارغ. خصّصها للأهداف التي تستخدمها كثيرًا.",
|
||||
"ldap": {
|
||||
"enable": "تفعيل مزامنة LDAP",
|
||||
"host": "مضيف LDAP",
|
||||
@@ -1496,63 +1498,63 @@
|
||||
"subExpiredTemplateDesc": "قالب التكوين الوهمي عند انتهاء صلاحية اشتراك المستخدم.",
|
||||
"subTrafficDepletedTemplate": "قالب نفاد البيانات",
|
||||
"subTrafficDepletedTemplateDesc": "قالب التكوين الوهمي عند استهلاك حصة بيانات المستخدم بالكامل.",
|
||||
"subHappAutoDetect": "Happ Header Auto-Detection",
|
||||
"subHappAutoDetectDesc": "Automatically inject Happ routing and headers when client User-Agent indicates Happ.",
|
||||
"subHappProviderId": "Provider ID",
|
||||
"subHappProviderIdDesc": "Unique provider identifier for Happ client management, remote configuration binding, and migration.",
|
||||
"subHappNewUrl": "New Subscription URL",
|
||||
"subHappNewUrlDesc": "Target URL for automatic client migration. When set, Happ clients will migrate to this subscription link.",
|
||||
"subHappFallbackUrl": "Fallback Subscription URL",
|
||||
"subHappFallbackUrlDesc": "Backup subscription address used by Happ if the primary subscription URL becomes unreachable.",
|
||||
"subHappSubInfoText": "Banner Announcement Text",
|
||||
"subHappSubInfoTextDesc": "Custom announcement banner displayed at the top of the Happ client (max 200 characters).",
|
||||
"subHappSubInfoColor": "Banner Accent Color",
|
||||
"subHappSubInfoColorDesc": "Color theme style for the announcement banner.",
|
||||
"subHappSubInfoButtonText": "Banner Button Text",
|
||||
"subHappSubInfoButtonTextDesc": "Button label displayed inside the announcement banner (max 25 characters).",
|
||||
"subHappSubInfoButtonLink": "Banner Button Link",
|
||||
"subHappSubInfoButtonLinkDesc": "Target URL opened when the user clicks the banner action button.",
|
||||
"subHappSubExpire": "Expired Subscription Banner",
|
||||
"subHappSubExpireDesc": "Show an expired subscription banner in Happ when the user's traffic or validity has ended.",
|
||||
"subHappSubExpireButtonLink": "Renewal Link",
|
||||
"subHappSubExpireButtonLinkDesc": "Target URL opened when the user clicks the renewal button on an expired subscription.",
|
||||
"subHappNotificationExpire": "Expiration Notifications",
|
||||
"subHappNotificationExpireDesc": "Instruct Happ to alert the user in advance before their subscription expires.",
|
||||
"subHappNoLimit": "Bypass Rule Limit",
|
||||
"subHappNoLimitDesc": "Allow routing rule count to exceed default mobile platform limits without truncation.",
|
||||
"subHappAlwaysHwid": "Enforce Hardware ID (HWID)",
|
||||
"subHappAlwaysHwidDesc": "Bind subscription sessions to client device hardware identifier for enhanced security.",
|
||||
"subHappTunMode": "TUN Mode",
|
||||
"subHappTunModeDesc": "TUN virtual network interface routing mode: default, system, or strict.",
|
||||
"subHappTunType": "TUN Engine",
|
||||
"subHappTunTypeDesc": "Underlying network stack implementation for TUN: system, gVisor, or mixed.",
|
||||
"subHappExcludeRoutes": "Exclude CIDR Routes",
|
||||
"subHappExcludeRoutesDesc": "Comma-separated IP CIDRs (e.g. 192.168.0.0/16, 10.0.0.0/8) to bypass the VPN tunnel.",
|
||||
"subHappExcludeApns": "Exclude Apple APNs",
|
||||
"subHappExcludeApnsDesc": "Bypass Apple Push Notification services to maintain reliable background notifications on iOS.",
|
||||
"subHappColorProfile": "Client Color Theme",
|
||||
"subHappColorProfileDesc": "Client color theme profile: default, violet, turquoise, cyberpunk, or custom JSON theme.",
|
||||
"subHappPingType": "Latency Ping Method",
|
||||
"subHappPingTypeDesc": "Measurement protocol used by Happ for node latency testing: icmp, tcp, or http.",
|
||||
"subHappAutoConnect": "Auto-Connect on Launch",
|
||||
"subHappAutoConnectDesc": "Instruct Happ to automatically connect to VPN when the application starts.",
|
||||
"subHappAutoConnectType": "Auto-Connect Target",
|
||||
"subHappAutoConnectTypeDesc": "Connection target strategy for auto-connect: fastest node or last used node.",
|
||||
"subHappPerAppMode": "Android Per-App Proxy Mode",
|
||||
"subHappPerAppModeDesc": "Control Android application routing: off, include (proxy only listed apps), or exclude (bypass listed apps).",
|
||||
"subHappPerAppList": "Android Package Names",
|
||||
"subHappPerAppListDesc": "Comma-separated package names of Android applications to include or exclude (e.g. com.telegram.messenger).",
|
||||
"subHappPresetIran": "Iran Bypass",
|
||||
"subHappPresetChina": "China Direct",
|
||||
"subHappPresetAdblock": "AdBlock",
|
||||
"subHappPresetGlobal": "Full Proxy",
|
||||
"subHappAutoDetect": "اكتشاف ترويسات Happ تلقائيًا",
|
||||
"subHappAutoDetectDesc": "حقن توجيه Happ والترويسات تلقائيًا عندما يشير User-Agent الخاص بالعميل إلى Happ.",
|
||||
"subHappProviderId": "معرّف المزوّد (Provider ID)",
|
||||
"subHappProviderIdDesc": "معرّف فريد للمزوّد يُستخدم لإدارة عملاء Happ وربط الإعدادات عن بُعد والترحيل.",
|
||||
"subHappNewUrl": "رابط الاشتراك الجديد",
|
||||
"subHappNewUrlDesc": "عنوان URL الهدف للترحيل التلقائي للعملاء. عند تعيينه، ينتقل عملاء Happ إلى رابط الاشتراك هذا.",
|
||||
"subHappFallbackUrl": "رابط الاشتراك الاحتياطي",
|
||||
"subHappFallbackUrlDesc": "عنوان اشتراك احتياطي يستخدمه Happ إذا تعذّر الوصول إلى رابط الاشتراك الأساسي.",
|
||||
"subHappSubInfoText": "نص لافتة الإعلان",
|
||||
"subHappSubInfoTextDesc": "لافتة إعلان مخصصة تظهر أعلى عميل Happ (بحد أقصى 200 حرف).",
|
||||
"subHappSubInfoColor": "لون تمييز اللافتة",
|
||||
"subHappSubInfoColorDesc": "نمط ألوان لافتة الإعلان.",
|
||||
"subHappSubInfoButtonText": "نص زر اللافتة",
|
||||
"subHappSubInfoButtonTextDesc": "تسمية الزر المعروض داخل لافتة الإعلان (بحد أقصى 25 حرفًا).",
|
||||
"subHappSubInfoButtonLink": "رابط زر اللافتة",
|
||||
"subHappSubInfoButtonLinkDesc": "عنوان URL الذي يُفتح عندما ينقر المستخدم على زر الإجراء في اللافتة.",
|
||||
"subHappSubExpire": "لافتة انتهاء الاشتراك",
|
||||
"subHappSubExpireDesc": "إظهار لافتة انتهاء الاشتراك في Happ عند نفاد حركة مرور المستخدم أو انتهاء صلاحية اشتراكه.",
|
||||
"subHappSubExpireButtonLink": "رابط التجديد",
|
||||
"subHappSubExpireButtonLinkDesc": "عنوان URL الذي يُفتح عندما ينقر المستخدم على زر التجديد في اشتراك منتهي الصلاحية.",
|
||||
"subHappNotificationExpire": "إشعارات انتهاء الصلاحية",
|
||||
"subHappNotificationExpireDesc": "يُذكّر Happ المستخدم قبل 3 أيام من انتهاء اشتراكه.",
|
||||
"subHappNoLimit": "وضع بلا حدود",
|
||||
"subHappNoLimitDesc": "رفع حد ذاكرة RAM الخاص بـ xray-core في Happ لتحسين الاستقرار والأداء (تجريبي).",
|
||||
"subHappAlwaysHwid": "فرض معرّف العتاد (HWID)",
|
||||
"subHappAlwaysHwidDesc": "منع المستخدمين من إيقاف إرسال HWID في إعدادات Happ.",
|
||||
"subHappTunMode": "وضع TUN",
|
||||
"subHappTunModeDesc": "مكدس الشبكة الذي يستخدمه TUN على سطح المكتب: النظام (مكدس نظام التشغيل) أو gVisor (مكدس مساحة المستخدم).",
|
||||
"subHappTunType": "محرك TUN",
|
||||
"subHappTunTypeDesc": "النواة المستخدمة لاتصال TUN على سطح المكتب: sing-box أو tun2proxy أو الافتراضي (Happ TUN) أو Xray.",
|
||||
"subHappExcludeRoutes": "استثناء مسارات CIDR",
|
||||
"subHappExcludeRoutesDesc": "نطاقات CIDR لعناوين IP مفصولة بفواصل (مثل 192.168.0.0/16, 10.0.0.0/8) تتجاوز نفق VPN.",
|
||||
"subHappExcludeApns": "استثناء Apple APNs",
|
||||
"subHappExcludeApnsDesc": "تجاوز خدمات إشعارات Apple الفورية للحفاظ على موثوقية الإشعارات في الخلفية على iOS.",
|
||||
"subHappColorProfile": "سمة ألوان العميل",
|
||||
"subHappColorProfileDesc": "سمة ألوان مخصصة لـ iOS كسلسلة JSON، أو resetcolors لاستعادة الألوان الافتراضية.",
|
||||
"subHappPingType": "طريقة قياس زمن الاستجابة",
|
||||
"subHappPingTypeDesc": "كيفية قياس Happ لزمن استجابة العقد: عبر البروكسي (GET أو HEAD) أو TCP أو ICMP.",
|
||||
"subHappAutoConnect": "الاتصال التلقائي عند التشغيل",
|
||||
"subHappAutoConnectDesc": "يتصل Happ تلقائيًا بـ VPN عند بدء تشغيل التطبيق.",
|
||||
"subHappAutoConnectType": "هدف الاتصال التلقائي",
|
||||
"subHappAutoConnectTypeDesc": "الخادم المختار للاتصال التلقائي: أقل تأخير أو آخر عقدة تم استخدامها أو عقدة عشوائية.",
|
||||
"subHappPerAppMode": "وضع البروكسي لكل تطبيق على Android",
|
||||
"subHappPerAppModeDesc": "التحكم في توجيه تطبيقات Android: إيقاف، أو تشغيل (بروكسي للتطبيقات المحددة فقط)، أو تجاوز (استثناء التطبيقات المحددة).",
|
||||
"subHappPerAppList": "أسماء حزم Android",
|
||||
"subHappPerAppListDesc": "أسماء حزم تطبيقات Android المراد تضمينها أو استثناؤها، مفصولة بفواصل (مثل org.telegram.messenger).",
|
||||
"subHappPresetIran": "تجاوز إيران",
|
||||
"subHappPresetChina": "مباشر للصين",
|
||||
"subHappPresetAdblock": "حظر الإعلانات (AdBlock)",
|
||||
"subHappPresetGlobal": "بروكسي كامل",
|
||||
"subHappPresetOff": "تعطيل التوجيه (happ://routing/off)",
|
||||
"subHappColorBlue": "أزرق (قياسي / افتراضي)",
|
||||
"subHappColorGreen": "أخضر (نجاح)",
|
||||
"subHappColorRed": "أحمر (تحذير / خطر)",
|
||||
"subHappTunModeDefault": "افتراضي",
|
||||
"subHappTunModeSystem": "النظام (حزمة نظام التشغيل القياسية)",
|
||||
"subHappTunModeGvisor": "gVisor (حزمة مساحة المستخدم)",
|
||||
"subHappTunModeSystem": "النظام (مكدس نظام التشغيل القياسي)",
|
||||
"subHappTunModeGvisor": "gVisor (مكدس مساحة المستخدم)",
|
||||
"subHappTunTypeSingbox": "sing-box",
|
||||
"subHappTunTypeTun2proxy": "tun2proxy",
|
||||
"subHappTunTypeDefault": "افتراضي (Happ TUN)",
|
||||
@@ -1567,27 +1569,27 @@
|
||||
"subHappPerAppOff": "إيقاف",
|
||||
"subHappPerAppOn": "تشغيل (بروكسي للتطبيقات المحددة فقط)",
|
||||
"subHappPerAppBypass": "تجاوز (استثناء التطبيقات المحددة)",
|
||||
"subHappPresetApplied": "Happ preset applied to routing rules",
|
||||
"subHappPresets": "Routing Presets",
|
||||
"subHappPresetsDesc": "Pre-configured routing rule presets tailored for Happ clients.",
|
||||
"subHappVisualBuilder": "Visual Rule Generator",
|
||||
"subHappVisualBuilderDesc": "Create custom routing deeplink from domain and IP lists.",
|
||||
"subHappBuildDeeplink": "Generate Deeplink",
|
||||
"subHappModalTitle": "Happ Visual Routing Rule Generator",
|
||||
"subHappDirectDomains": "Direct Domains (Bypass)",
|
||||
"subHappProxyDomains": "Proxy Domains (Tunnel)",
|
||||
"subHappBlockDomains": "Blocked Domains (Ad/Malware)",
|
||||
"subHappDirectIPs": "Direct IPs / CIDRs",
|
||||
"subHappProxyIPs": "Proxy IPs / CIDRs",
|
||||
"subHappBlockIPs": "Blocked IPs / CIDRs",
|
||||
"subHappDeeplinkGenerated": "Deeplink generated and applied to routing rules",
|
||||
"subHappPresetApplied": "تم تطبيق إعداد Happ المسبق على قواعد التوجيه",
|
||||
"subHappPresets": "إعدادات التوجيه المسبقة",
|
||||
"subHappPresetsDesc": "قواعد توجيه مُعدّة مسبقًا ومخصصة لعملاء Happ.",
|
||||
"subHappVisualBuilder": "منشئ القواعد المرئي",
|
||||
"subHappVisualBuilderDesc": "إنشاء رابط عميق مخصص للتوجيه من قوائم النطاقات وعناوين IP.",
|
||||
"subHappBuildDeeplink": "إنشاء رابط عميق",
|
||||
"subHappModalTitle": "منشئ قواعد التوجيه المرئي لـ Happ",
|
||||
"subHappDirectDomains": "نطاقات مباشرة (تجاوز)",
|
||||
"subHappProxyDomains": "نطاقات عبر البروكسي (نفق)",
|
||||
"subHappBlockDomains": "نطاقات محظورة (إعلانات/برمجيات خبيثة)",
|
||||
"subHappDirectIPs": "IPs / CIDRs مباشرة",
|
||||
"subHappProxyIPs": "IPs / CIDRs عبر البروكسي",
|
||||
"subHappBlockIPs": "IPs / CIDRs محظورة",
|
||||
"subHappDeeplinkGenerated": "تم إنشاء الرابط العميق وتطبيقه على قواعد التوجيه",
|
||||
"subHappGroupLinks": "روابط الاشتراك",
|
||||
"subHappGroupRouting": "Routing & Rules",
|
||||
"subHappGroupBanners": "Banners & Announcements",
|
||||
"subHappGroupNetwork": "Network & TUN Engine",
|
||||
"subHappGroupThemes": "Appearance & Theme",
|
||||
"subHappGroupFailover": "Migration & App Management",
|
||||
"subHappGroupAndroid": "Android Per-App Proxy",
|
||||
"subHappGroupRouting": "التوجيه والقواعد",
|
||||
"subHappGroupBanners": "اللافتات والإعلانات",
|
||||
"subHappGroupNetwork": "الشبكة ومحرك TUN",
|
||||
"subHappGroupThemes": "المظهر والسمة",
|
||||
"subHappGroupFailover": "الترحيل وإدارة التطبيق",
|
||||
"subHappGroupAndroid": "البروكسي لكل تطبيق على Android",
|
||||
"discordSettings": "بوت ديسكورد",
|
||||
"discordBotEnable": "تفعيل إشعارات ديسكورد",
|
||||
"discordBotEnableDesc": "إرسال تنبيهات النظام والأحداث إلى قناة ديسكورد عبر البوت",
|
||||
|
||||
Reference in New Issue
Block a user