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設定",
|
||||
"trustedProxyCidrs": "信頼できるプロキシ CIDR",
|
||||
"trustedProxyCidrsDesc": "転送される host、proto、クライアント IP ヘッダーを設定可能な IP/CIDR (カンマ区切り)。",
|
||||
"realityScanCandidates": "Reality スキャン候補",
|
||||
"realityScanCandidatesDesc": "検索が空のときに「ターゲットを探す」で使うデフォルトの host:port(または CIDR)一覧(カンマ区切り)。よく使う宛先に合わせて編集できます。",
|
||||
"ldap": {
|
||||
"enable": "LDAP 同期を有効化",
|
||||
"host": "LDAP host",
|
||||
@@ -1496,98 +1498,98 @@
|
||||
"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",
|
||||
"subHappAutoDetect": "Happ ヘッダーの自動検出",
|
||||
"subHappAutoDetectDesc": "クライアントの User-Agent が Happ を示す場合、Happ のルーティングとヘッダーを自動的に挿入します。",
|
||||
"subHappProviderId": "プロバイダー ID",
|
||||
"subHappProviderIdDesc": "Happ クライアントの管理、リモート設定の紐付け、移行に使用する一意のプロバイダー識別子。",
|
||||
"subHappNewUrl": "新しいサブスクリプション URL",
|
||||
"subHappNewUrlDesc": "クライアントの自動移行先 URL。設定すると、Happ クライアントはこのサブスクリプションリンクへ移行します。",
|
||||
"subHappFallbackUrl": "フォールバック用サブスクリプション URL",
|
||||
"subHappFallbackUrlDesc": "プライマリのサブスクリプション URL に到達できなくなった場合に Happ が使用する予備のサブスクリプションアドレス。",
|
||||
"subHappSubInfoText": "バナーのお知らせテキスト",
|
||||
"subHappSubInfoTextDesc": "Happ クライアントの上部に表示されるカスタムのお知らせバナー (最大 200 文字)。",
|
||||
"subHappSubInfoColor": "バナーのアクセントカラー",
|
||||
"subHappSubInfoColorDesc": "お知らせバナーのカラーテーマ。",
|
||||
"subHappSubInfoButtonText": "バナーのボタンテキスト",
|
||||
"subHappSubInfoButtonTextDesc": "お知らせバナー内に表示されるボタンのラベル (最大 25 文字)。",
|
||||
"subHappSubInfoButtonLink": "バナーのボタンリンク",
|
||||
"subHappSubInfoButtonLinkDesc": "ユーザーがバナーのアクションボタンをクリックしたときに開く URL。",
|
||||
"subHappSubExpire": "期限切れサブスクリプションのバナー",
|
||||
"subHappSubExpireDesc": "ユーザーのトラフィックを使い切ったか有効期限が切れたときに、Happ に期限切れサブスクリプションのバナーを表示します。",
|
||||
"subHappSubExpireButtonLink": "更新リンク",
|
||||
"subHappSubExpireButtonLinkDesc": "期限切れのサブスクリプションで、ユーザーが更新ボタンをクリックしたときに開く URL。",
|
||||
"subHappNotificationExpire": "有効期限の通知",
|
||||
"subHappNotificationExpireDesc": "サブスクリプションの有効期限の 3 日前にユーザーへ通知するよう Happ に指示します。",
|
||||
"subHappNoLimit": "無制限モード",
|
||||
"subHappNoLimitDesc": "Happ の xray-core の RAM 上限を引き上げ、安定性とパフォーマンスを向上させます (ベータ)。",
|
||||
"subHappAlwaysHwid": "ハードウェア ID (HWID) を強制",
|
||||
"subHappAlwaysHwidDesc": "ユーザーが Happ の設定で HWID の送信をオフにできないようにします。",
|
||||
"subHappTunMode": "TUN モード",
|
||||
"subHappTunModeDesc": "デスクトップで TUN が使用するネットワークスタック: システム (OS のスタック) または gVisor (ユーザー空間スタック)。",
|
||||
"subHappTunType": "TUN エンジン",
|
||||
"subHappTunTypeDesc": "デスクトップで TUN 接続に使用するコア: sing-box、tun2proxy、デフォルト (Happ TUN)、または Xray。",
|
||||
"subHappExcludeRoutes": "CIDR ルートを除外",
|
||||
"subHappExcludeRoutesDesc": "VPN トンネルをバイパスする IP CIDR のカンマ区切りリスト (例: 192.168.0.0/16, 10.0.0.0/8)。",
|
||||
"subHappExcludeApns": "Apple APNs を除外",
|
||||
"subHappExcludeApnsDesc": "Apple プッシュ通知サービスをバイパスし、iOS でバックグラウンド通知を確実に受け取れるようにします。",
|
||||
"subHappColorProfile": "クライアントのカラーテーマ",
|
||||
"subHappColorProfileDesc": "iOS 用のカスタムカラーテーマを JSON 文字列で指定します。デフォルトの色に戻すには resetcolors を指定します。",
|
||||
"subHappPingType": "遅延の測定方法",
|
||||
"subHappPingTypeDesc": "Happ がノードの遅延を測定する方法: プロキシ経由 (GET または HEAD)、TCP、または ICMP。",
|
||||
"subHappAutoConnect": "起動時に自動接続",
|
||||
"subHappAutoConnectDesc": "アプリの起動時に VPN へ自動接続するよう Happ に指示します。",
|
||||
"subHappAutoConnectType": "自動接続先",
|
||||
"subHappAutoConnectTypeDesc": "自動接続で選択するサーバー: 最小遅延、最後に使用したノード、またはランダムなノード。",
|
||||
"subHappPerAppMode": "Android アプリ別プロキシモード",
|
||||
"subHappPerAppModeDesc": "Android アプリのルーティングを制御します: オフ、オン (リストされたアプリのみプロキシ)、またはバイパス (リストされたアプリを除外)。",
|
||||
"subHappPerAppList": "Android パッケージ名",
|
||||
"subHappPerAppListDesc": "対象または除外する Android アプリのパッケージ名をカンマ区切りで指定します (例: org.telegram.messenger)。",
|
||||
"subHappPresetIran": "イラン向けバイパス",
|
||||
"subHappPresetChina": "中国向け直接接続",
|
||||
"subHappPresetAdblock": "AdBlock",
|
||||
"subHappPresetGlobal": "Full Proxy",
|
||||
"subHappPresetGlobal": "フルプロキシ",
|
||||
"subHappPresetOff": "ルーティングを無効化 (happ://routing/off)",
|
||||
"subHappColorBlue": "ブルー (標準 / デフォルト)",
|
||||
"subHappColorGreen": "グリーン (成功)",
|
||||
"subHappColorRed": "レッド (警告 / 危険)",
|
||||
"subHappTunModeDefault": "デフォルト",
|
||||
"subHappTunModeSystem": "システム (標準OSスタック)",
|
||||
"subHappTunModeSystem": "システム (標準 OS スタック)",
|
||||
"subHappTunModeGvisor": "gVisor (ユーザー空間スタック)",
|
||||
"subHappTunTypeSingbox": "sing-box",
|
||||
"subHappTunTypeTun2proxy": "tun2proxy",
|
||||
"subHappTunTypeDefault": "デフォルト (Happ TUN)",
|
||||
"subHappTunTypeXray": "Xray TUN",
|
||||
"subHappPingProxy": "プロキシ経由 (GET遅延)",
|
||||
"subHappPingProxyHead": "プロキシ経由 (HEAD遅延)",
|
||||
"subHappPingTcp": "TCPハンドシェイク Ping",
|
||||
"subHappPingIcmp": "ICMP Ping",
|
||||
"subHappPingProxy": "プロキシ経由 (GET 遅延)",
|
||||
"subHappPingProxyHead": "プロキシ経由 (HEAD 遅延)",
|
||||
"subHappPingTcp": "TCP ハンドシェイク ping",
|
||||
"subHappPingIcmp": "ICMP ping",
|
||||
"subHappAutoConnectLowestDelay": "最小遅延 (最速ノード)",
|
||||
"subHappAutoConnectLastUsed": "最後に使用したノード",
|
||||
"subHappAutoConnectRandom": "ランダムノード",
|
||||
"subHappAutoConnectRandom": "ランダムなノード",
|
||||
"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": "直接接続する IP / CIDR",
|
||||
"subHappProxyIPs": "プロキシする IP / CIDR",
|
||||
"subHappBlockIPs": "ブロックする IP / CIDR",
|
||||
"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": "Discord Bot",
|
||||
"discordBotEnable": "Discord通知を有効化",
|
||||
"discordBotEnableDesc": "Botを介してDiscordチャンネルにシステムおよびイベント通知を送信します",
|
||||
|
||||
Reference in New Issue
Block a user