chore: i18n (#5276)

* chore: notice i18n

* feat: add script to clean up unused i18n keys

* chore: cleanup i18n keys

* refactor(i18n/proxies): migrate proxies UI to structured locale keys

* chore: i18n for rule module

* chore: i18n for profile module

* chore: i18n for connections module

* chore: i18n for settings module

* chore: i18n for verge settings

* chore: i18n for theme settings

* chore: i18n for theme

* chore(i18n): components.home.*

* chore(i18n): remove unused i18n keys

* chore(i18n): components.profile.*

* chore(i18n): components.connection

* chore(i18n): pages.logs.*

* chore(i18n): pages.*.provider

* chore(i18n): components.settings.externalCors.*

* chore(i18n): components.settings.clash.*

* chore(i18n): components.settings.liteMode.*

* chore(i18n): components.settings.backup.*

* chore(i18n): components.settings.clash.port.*

* chore(i18n): components.settings.misc.*

* chore(i18n): components.settings.update.*

* chore(i18n): components.settings.sysproxy.*

* chore(i18n): components.settings.sysproxy.*

* chore(i18n): pages.profiles.notices/components.providers.notices

* refactor(notice): unify showNotice usage

* refactor(notice): add typed showNotice shortcuts, centralize defaults, and simplify subscriptions

* refactor: unify showNotice usage

* refactor(notice): unify showNotice API

* refactor(notice): unify showNotice usage

* chore(i18n): components.test.*

* chore(i18n): components.settings.dns.*

* chore(i18n): components.home.clashInfo.*

* chore(i18n): components.home.systemInfo.*

* chore(i18n): components.home.ipInfo/traffic.*

* chore(i18n): navigation.*

* refactor(i18n): remove pages.* namespace and migrate route texts under module-level page keys

* chore(i18n): common.*

* chore(i18n): common.*

* fix: change error handling in patch_profiles_config to return false when a switch is in progress

* fix: improve error handling in patch_profiles_config to prevent requests during profile switching

* fix: change error handling in patch_profiles_config to return false when a switch is in progress

fix: ensure CURRENT_SWITCHING_PROFILE is reset after config updates in perform_config_update and patch_profiles_config

* chore(i18n): restructure root-level locale keys into namespaces

* chore(i18n): add missing i18n keys

* docs: i18n guide

* chore: adjust i18n

* refactor(i18n): align UI actions and status labels with common keys

* refactor(i18n): unify two-name locale namespaces

* refactor(i18n/components): unify locale keys and update component references

* chore(i18n): add shared and entities namespaces to all locale files

* refactor(i18n): consolidate shared and entity namespaces across features

* chore(deps): update npm dependencies to ^7.3.5 (#5310)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(i18n): migrate shared editor modes and consolidate entities namespaces

* tmp

* refactor(i18n): flatten locales and move theme/validation strings

* docs: CONTRIBUTING_i18n.md

* refactor(i18n): restructure feedback and profile namespaces for better organization

* refactor(i18n): unify settings locale structure and update references

* refactor(i18n): reorganize locale keys for home, proxies, rules, connections, logs, unlock, and tests

* refactor(i18n/feedback/layout): unify shared toasts & normalize layout namespace

* refactor(i18n): centralize common UI strings in shared

* refactor(i18n): flatten headers and unify locale schema

* refactor(i18n): consolidate duplicate per-feature translations into shared namespace

* refactor(i18n): split locales into per-namespace files

* style: lint

* refactor(i18n): unify unlock UI translations under tests namespace

* feat(i18n): add type-checked translation keys

* style: eslint import order

* feat(i18n): replace ad-hoc loader with rust-i18n backend bundles

* chore(prebuild): remove locale-copy step

* fix(i18n, notice): propagate runtime params and update cleanup script path

* fix(i18n,notice): make locale formatting idempotent and guard early notice translations

* fix(i18n): resolve locale aliases and match OS codes correctly

* fix(unlock): use i18next-compatible double-brace interpolation in failure notice

* fix(i18n): route unlock error notices through translation keys

* fix(i18n): i18n types

* feat(i18n): localize upgrade notice for Clash core viewer

* fix(notice): ensure runtime overrides apply to prefix translations

* chore(i18n): replace literal notices with translation keys

* chore(i18n): types

* chore(i18n): regen typings before formatting to keep keys in sync

* chore(i18n): simply labels

* chore(i18n): adjust translation

* chore: remove eslint-plugin-i18next

* chore(i18n): add/refine Korean translations across frontend scopes and Rust backend (#5341)

* chore(i18n): translate settings.json (missed in previous pass) (#5343)

* chore(i18n): add/refine Korean translations across frontend scopes and Rust backend

* chore(i18n): add/refine Korean translations across frontend scopes and Rust backend

* fix(i18n-tauri): quote placeholder-leading value in ko.yml to prevent rust_i18n parse panic

* chore(i18n): translate settings.json (forgot to include previously)

---------

Co-authored-by: rozan <34974262+thelojan@users.noreply.github.com>
This commit is contained in:
Sline
2025-11-08 19:40:38 +08:00
committed by GitHub
parent c1a2e99f63
commit c8aa72186e
286 changed files with 24243 additions and 8867 deletions

View File

@@ -0,0 +1,573 @@
{
"page": {
"actions": {
"manual": "マニュアル",
"telegram": "Telegramチャンネル",
"github": "GitHubリポジトリ"
},
"title": "設定"
},
"sections": {
"system": {
"title": "システム設定",
"toggles": {
"tunMode": "仮想ネットワークカードモード",
"systemProxy": "システムプロキシ"
},
"tooltips": {
"autoLaunchAdmin": "管理者モードでは起動時の自動起動がサポートされない場合があります。",
"silentStart": "アプリケーションを起動すると、バックグラウンドモードで実行され、アプリケーションパネルは表示されません。"
},
"fields": {
"autoLaunch": "自動起動",
"silentStart": "サイレント起動"
},
"notifications": {
"tunMode": {
"autoDisabled": "TUN Mode automatically disabled due to service unavailable",
"autoDisableFailed": "Failed to disable TUN Mode automatically"
}
}
},
"proxyControl": {
"tooltips": {
"systemProxy": "オペレーティングシステムのプロキシ設定を変更します。有効にできない場合は、手動でオペレーティングシステムのプロキシ設定を変更してください。",
"tunMode": "TUN仮想ネットワークカードモードはシステムのすべてのトラフィックを制御します。有効にすると、システムプロキシを開く必要はありません。",
"tunUnavailable": "TUNモードはサービスモードまたは管理者モードが必要です"
},
"actions": {
"installService": "サービスをインストール",
"uninstallService": "サービスのアンインストール"
},
"fields": {
"systemProxy": "システムプロキシ",
"tunMode": "仮想ネットワークカードモード"
}
},
"externalController": {
"title": "外部コントローラーの監視アドレス",
"fields": {
"enable": "外部コントローラーを有効化",
"address": "外部コントローラーの監視アドレス",
"secret": "APIアクセスキー"
},
"placeholders": {
"address": "必須",
"secret": "推奨設定"
},
"tooltips": {
"copy": "クリップボードにコピー"
},
"messages": {
"addressRequired": "コントローラーのアドレスは空にできません",
"secretRequired": "シークレットを空にすることはできません",
"copyFailed": "コピーに失敗しました",
"controllerCopied": "API ポートがクリップボードにコピーされました",
"secretCopied": "API キーがクリップボードにコピーされました"
}
},
"externalCors": {
"title": "外部 CORS 設定",
"fields": {
"allowPrivateNetwork": "プライベートネットワークへのアクセスを許可",
"allowedOrigins": "許可されたオリジン"
},
"placeholders": {
"origin": "有効なURLを入力してください"
},
"actions": {
"add": "追加"
},
"messages": {
"alwaysIncluded": "常に含まれるオリジン: {{urls}}"
},
"tooltips": {
"open": "外部 CORS 設定"
}
},
"appearance": {
"light": "Light",
"dark": "Dark",
"system": "System"
},
"clash": {
"title": "Clash設定",
"form": {
"fields": {
"allowLan": "LAN接続を許可",
"dnsOverwrite": "DNS上書き",
"ipv6": "IPv6",
"unifiedDelay": "統一遅延",
"logLevel": "ログレベル",
"portConfig": "ポート設定",
"external": "外部制御",
"webUI": "Webインターフェース",
"clashCore": "Clashコア",
"openUwpTool": "UWPツールを開く",
"updateGeoData": "GeoDataを更新"
},
"tooltips": {
"networkInterface": "ネットワークインターフェース",
"unifiedDelay": "統一遅延を有効にすると、2回の遅延テストが行われ、接続ハンドシェイクなどによる異なるタイプのードの遅延差を解消します。",
"logLevel": "ログディレクトリのServiceフォルダ内のコアログファイルにのみ適用されます。",
"openUwpTool": "Windows 8以降では、UWPアプリケーションMicrosoft Storeなどがローカルホストのネットワークサービスに直接アクセスすることが制限されています。このツールを使用すると、この制限を回避できます。"
},
"options": {
"logLevel": {
"debug": "Debug",
"info": "Info",
"warning": "Warn",
"error": "Error",
"silent": "Silent"
}
}
}
}
},
"components": {
"verge": {
"basic": {
"title": "Verge基本設定",
"actions": {
"browse": "参照"
},
"trayOptions": {
"showMainWindow": "メインウィンドウを表示",
"showTrayMenu": "トレイメニューを表示",
"disable": "無効にする"
},
"fields": {
"language": "言語設定",
"themeMode": "テーマモード",
"trayClickEvent": "トレイアイコンクリックイベント",
"copyEnvType": "環境変数タイプをコピー",
"startPage": "起動ページ",
"startupScript": "起動スクリプト",
"themeSetting": "テーマ設定",
"layoutSetting": "レイアウト設定",
"misc": "その他の設定",
"hotkeySetting": "ホットキー設定"
}
},
"advanced": {
"title": "Verge詳細設定",
"tooltips": {
"backupInfo": "WebDAVを使用した設定ファイルのバックアップをサポートします。",
"openConfDir": "アプリケーションが正常に動作しない場合は、このフォルダ内のすべてのファイルを!バックアップ!して削除し、アプリケーションを再起動してください。",
"liteMode": "GUIを閉じて、コアのみを実行します。"
},
"actions": {
"copyVersion": "Copy Version"
},
"notifications": {
"latestVersion": "現在は最新バージョンです。",
"versionCopied": "Version copied to clipboard"
},
"fields": {
"backupSetting": "バックアップ設定",
"runtimeConfig": "現在の設定",
"openConfDir": "設定ディレクトリを開く",
"openCoreDir": "コアディレクトリを開く",
"openLogsDir": "ログディレクトリを開く",
"checkUpdates": "更新を確認",
"openDevTools": "開発者ツールを開く",
"liteModeSettings": "軽量モード設定",
"exit": "終了",
"exportDiagnostics": "診断情報をエクスポート",
"vergeVersion": "Vergeバージョン"
}
},
"theme": {
"title": "テーマ設定",
"fields": {
"primaryColor": "主要色",
"secondaryColor": "次要色",
"primaryText": "テキスト主要色",
"secondaryText": "テキスト次要色",
"infoColor": "情報色",
"warningColor": "警告色",
"errorColor": "エラー色",
"successColor": "成功色",
"fontFamily": "フォントファミリー",
"cssInjection": "CSSインジェクション"
},
"actions": {
"editCss": "Edit CSS"
},
"dialogs": {
"editCssTitle": "Edit CSS"
}
},
"layout": {
"title": "レイアウト設定",
"fields": {
"preferSystemTitlebar": "Prefer System Titlebar",
"trafficGraph": "トラフィックグラフ",
"memoryUsage": "コアメモリ使用量",
"proxyGroupIcon": "プロキシグループアイコン",
"hoverNavigator": "Hover Jump Navigator",
"hoverNavigatorDelay": "Hover Jump Navigator Delay",
"navIcon": "ナビゲーションバーアイコン",
"trayIcon": "トレイアイコン",
"showProxyGroupsInline": "Show Proxy Groups Inline",
"commonTrayIcon": "通常のトレイアイコン",
"systemProxyTrayIcon": "システムプロキシトレイアイコン",
"tunTrayIcon": "TUNモードトレイアイコン",
"enableTrayIcon": "トレイアイコンを有効にする",
"enableTraySpeed": "トレイの速度表示を有効にする"
},
"tooltips": {
"hoverNavigator": "Automatically scroll to the corresponding proxy group when hovering over alphabet letters",
"hoverNavigatorDelay": "Delay before auto scrolling when hovering, in milliseconds"
},
"options": {
"icon": {
"monochrome": "モノクロアイコン",
"colorful": "カラーアイコン",
"disable": "無効にする"
}
}
}
}
},
"modals": {
"clashPort": {
"title": "ポート設定",
"fields": {
"mixed": "混合プロキシポート",
"socks": "SOCKSプロキシポート",
"http": "HTTP(S)プロキシポート",
"redir": "Redir透明プロキシポート",
"tproxy": "TPROXY透明プロキシポート"
},
"actions": {
"random": "ランダムポート"
},
"messages": {
"saved": "Port settings saved",
"saveFailed": "Failed to save port settings"
}
},
"clashCore": {
"variants": {
"release": "正式版",
"alpha": "アルファ版"
}
},
"liteMode": {
"title": "軽量モード設定",
"actions": {
"enterNow": "今すぐ軽量モードに入る"
},
"toggles": {
"autoEnter": "自動的に軽量モードに入る"
},
"tooltips": {
"autoEnter": "有効にすると、ウィンドウを閉じてから一定時間後に自動的に軽量モードが有効になります。"
},
"fields": {
"delay": "自動的に軽量モードに入るまでの遅延時間"
},
"messages": {
"autoEnterHint": "ウィンドウを閉じると、{{n}}分後に自動的に軽量モードが有効になります。"
}
},
"backup": {
"title": "バックアップ設定",
"tabs": {
"local": "Local backup",
"webdav": "WebDAV backup"
},
"actions": {
"selectTarget": "Select backup target",
"backup": "バックアップ",
"export": "Export",
"exportBackup": "Export Backup",
"deleteBackup": "バックアップを削除",
"restore": "復元",
"restoreBackup": "バックアップを復元"
},
"fields": {
"webdavUrl": "WebDAVサーバーのURL http(s)://",
"username": "ユーザー名",
"info": "Backups are stored locally in the application data directory. Use the list below to restore or delete backups."
},
"messages": {
"webdavUrlRequired": "WebDAVサーバーのURLは必須です。",
"invalidWebdavUrl": "無効なWebDAVサーバーのURL形式",
"usernameRequired": "ユーザー名は必須です。",
"passwordRequired": "パスワードは必須です。",
"webdavConfigSaved": "WebDAV設定が保存されました。",
"webdavConfigSaveFailed": "WebDAV設定の保存に失敗しました: {{error}}",
"backupCreated": "バックアップが作成されました。",
"backupFailed": "バックアップに失敗しました: {{error}}",
"localBackupCreated": "Local backup created successfully",
"localBackupFailed": "Local backup failed",
"restoreSuccess": "復元に成功しました。アプリケーションは1秒後に再起動します。",
"localBackupExported": "Local backup exported successfully",
"localBackupExportFailed": "Failed to export local backup",
"confirmDelete": "Confirm to delete this backup file?",
"confirmRestore": "Confirm to restore this backup file?"
},
"table": {
"filename": "ファイル名",
"backupTime": "バックアップ時間",
"actions": "操作",
"noBackups": "バックアップがありません。",
"rowsPerPage": "Rows per page"
}
},
"misc": {
"title": "その他の設定",
"fields": {
"appLogLevel": "アプリケーションログレベル",
"appLogMaxSize": "App Log Max Size",
"appLogMaxCount": "App Log Max Count",
"autoCloseConnections": "接続を自動的に閉じる",
"autoCheckUpdate": "自動更新チェック",
"enableBuiltinEnhanced": "組み込み拡張機能を有効にする",
"proxyLayoutColumns": "プロキシページのレイアウト列数",
"autoLogClean": "ログを自動的にクリーンアップ",
"autoDelayDetection": "自動遅延検出",
"defaultLatencyTest": "デフォルトの遅延テストURL",
"defaultLatencyTimeout": "テストタイムアウト時間"
},
"tooltips": {
"autoCloseConnections": "プロキシグループで選択されたノードまたはプロキシモードが変更されたときに、既存の接続を閉じます。",
"enableBuiltinEnhanced": "設定ファイルの互換性処理",
"autoDelayDetection": "バックグラウンドで現在のノードのレイテンシーを定期的にテストします",
"defaultLatencyTest": "HTTPクライアントリクエストテストにのみ使用され、設定ファイルには影響しません。"
},
"options": {
"proxyLayoutColumns": {
"auto": "自動列数"
},
"autoLogClean": {
"never": "クリーンアップしない",
"retainDays": "{{n}}日間保持"
}
}
},
"update": {
"title": "New Version v{{version}}",
"actions": {
"goToRelease": "リリースページに移動",
"update": "更新"
},
"messages": {
"portableError": "ポータブル版ではアプリケーション内での更新はサポートされていません。手動でダウンロードして置き換えてください。",
"breakChangeError": "このバージョンは重大な更新であり、アプリケーション内での更新はサポートされていません。アンインストールしてから手動でダウンロードしてインストールしてください。"
}
},
"sysproxy": {
"title": "システムプロキシ設定",
"fieldsets": {
"currentStatus": "現在のシステムプロキシ"
},
"fields": {
"enableStatus": "有効状態:",
"serverAddr": "サーバーアドレス:",
"pacUrl": "PACアドレス",
"proxyHost": "プロキシホスト",
"usePacMode": "PACモードを使用",
"proxyGuard": "システムプロキシガード",
"guardDuration": "プロキシガード間隔",
"alwaysUseDefaultBypass": "常にデフォルトのバイパスを使用",
"proxyBypass": "プロキシバイパス設定:",
"bypass": "現在のバイパス:",
"pacScriptContent": "PACスクリプト内容"
},
"tooltips": {
"proxyGuard": "他のソフトウェアがオペレーティングシステムのプロキシ設定を変更するのを防ぐために有効にします。"
},
"messages": {
"durationTooShort": "プロキシデーモンの間隔は1秒以上に設定する必要があります。",
"invalidBypass": "無効なバイパス形式",
"invalidProxyHost": "プロキシホストの形式が無効です"
},
"actions": {
"editPac": "編集 PAC"
}
},
"tun": {
"title": "仮想ネットワークカードモード",
"fields": {
"stack": "TUNモードスタック",
"device": "Device Name",
"autoRoute": "グローバルルートを自動設定",
"strictRoute": "厳格なルート",
"autoDetectInterface": "トラフィックの出口インターフェースを自動選択",
"dnsHijack": "DNSハイジャック",
"mtu": "最大転送単位"
},
"tooltips": {
"dnsHijack": "Please use , to separate multiple DNS servers"
},
"messages": {
"applied": "設定が適用されました。"
}
},
"dns": {
"dialog": {
"title": "DNS上書き",
"warning": "ここの設定がわからない場合は、変更しないでください。DNS上書きを有効にしたままにしてください。"
},
"sections": {
"general": "DNS設定",
"fallbackFilter": "フォールバックフィルター設定",
"hosts": "Hosts設定"
},
"fields": {
"enable": "DNSを有効にする",
"listen": "DNS監視アドレス",
"enhancedMode": "拡張モード",
"fakeIpRange": "Fake IP範囲",
"fakeIpFilterMode": "Fake IPフィルターモード",
"ipv6": {
"label": "IPv6",
"description": "IPv6 DNS解決を有効にする"
},
"preferH3": {
"label": "HTTP/3を優先する",
"description": "DNS DOHでHTTP/3プロトコルを使用する"
},
"respectRules": {
"label": "ルートルールに従う",
"description": "DNS接続はルートルールに従います。"
},
"useHosts": {
"label": "Hostsファイルを使用する",
"description": "Hostsファイルを使用してホスト名を解決する"
},
"useSystemHosts": {
"label": "システムのHostsファイルを使用する",
"description": "システムのHostsファイルを使用してホスト名を解決する"
},
"directPolicy": {
"label": "直接接続の名前解決サーバーはポリシーに従う",
"description": "名前解決サーバーのポリシーに従うかどうか"
},
"defaultNameserver": {
"label": "デフォルトの名前解決サーバー",
"description": "名前解決サーバーを解決するために使用されるデフォルトのDNSサーバー"
},
"nameserver": {
"label": "名前解決サーバー",
"description": "DNSサーバーのリスト。カンマで区切って指定します。"
},
"fallback": {
"label": "フォールバックサーバー",
"description": "フォールバックDNSサーバーのリスト。カンマで区切って指定します。"
},
"proxy": {
"label": "プロキシサーバーの名前解決サーバー",
"description": "プロキシノードの名前解決サーバー。プロキシノードのドメイン名を解決するためにのみ使用されます。カンマで区切って指定します。"
},
"directNameserver": {
"label": "直接接続の名前解決サーバー",
"description": "直接接続の出口名前解決サーバー。systemキーワードをサポートします。カンマで区切って指定します。"
},
"fakeIpFilter": {
"label": "Fake IPフィルター",
"description": "Fake IP解決をスキップするドメイン名。カンマで区切って指定します。"
},
"nameserverPolicy": {
"label": "名前解決サーバーのポリシー",
"description": "特定のドメインのDNSサーバー。複数のサーバーはセミコロンで区切って指定します。形式: domain=server1;server2"
},
"geoipFiltering": {
"label": "GeoIPフィルタリング",
"description": "フォールバックのGeoIPフィルタリングを有効にする"
},
"geoipCode": "GeoIP国コード",
"fallbackIpCidr": {
"label": "フォールバックIP CIDR",
"description": "フォールバックサーバーを使用しないIP CIDR。カンマで区切って指定します。"
},
"fallbackDomain": {
"label": "フォールバックドメイン",
"description": "フォールバックサーバーを使用するドメイン名。カンマで区切って指定します。"
},
"hosts": {
"label": "Hosts",
"description": "カスタムのドメイン名からIPまたはドメイン名へのマッピング。カンマで区切って指定します。"
}
},
"messages": {
"saved": "DNS設定が保存されました。",
"configError": "DNS configuration error:"
},
"errors": {
"invalid": "Invalid configuration",
"invalidYaml": "Invalid YAML format"
}
},
"webUI": {
"actions": {
"openUrl": "URLを開く"
},
"title": "Webインターフェース",
"messages": {
"supportedPlaceholders": "%host, %port, %secretをサポートします。",
"placeholderInstruction": "%host, %port, %secretを使用してホスト、ポート、アクセスキーを表します。"
}
},
"hotkey": {
"toggles": {
"enableGlobal": "グローバルホットキーを有効にする"
},
"title": "ホットキー設定",
"functions": {
"rule": "ルールモード",
"global": "グローバルモード",
"openOrCloseDashboard": "ダッシュボードを開く/閉じる",
"toggleSystemProxy": "システムプロキシを開く/閉じる",
"toggleTunMode": "TUNモードを開く/閉じる",
"entryLightweightMode": "軽量モードに入る",
"direct": "直接接続モード"
}
},
"password": {
"prompts": {
"enterRoot": "ルートパスワードを入力してください。"
}
},
"networkInterface": {
"title": "ネットワークインターフェース",
"fields": {
"ipAddress": "IPアドレス",
"macAddress": "MACアドレス"
}
}
},
"feedback": {
"notifications": {
"clash": {
"restartSuccess": "Clashコアが再起動されました。",
"versionUpdated": "コアバージョンが更新されました。",
"alreadyLatestVersion": "すでに最新のコアバージョンを使用しています。",
"changeSuccess": "コアの切り替えに成功しました。",
"changeFailed": "コアの切り替えに失敗しました。",
"geoDataUpdated": "GeoDataが更新されました。"
},
"clashService": {
"installSuccess": "サービスのインストールに成功しました。",
"uninstallSuccess": "サービスのアンインストールに成功しました。"
},
"updater": {
"withClashProxySuccess": "Clashプロキシを使用して更新に成功しました。",
"withClashProxyFailed": "Clashプロキシを使用しても更新に失敗しました。"
}
}
},
"statuses": {
"clash": {
"stopping": "コアを停止中...",
"restarting": "コアを再起動中..."
},
"clashService": {
"installing": "サービスをインストール中...",
"uninstalling": "サービスをアンインストール中..."
}
}
}