merge fix/settings-trim: dead settings, upstream remnants, JSON/Clash subscriptions removed

# Conflicts:
#	frontend/src/models/setting.ts
#	frontend/src/pages/settings/GeneralTab.tsx
#	frontend/src/pages/settings/SettingsPage.tsx
#	frontend/src/pages/settings/SubscriptionBalancersTab.tsx
#	frontend/src/pages/xray/outbounds/OutboundsTab.css
#	frontend/src/schemas/setting.ts
This commit is contained in:
Muse
2026-10-23 00:39:44 +00:00
109 changed files with 386 additions and 11297 deletions
+1 -108
View File
@@ -70,7 +70,6 @@
"install": "インストール",
"clients": "クライアント",
"usage": "利用状況",
"twoFactorCode": "コード",
"remained": "残り",
"security": "セキュリティ",
"somethingWentWrong": "エラーが発生しました",
@@ -103,8 +102,7 @@
"docs": "ドキュメント",
"openMenu": "メニューを開く",
"pinSidebar": "サイドバーを固定",
"unpinSidebar": "サイドバーの固定を解除",
"subFormats": "Sub Formats"
"unpinSidebar": "サイドバーの固定を解除"
},
"pages": {
"login": {
@@ -716,7 +714,6 @@
"detachFromInboundsResultMixed": "デタッチ {detached}、スキップ {skipped}、エラー {errors}。",
"subLinksTitle": "サブリンク ({count})",
"subLinkColumn": "サブスクリプション URL",
"subJsonLinkColumn": "サブスクリプション JSON URL",
"subLinksCopyAll": "すべてコピー",
"subLinksCopiedAll": "{count} リンクをコピーしました",
"subLinksEmpty": "選択したクライアントにはサブスクリプション ID がありません。",
@@ -1068,7 +1065,6 @@
"warnDefaultPort": "デフォルトポート 2053 はよく知られています — ランダムなポートに変更してください。",
"warnDefaultBasePath": "デフォルトのベースパス \"/\" はよく知られています — ランダムなパスに変更してください。",
"warnDefaultSubPath": "デフォルトのサブスクリプションパス \"/sub/\" はよく知られています — 変更してください。",
"warnDefaultJsonPath": "デフォルトの JSON サブスクリプションパス \"/json/\" はよく知られています — 変更してください。",
"panelListeningIP": "パネル監視IP",
"panelListeningIPDesc": "デフォルトではすべてのIPを監視する",
"panelListeningDomain": "パネル監視ドメイン",
@@ -1083,12 +1079,7 @@
"panelUrlPathDesc": "'/'で始まり、'/'で終わる必要があります",
"pageSize": "ページサイズ",
"pageSizeDesc": "インバウンドテーブルのページサイズを定義します。0を設定すると無効化されます",
"panelOutbound": "パネルトラフィックのアウトバウンド",
"panelOutboundDesc": "パネル自体のリクエスト (パネル/Xray のバージョンチェックとダウンロード、Telegram、通常の geo ファイル更新) をこの Xray アウトバウンド経由でルーティングし、サーバー側の GitHub/Telegram フィルタリングを回避します。ローカルのブリッジインバウンドが実行中の設定に自動的に追加され、ライブで適用されます。Xray ネイティブの Geodata 自動更新は影響を受けません。専用のダウンロードアウトバウンドを持ちます。直接接続するには空のままにします。",
"panelOutboundPh": "直接接続",
"datepicker": "日付ピッカー",
"datepickerPlaceholder": "日付を選択",
"datepickerDescription": "日付選択カレンダーで有効期限を指定する",
"oldUsername": "旧ユーザー名",
"currentPassword": "旧パスワード",
"newUsername": "新しいユーザー名",
@@ -1104,22 +1095,6 @@
"subSettings": "サブスクリプション設定",
"subEnable": "サブスクリプションサービスを有効にする",
"subEnableDesc": "サブスクリプションサービス機能を有効にする",
"subJsonEnable": "JSON サブスクリプションのエンドポイントを個別に有効/無効にする。",
"subJsonEnableTitle": "JSON サブスクリプション",
"subClashEnableTitle": "Clash / Mihomo サブスクリプション",
"subFormatsTipTitle": "形式別サブスクリプション設定",
"subFormatsTipDesc": "JSON と Clash / Mihomo の URL パス、リバース URL、クライアント自動検出を個別に設定します。",
"subFormatsTipAction": "サブスクリプション形式を開く",
"subJsonAutoDetect": "Xray JSON クライアントを自動検出",
"subJsonAutoDetectDesc": "有効にすると、標準サブスクリプション URL を要求する既知の互換クライアントへ Xray JSON 設定配列を自動的に返します。その他のクライアントには従来の raw/Base64 応答を返します。JSON サブスクリプションを有効にし、適用のためにパネルを再起動する必要があります。",
"subJsonAlwaysArray": "常に JSON 配列を返す",
"subJsonAlwaysArrayDesc": "プロファイルが 1 件でも、明示的な JSON サブスクリプションを XTLS 標準に従う配列として返します。自動検出された JSON 応答は常に配列です。無効時は従来の単一オブジェクト応答を維持します。",
"subJsonUserAgentRegex": "Xray JSON User-Agent 正規表現",
"subJsonUserAgentRegexDesc": "標準サブスクリプション URL で Xray JSON 形式を自動選択するため、クライアントの User-Agent と照合する Go RE2 正規表現です。既定では空欄のため、対象とするクライアント向けのパターンを設定するまで自動判別は無効のままです。その他のクライアントには従来の raw/Base64 応答を返します。変更後にパネルを再起動してください。",
"subClashAutoDetect": "Clash/Mihomo クライアントを自動検出",
"subClashAutoDetectDesc": "有効にすると、標準サブスクリプション URL を要求する既知の Clash/Mihomo クライアントへ Clash YAML を自動的に返します。ブラウザには引き続きサブスクリプションページを表示し、その他のクライアントには従来の raw/Base64 応答を返します。明示的な JSON および Clash URL も引き続き利用できます。Clash/Mihomo サブスクリプションを有効にし、適用のためにパネルを再起動する必要があります。",
"subClashUserAgentRegex": "Clash/Mihomo User-Agent 正規表現",
"subClashUserAgentRegexDesc": "標準サブスクリプション URL で Clash/Mihomo クライアントを識別するため、クライアントの User-Agent と照合する Go RE2 正規表現です。空欄の場合は既定のパターンを使用します。変更後にパネルを再起動してください。",
"subTitle": "サブスクリプションタイトル",
"subTitleDesc": "VPNクライアントに表示されるタイトル。クライアント識別トークンをサポートします: {{EMAIL}}, {{ID}}, {{SHORT_ID}}, {{SUB_ID}}, {{TELEGRAM_ID}}。",
"subSupportUrl": "サポートURL",
@@ -1128,23 +1103,8 @@
"subProfileUrlDesc": "VPNクライアントに表示されるWebサイトへのリンク。クライアント識別トークンをサポートします: {{EMAIL}}, {{ID}}, {{SHORT_ID}}, {{SUB_ID}}, {{TELEGRAM_ID}}。",
"subAnnounce": "お知らせ",
"subAnnounceDesc": "VPNクライアントに表示されるお知らせのテキスト。クライアント識別トークンをサポートします: {{EMAIL}}, {{ID}}, {{SHORT_ID}}, {{SUB_ID}}, {{TELEGRAM_ID}}。",
"subThemeDir": "サブスクリプションテーマディレクトリ",
"subThemeDirDesc": "サブスクリプションページのカスタムテンプレート (index.html/sub.html) を含むフォルダーの絶対パス(例: /etc/3x-ui/sub_templates/my-theme/)。空欄の場合はデフォルトのページを使用します。",
"subThemeDirDocs": "テンプレートガイド ↗",
"subEnableRouting": "ルーティングを有効化",
"subEnableRoutingDesc": "VPNクライアントでルーティングを有効にするためのグローバル設定。(Happのみ)",
"subRoutingRules": "ルーティングルール",
"subRoutingRulesDesc": "完成した happ:// ディープリンク、または永続的な HTTPS URL を入力します。パネルはリモートルールをバックグラウンドで更新し、最後の有効値を保持するため、サブスクリプション要求は取得を待ちません。(Happのみ)",
"subHideSettings": "サーバー設定を非表示",
"subHideSettingsDesc": "VPNクライアントでサーバー設定の表示・編集機能を非表示にします。(Happのみ)",
"subIncyEnableRouting": "ルーティングを有効化",
"subIncyEnableRoutingDesc": "Incyクライアント用に、サブスクリプション本文へルーティングプロファイルを挿入します。(Incyのみ)",
"subIncyRoutingRules": "ルーティングルール",
"subIncyRoutingRulesDesc": "完成した incy:// ディープリンク、または JSON への永続的な HTTPS URL を入力します。Incy は autorouting プロファイルを作成し、自動更新します。(Incyのみ)",
"subClashEnableRouting": "ルーティングを有効化",
"subClashEnableRoutingDesc": "生成されたYAMLサブスクリプションにClash/Mihomoのグローバルルーティングルールを含めます。",
"subClashRoutingRules": "グローバルルーティングルール",
"subClashRoutingRulesDesc": "ルール/YAML、または永続的な HTTPS URL を入力します。パネルはバックグラウンドで更新し、グループ・ルールプロバイダー・ルールのみを取り込み、生成済み VPN ノードと最後の有効値を保持します。",
"subListen": "監視IP",
"subListenDesc": "サブスクリプションサービスが監視するIPアドレス(空白にするとすべてのIPを監視)",
"subPort": "監視ポート",
@@ -1173,8 +1133,6 @@
"trustedProxyCidrs": "信頼できるプロキシ CIDR",
"trustedProxyCidrsDesc": "転送される host、proto、クライアント IP ヘッダーを設定可能な IP/CIDR (カンマ区切り)。",
"subFormats": {
"finalMask": "Final Mask",
"finalMaskDesc": "生成される各 Xray JSON プロファイルへ Xray finalmask の TCP/UDP マスクと QUIC パラメーターを追加します。Xray JSON サブスクリプション対応アプリと新しい Xray コアが必要です。",
"packets": "パケット",
"length": "長さ",
"interval": "間隔",
@@ -1185,16 +1143,12 @@
"packet": "パケット",
"delayMs": "遅延 (ms)",
"applyTo": "適用先",
"addNoise": "+ ノイズ",
"concurrency": "並行数",
"xudpConcurrency": "xudp 並行数",
"xudpUdp443": "xudp UDP 443"
},
"mux": "Mux",
"muxDesc": "確立されたストリーム内で複数の独立したストリームを伝送する",
"muxSett": "マルチプレクサ設定",
"direct": "直接接続",
"directDesc": "特定の国のドメインまたはIP範囲に直接接続する",
"certs": "証明書",
"dateAndTime": "日付と時刻",
"proxyAndServer": "プロキシとサーバー",
@@ -1204,7 +1158,6 @@
"language": "言語",
"security": {
"admin": "管理者の資格情報",
"twoFactorModalError": "コードが間違っています",
"show": "表示",
"hide": "非表示",
"apiTokenNew": "新規トークン",
@@ -1226,9 +1179,6 @@
"getOutboundTrafficError": "送信トラフィックの取得エラー",
"resetOutboundTrafficError": "送信トラフィックのリセットエラー"
},
"eventOutboundDown": "ダウン",
"eventOutboundUp": "アップ",
"eventXrayCrash": "クラッシュ",
"eventNodeDown": "ダウン",
"eventNodeUp": "アップ",
"eventCPUHigh": "CPU高負荷(%)",
@@ -1244,59 +1194,6 @@
},
"secretClear": "クリア",
"secretClearUndo": "クリアを取り消す",
"calendarGregorian": "Gregorian (Standard)",
"calendarJalalian": "Jalalian (شمسی)",
"ipLimitAllowlist": "IP 制限の許可リスト",
"ipLimitAllowlistDesc": "IP 制限がカウントもブロックもしないアドレスとネットワーク。オフィスや学内の共有アドレスがクライアントの上限を使い切らないようにします。IP/CIDR (カンマ区切り)。",
"subBalancers": {
"menu": "サブスクリプションバランサー",
"title": "サブスクリプションバランサー",
"add": "バランサーを追加",
"desc": "有効なバランサーは JSON サブスクリプションに追加プロファイルとして加わり、選択したインバウンドのエンドポイントから最適なものを自動選択します。",
"remark": "備考",
"remarkPlaceholder": "自動 · 最速",
"strategy": "方式",
"strategyLeastLoad": "最小負荷",
"strategyLeastPing": "最小 ping",
"strategyRandom": "ランダム",
"strategyRoundRobin": "ラウンドロビン",
"sortOrder": "順序",
"sortOrderHelp": "サブスクリプション一覧内の位置。インバウンドの順序と交互に並び、同番号の場合はインバウンドの後ろになります。",
"inbounds": "インバウンド",
"inboundsCount": "{count} インバウンド",
"enabled": "有効",
"empty": "バランサーはまだありません",
"deleteConfirm": "このバランサーを削除しますか?",
"errRemarkRequired": "備考を入力してください",
"errInboundsRequired": "インバウンドを1つ以上選択してください",
"errSortOrder": "順序は1以上の整数にしてください",
"toasts": {
"list": "サブスクリプションバランサーの一覧取得に失敗しました",
"create": "サブスクリプションバランサーの作成に失敗しました",
"update": "サブスクリプションバランサーの更新に失敗しました",
"delete": "サブスクリプションバランサーの削除に失敗しました",
"invalidId": "無効な id です"
},
"tabBalancers": "負荷分散",
"tabObservatory": "オブザーバトリ",
"observatory": {
"title": "バランサー観測",
"desc": "各 leastPing/leastLoad バランサープロファイルに埋め込む burstObservatory のプローブ設定。random/roundRobin には観測を入れません。パネル全体の JSON サブ設定として保存されます。",
"destination": "プローブ URL",
"destinationDesc": "クライアントが各メンバーアウトバウンドを計測するためのアドレス。",
"connectivity": "接続確認 URL",
"connectivityDesc": "メンバーがプローブ先へ到達できるか一度確認する任意のアドレス。空ならスキップ。",
"interval": "プローブ間隔",
"intervalDesc": "プローブ周期の間隔(例: 1m)。",
"timeout": "プローブタイムアウト",
"timeoutDesc": "1回のプローブのタイムアウト(例: 5s)。",
"sampling": "サンプリング",
"samplingDesc": "安定度を平均するための連続プローブ回数。",
"httpMethod": "HTTP メソッド",
"httpMethodDesc": "プローブ要求に使う HTTP メソッド。",
"note": "leastPing/leastLoad バランサーは常に burstObservatory を持ちます。このスイッチはプローブパラメータをカスタマイズします — オフにすると組み込みのデフォルトを使います。変更はパネルの再起動後に反映されます。"
}
},
"TGBotSettings": "Telegram Bot",
"notifications": "通知",
"notifyTime": {
@@ -1640,12 +1537,8 @@
"SuccessResetTraffic": "📧 メール: {{ .ClientEmail }}\n🏁 結果: ✅ 成功",
"FailedResetTraffic": "📧 メール: {{ .ClientEmail }}\n🏁 結果: ❌ 失敗 \n\n🛠️ エラー: [ {{ .ErrorMessage }} ]",
"FinishProcess": "🔚 すべてのクライアントのトラフィックリセットが完了しました。",
"eventOutboundDown": "アウトバウンド {{ .Tag }} がダウンしています",
"eventOutboundUp": "アウトバウンド {{ .Tag }} が復旧しました",
"eventErrorDetail": "エラー: {{ .Error }}",
"eventDelayDetail": "遅延: {{ .Delay }}ms",
"eventXrayCrash": "Xrayがクラッシュしました",
"eventXrayCrashError": "エラー: {{ .Error }}",
"eventNodeDown": "ノード {{ .Name }} がダウンしています",
"eventNodeUp": "ノード {{ .Name }} が復旧しました",
"eventLoginFallback": "{{ .Source }} からのログインに失敗しました",