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": "Noises Ayarları",
|
||||
"trustedProxyCidrs": "Güvenilir Proxy CIDR'leri",
|
||||
"trustedProxyCidrsDesc": "İletilen host, proto ve istemci IP başlıklarını ayarlamasına izin verilen IP'ler/CIDR'ler (virgülle ayrılmış).",
|
||||
"realityScanCandidates": "Reality tarama adayları",
|
||||
"realityScanCandidatesDesc": "Arama boşken Hedef Bul için varsayılan olarak kullanılan, virgülle ayrılmış host:port hedefleri (veya CIDR). Sık kullandığınız hedeflere göre özelleştirin.",
|
||||
"ldap": {
|
||||
"enable": "LDAP senkronizasyonunu etkinleştir",
|
||||
"host": "LDAP sunucusu",
|
||||
@@ -1496,56 +1498,56 @@
|
||||
"subExpiredTemplateDesc": "Abonelik süresi dolduğunda sahte yapılandırma için kullanılacak şablon.",
|
||||
"subTrafficDepletedTemplate": "Trafik Tükendi Şablonu",
|
||||
"subTrafficDepletedTemplateDesc": "Abonelik trafik kotası bittiğinde sahte yapılandırma için kullanılacak şablon.",
|
||||
"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",
|
||||
"subHappAutoDetect": "Happ Başlıkları Otomatik Algılama",
|
||||
"subHappAutoDetectDesc": "İstemcinin User-Agent değeri Happ'i gösterdiğinde Happ yönlendirmesini ve başlıklarını otomatik olarak ekler.",
|
||||
"subHappProviderId": "Sağlayıcı Kimliği (Provider ID)",
|
||||
"subHappProviderIdDesc": "Happ istemci yönetimi, uzak yapılandırma bağlama ve geçiş için benzersiz sağlayıcı tanımlayıcısı.",
|
||||
"subHappNewUrl": "Yeni Abonelik URL'si",
|
||||
"subHappNewUrlDesc": "Otomatik istemci geçişi için hedef URL. Ayarlandığında Happ istemcileri bu abonelik bağlantısına geçer.",
|
||||
"subHappFallbackUrl": "Yedek Abonelik URL'si",
|
||||
"subHappFallbackUrlDesc": "Birincil abonelik URL'sine erişilemez hale gelirse Happ'in kullandığı yedek abonelik adresi.",
|
||||
"subHappSubInfoText": "Duyuru Afişi Metni",
|
||||
"subHappSubInfoTextDesc": "Happ istemcisinin üst kısmında görüntülenen özel duyuru afişi (en fazla 200 karakter).",
|
||||
"subHappSubInfoColor": "Afiş Vurgu Rengi",
|
||||
"subHappSubInfoColorDesc": "Duyuru afişinin renk teması.",
|
||||
"subHappSubInfoButtonText": "Afiş Düğmesi Metni",
|
||||
"subHappSubInfoButtonTextDesc": "Duyuru afişinin içinde görüntülenen düğme etiketi (en fazla 25 karakter).",
|
||||
"subHappSubInfoButtonLink": "Afiş Düğmesi Bağlantısı",
|
||||
"subHappSubInfoButtonLinkDesc": "Kullanıcı afişteki eylem düğmesine tıkladığında açılan hedef URL.",
|
||||
"subHappSubExpire": "Süresi Dolmuş Abonelik Afişi",
|
||||
"subHappSubExpireDesc": "Kullanıcının trafiği veya geçerlilik süresi bittiğinde Happ'te süresi dolmuş abonelik afişi gösterir.",
|
||||
"subHappSubExpireButtonLink": "Yenileme Bağlantısı",
|
||||
"subHappSubExpireButtonLinkDesc": "Kullanıcı süresi dolmuş bir abonelikte yenileme düğmesine tıkladığında açılan hedef URL.",
|
||||
"subHappNotificationExpire": "Son Kullanma Bildirimleri",
|
||||
"subHappNotificationExpireDesc": "Happ'in, abonelik süresi dolmadan 3 gün önce kullanıcıya hatırlatma yapmasını sağlar.",
|
||||
"subHappNoLimit": "Sınırsız Mod",
|
||||
"subHappNoLimitDesc": "Daha iyi kararlılık ve performans için Happ'te xray-core RAM sınırını yükseltir (beta).",
|
||||
"subHappAlwaysHwid": "Donanım Kimliğini (HWID) Zorunlu Kıl",
|
||||
"subHappAlwaysHwidDesc": "Kullanıcıların Happ ayarlarında HWID gönderimini kapatmasını engeller.",
|
||||
"subHappTunMode": "TUN Modu",
|
||||
"subHappTunModeDesc": "Masaüstünde TUN'un kullandığı ağ yığını: sistem (işletim sistemi yığını) veya gVisor (kullanıcı alanı yığını).",
|
||||
"subHappTunType": "TUN Motoru",
|
||||
"subHappTunTypeDesc": "Masaüstünde TUN bağlantısı için kullanılan çekirdek: sing-box, tun2proxy, varsayılan (Happ TUN) veya Xray.",
|
||||
"subHappExcludeRoutes": "CIDR Yönlendirmelerini Hariç Tut",
|
||||
"subHappExcludeRoutesDesc": "VPN tünelinin dışında tutulacak, virgülle ayrılmış IP CIDR'leri (ör. 192.168.0.0/16, 10.0.0.0/8).",
|
||||
"subHappExcludeApns": "Apple APNs'i Hariç Tut",
|
||||
"subHappExcludeApnsDesc": "iOS'ta arka plan bildirimlerinin güvenilir çalışması için Apple Push Notification hizmetlerini VPN'in dışında tutar.",
|
||||
"subHappColorProfile": "İstemci Renk Teması",
|
||||
"subHappColorProfileDesc": "JSON dizesi olarak özel iOS renk teması veya varsayılan renkleri geri yüklemek için resetcolors.",
|
||||
"subHappPingType": "Gecikme Ping Yöntemi",
|
||||
"subHappPingTypeDesc": "Happ'in düğüm gecikmesini ölçme yöntemi: proxy üzerinden (GET veya HEAD), TCP veya ICMP.",
|
||||
"subHappAutoConnect": "Açılışta Otomatik Bağlan",
|
||||
"subHappAutoConnectDesc": "Uygulama başladığında Happ'in VPN'e otomatik olarak bağlanmasını sağlar.",
|
||||
"subHappAutoConnectType": "Otomatik Bağlantı Hedefi",
|
||||
"subHappAutoConnectTypeDesc": "Otomatik bağlantı için seçilen sunucu: en düşük gecikme, son kullanılan veya rastgele düğüm.",
|
||||
"subHappPerAppMode": "Android Uygulama Başına Proxy Modu",
|
||||
"subHappPerAppModeDesc": "Android uygulama yönlendirmesini denetler: kapalı, açık (yalnızca listelenen uygulamalar proxy üzerinden) veya atla (listelenen uygulamaları hariç tut).",
|
||||
"subHappPerAppList": "Android Paket Adları",
|
||||
"subHappPerAppListDesc": "Dahil edilecek veya hariç tutulacak Android uygulamalarının virgülle ayrılmış paket adları (ör. org.telegram.messenger).",
|
||||
"subHappPresetIran": "İran'ı Atla",
|
||||
"subHappPresetChina": "Çin Doğrudan",
|
||||
"subHappPresetAdblock": "AdBlock",
|
||||
"subHappPresetGlobal": "Full Proxy",
|
||||
"subHappPresetGlobal": "Tam Proxy",
|
||||
"subHappPresetOff": "Yönlendirmeyi Devre Dışı Bırak (happ://routing/off)",
|
||||
"subHappColorBlue": "Mavi (Standart / Varsayılan)",
|
||||
"subHappColorGreen": "Yeşil (Başarılı)",
|
||||
@@ -1560,34 +1562,34 @@
|
||||
"subHappPingProxy": "Proxy Üzerinden (GET Gecikmesi)",
|
||||
"subHappPingProxyHead": "Proxy Üzerinden (HEAD Gecikmesi)",
|
||||
"subHappPingTcp": "TCP El Sıkışma Pingi",
|
||||
"subHappPingIcmp": "ICMP Ping",
|
||||
"subHappPingIcmp": "ICMP Pingi",
|
||||
"subHappAutoConnectLowestDelay": "En Düşük Gecikme (En Hızlı Düğüm)",
|
||||
"subHappAutoConnectLastUsed": "Son Kullanılan Düğüm",
|
||||
"subHappAutoConnectRandom": "Rastgele Düğüm",
|
||||
"subHappPerAppOff": "Kapalı",
|
||||
"subHappPerAppOn": "Açık (Yalnızca Listelenen Uygulamalar)",
|
||||
"subHappPerAppOn": "Açık (Yalnızca Listelenen Uygulamalar Proxy Üzerinden)",
|
||||
"subHappPerAppBypass": "Atla (Listelenen Uygulamaları Hariç Tut)",
|
||||
"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 hazır ayarı yönlendirme kurallarına uygulandı",
|
||||
"subHappPresets": "Yönlendirme Hazır Ayarları",
|
||||
"subHappPresetsDesc": "Happ istemcilerine özel, önceden yapılandırılmış yönlendirme kuralı hazır ayarları.",
|
||||
"subHappVisualBuilder": "Görsel Kural Oluşturucu",
|
||||
"subHappVisualBuilderDesc": "Alan adı ve IP listelerinden özel yönlendirme derin bağlantısı oluşturur.",
|
||||
"subHappBuildDeeplink": "Derin Bağlantı Oluştur",
|
||||
"subHappModalTitle": "Happ Görsel Yönlendirme Kuralı Oluşturucu",
|
||||
"subHappDirectDomains": "Doğrudan Alan Adları (Atla)",
|
||||
"subHappProxyDomains": "Proxy Alan Adları (Tünel)",
|
||||
"subHappBlockDomains": "Engellenen Alan Adları (Reklam/Kötü Amaçlı Yazılım)",
|
||||
"subHappDirectIPs": "Doğrudan IP'ler / CIDR'ler",
|
||||
"subHappProxyIPs": "Proxy IP'ler / CIDR'ler",
|
||||
"subHappBlockIPs": "Engellenen IP'ler / CIDR'ler",
|
||||
"subHappDeeplinkGenerated": "Derin bağlantı oluşturuldu ve yönlendirme kurallarına uygulandı",
|
||||
"subHappGroupLinks": "Abonelik Bağlantıları",
|
||||
"subHappGroupRouting": "Routing & Rules",
|
||||
"subHappGroupBanners": "Banners & Announcements",
|
||||
"subHappGroupNetwork": "Network & TUN Engine",
|
||||
"subHappGroupThemes": "Appearance & Theme",
|
||||
"subHappGroupFailover": "Migration & App Management",
|
||||
"subHappGroupAndroid": "Android Per-App Proxy",
|
||||
"subHappGroupRouting": "Yönlendirme ve Kurallar",
|
||||
"subHappGroupBanners": "Afişler ve Duyurular",
|
||||
"subHappGroupNetwork": "Ağ ve TUN Motoru",
|
||||
"subHappGroupThemes": "Görünüm ve Tema",
|
||||
"subHappGroupFailover": "Geçiş ve Uygulama Yönetimi",
|
||||
"subHappGroupAndroid": "Android Uygulama Başına Proxy",
|
||||
"discordSettings": "Discord Botu",
|
||||
"discordBotEnable": "Discord Bildirimlerini Etkinleştir",
|
||||
"discordBotEnableDesc": "Sistem ve olay uyarılarını bot aracılığıyla bir Discord kanalına gönderin",
|
||||
|
||||
Reference in New Issue
Block a user