mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-09-17 07:37:15 +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": "Configurações de Noises",
|
||||
"trustedProxyCidrs": "CIDRs de proxy confiável",
|
||||
"trustedProxyCidrsDesc": "IPs/CIDRs separados por vírgula que podem definir os cabeçalhos host, proto e IP do cliente encaminhados.",
|
||||
"realityScanCandidates": "Candidatos de varredura Reality",
|
||||
"realityScanCandidatesDesc": "Lista de alvos host:port (ou CIDRs) separados por vírgula usada como padrão quando Procurar alvos roda com a busca vazia. Personalize com destinos que você usa com frequência.",
|
||||
"ldap": {
|
||||
"enable": "Habilitar sincronização LDAP",
|
||||
"host": "Host LDAP",
|
||||
@@ -1496,63 +1498,63 @@
|
||||
"subExpiredTemplateDesc": "Modelo para a configuração fictícia quando a assinatura expirou.",
|
||||
"subTrafficDepletedTemplate": "Modelo de tráfego esgotado",
|
||||
"subTrafficDepletedTemplateDesc": "Modelo para a configuração fictícia quando a cota de tráfego foi esgotada.",
|
||||
"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": "Detecção automática de cabeçalhos do Happ",
|
||||
"subHappAutoDetectDesc": "Injeta automaticamente o roteamento e os cabeçalhos do Happ quando o User-Agent do cliente indicar o Happ.",
|
||||
"subHappProviderId": "ID do provedor (Provider ID)",
|
||||
"subHappProviderIdDesc": "Identificador único do provedor para gerenciamento de clientes Happ, vinculação de configuração remota e migração.",
|
||||
"subHappNewUrl": "Nova URL de assinatura",
|
||||
"subHappNewUrlDesc": "URL de destino para a migração automática de clientes. Quando definida, os clientes Happ migrarão para este link de assinatura.",
|
||||
"subHappFallbackUrl": "URL de assinatura de reserva",
|
||||
"subHappFallbackUrlDesc": "Endereço de assinatura de reserva usado pelo Happ se a URL de assinatura principal ficar inacessível.",
|
||||
"subHappSubInfoText": "Texto do banner de anúncio",
|
||||
"subHappSubInfoTextDesc": "Banner de anúncio personalizado exibido no topo do cliente Happ (máx. 200 caracteres).",
|
||||
"subHappSubInfoColor": "Cor de destaque do banner",
|
||||
"subHappSubInfoColorDesc": "Estilo de cor do banner de anúncio.",
|
||||
"subHappSubInfoButtonText": "Texto do botão do banner",
|
||||
"subHappSubInfoButtonTextDesc": "Rótulo do botão exibido dentro do banner de anúncio (máx. 25 caracteres).",
|
||||
"subHappSubInfoButtonLink": "Link do botão do banner",
|
||||
"subHappSubInfoButtonLinkDesc": "URL de destino aberta quando o usuário clica no botão de ação do banner.",
|
||||
"subHappSubExpire": "Banner de assinatura expirada",
|
||||
"subHappSubExpireDesc": "Exibe um banner de assinatura expirada no Happ quando o tráfego do usuário se esgotar ou a validade terminar.",
|
||||
"subHappSubExpireButtonLink": "Link de renovação",
|
||||
"subHappSubExpireButtonLinkDesc": "URL de destino aberta quando o usuário clica no botão de renovação de uma assinatura expirada.",
|
||||
"subHappNotificationExpire": "Notificações de expiração",
|
||||
"subHappNotificationExpireDesc": "Instrui o Happ a lembrar o usuário 3 dias antes de a assinatura expirar.",
|
||||
"subHappNoLimit": "Modo sem limites",
|
||||
"subHappNoLimitDesc": "Aumenta o limite de RAM do xray-core no Happ para mais estabilidade e desempenho (beta).",
|
||||
"subHappAlwaysHwid": "Forçar ID de hardware (HWID)",
|
||||
"subHappAlwaysHwidDesc": "Impede que os usuários desativem o envio do HWID nas configurações do Happ.",
|
||||
"subHappTunMode": "Modo TUN",
|
||||
"subHappTunModeDesc": "Pilha de rede usada pelo TUN no desktop: sistema (pilha do SO) ou gVisor (pilha em espaço de usuário).",
|
||||
"subHappTunType": "Mecanismo TUN",
|
||||
"subHappTunTypeDesc": "Núcleo usado para a conexão TUN no desktop: sing-box, tun2proxy, padrão (Happ TUN) ou Xray.",
|
||||
"subHappExcludeRoutes": "Excluir rotas CIDR",
|
||||
"subHappExcludeRoutesDesc": "CIDRs de IP separados por vírgula (ex.: 192.168.0.0/16, 10.0.0.0/8) a serem desviados do túnel VPN.",
|
||||
"subHappExcludeApns": "Excluir APNs da Apple",
|
||||
"subHappExcludeApnsDesc": "Desvia do túnel os serviços de notificação push da Apple para manter as notificações em segundo plano confiáveis no iOS.",
|
||||
"subHappColorProfile": "Tema de cores do cliente",
|
||||
"subHappColorProfileDesc": "Tema de cores personalizado do iOS como string JSON, ou resetcolors para restaurar as cores padrão.",
|
||||
"subHappPingType": "Método de ping de latência",
|
||||
"subHappPingTypeDesc": "Como o Happ mede a latência dos nós: via proxy (GET ou HEAD), TCP ou ICMP.",
|
||||
"subHappAutoConnect": "Conectar automaticamente ao iniciar",
|
||||
"subHappAutoConnectDesc": "Instrui o Happ a conectar automaticamente à VPN quando o aplicativo for iniciado.",
|
||||
"subHappAutoConnectType": "Destino da conexão automática",
|
||||
"subHappAutoConnectTypeDesc": "Servidor escolhido para a conexão automática: menor latência, último usado ou um nó aleatório.",
|
||||
"subHappPerAppMode": "Modo de proxy por aplicativo no Android",
|
||||
"subHappPerAppModeDesc": "Controla o roteamento de aplicativos Android: desativado, ativado (proxy apenas nos apps listados) ou desviar (excluir apps listados).",
|
||||
"subHappPerAppList": "Nomes de pacotes Android",
|
||||
"subHappPerAppListDesc": "Nomes de pacotes de aplicativos Android separados por vírgula a incluir ou excluir (ex.: org.telegram.messenger).",
|
||||
"subHappPresetIran": "Irã (desvio)",
|
||||
"subHappPresetChina": "China (direto)",
|
||||
"subHappPresetAdblock": "AdBlock",
|
||||
"subHappPresetGlobal": "Full Proxy",
|
||||
"subHappPresetGlobal": "Proxy total",
|
||||
"subHappPresetOff": "Desativar roteamento (happ://routing/off)",
|
||||
"subHappColorBlue": "Azul (padrão)",
|
||||
"subHappColorGreen": "Verde (sucesso)",
|
||||
"subHappColorRed": "Vermelho (aviso / perigo)",
|
||||
"subHappTunModeDefault": "Padrão",
|
||||
"subHappTunModeSystem": "Sistema (pilha padrão do SO)",
|
||||
"subHappTunModeGvisor": "gVisor (pilha de espaço do usuário)",
|
||||
"subHappTunModeGvisor": "gVisor (pilha em espaço de usuário)",
|
||||
"subHappTunTypeSingbox": "sing-box",
|
||||
"subHappTunTypeTun2proxy": "tun2proxy",
|
||||
"subHappTunTypeDefault": "Padrão (Happ TUN)",
|
||||
@@ -1565,29 +1567,29 @@
|
||||
"subHappAutoConnectLastUsed": "Último nó usado",
|
||||
"subHappAutoConnectRandom": "Nó aleatório",
|
||||
"subHappPerAppOff": "Desativado",
|
||||
"subHappPerAppOn": "Ativado (apenas apps listados)",
|
||||
"subHappPerAppOn": "Ativado (proxy apenas nos apps listados)",
|
||||
"subHappPerAppBypass": "Desviar (excluir apps listados)",
|
||||
"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": "Predefinição do Happ aplicada às regras de roteamento",
|
||||
"subHappPresets": "Predefinições de roteamento",
|
||||
"subHappPresetsDesc": "Predefinições de regras de roteamento pré-configuradas para clientes Happ.",
|
||||
"subHappVisualBuilder": "Gerador visual de regras",
|
||||
"subHappVisualBuilderDesc": "Crie um deeplink de roteamento personalizado a partir de listas de domínios e IPs.",
|
||||
"subHappBuildDeeplink": "Gerar deeplink",
|
||||
"subHappModalTitle": "Gerador visual de regras de roteamento do Happ",
|
||||
"subHappDirectDomains": "Domínios diretos (desvio)",
|
||||
"subHappProxyDomains": "Domínios via proxy (túnel)",
|
||||
"subHappBlockDomains": "Domínios bloqueados (anúncios/malware)",
|
||||
"subHappDirectIPs": "IPs / CIDRs diretos",
|
||||
"subHappProxyIPs": "IPs / CIDRs via proxy",
|
||||
"subHappBlockIPs": "IPs / CIDRs bloqueados",
|
||||
"subHappDeeplinkGenerated": "Deeplink gerado e aplicado às regras de roteamento",
|
||||
"subHappGroupLinks": "Links de assinatura",
|
||||
"subHappGroupRouting": "Routing & Rules",
|
||||
"subHappGroupBanners": "Banners & Announcements",
|
||||
"subHappGroupNetwork": "Network & TUN Engine",
|
||||
"subHappGroupThemes": "Appearance & Theme",
|
||||
"subHappGroupFailover": "Migration & App Management",
|
||||
"subHappGroupAndroid": "Android Per-App Proxy",
|
||||
"subHappGroupRouting": "Roteamento e regras",
|
||||
"subHappGroupBanners": "Banners e anúncios",
|
||||
"subHappGroupNetwork": "Rede e mecanismo TUN",
|
||||
"subHappGroupThemes": "Aparência e tema",
|
||||
"subHappGroupFailover": "Migração e gerenciamento do app",
|
||||
"subHappGroupAndroid": "Proxy por aplicativo no Android",
|
||||
"discordSettings": "Bot do Discord",
|
||||
"discordBotEnable": "Ativar notificações do Discord",
|
||||
"discordBotEnableDesc": "Enviar alertas de sistema e eventos para um canal do Discord via bot",
|
||||
|
||||
Reference in New Issue
Block a user