feat(i18n): add multi-language support (ja/ko/vi/ru/zh-TW) with system auto-detection
- Extend AppLanguage to 7 locales: zh-CN, zh-TW, en, ja, ko, vi, ru - Auto-detect system language via navigator.languages; fallback to English - Add BCP47 locale mapping for date formatting and sorting - Create 50 translation JSON files (5 languages × 10 namespaces, 1137 keys each) - Update language selector with native language names - Extend locale key parity test to cover all 7 languages (70 assertions) - Add VNC/RDP desktop, serial terminal, AI agent, port forwarding, and SFTP features - Add credential encryption, host metrics, session backup crypto, and zmodem bridge - Update Rust backend: desktop services, host metrics, SSH/SFTP enhancements
This commit is contained in:
1 parent
fea6d8db04
commit
b0d0e3a5f3
301 files changed
+28002
-2705
No files matched your search
@@ -0,0 +1,119 @@
|
||||
{
|
||||
"toolbar": {
|
||||
"splitHorizontal": "左右に分割",
|
||||
"splitVertical": "上下に分割",
|
||||
"addPane": "ペインを追加",
|
||||
"closePane": "現在のペインを閉じる",
|
||||
"maximizePane": "現在のペインを最大化",
|
||||
"restoreLayout": "分割レイアウトを復元",
|
||||
"broadcast": "ブロードキャスト",
|
||||
"broadcastAria": "入力をブロードキャスト",
|
||||
"broadcastOn": "ブロードキャスト中: スコープ内の {{count}} ターミナルへ入力を同期",
|
||||
"broadcastOffPro": "入力をブロードキャスト (Pro) · スコープ内の {{count}} ターミナル",
|
||||
"broadcastNeedPanesTab": "このタブはブロードキャストに最低 2 つの準備完了ペインが必要です (先に分割してください)",
|
||||
"broadcastNeedPanesAll": "全ターミナルタブがブロードキャストに最低 2 つの準備完了ターミナルを必要とします",
|
||||
"broadcastScopeAria": "ブロードキャストのスコープ",
|
||||
"broadcastScopeTab": "現在のタブのペイン",
|
||||
"broadcastScopeAll": "全ターミナルタブ",
|
||||
"broadcastActive": "ブロードキャスト中 · {{count}}",
|
||||
"aiAssistant": "AI アシスタント",
|
||||
"aiOpen": "ターミナル AI アシスタントを開く",
|
||||
"aiClose": "ターミナル AI アシスタントを閉じる",
|
||||
"aiTitle": "ターミナル AI アシスタント (Pro)",
|
||||
"paneCount": "{{current}}/{{max}}",
|
||||
"labelLocal": "ローカルターミナル",
|
||||
"labelSsh": "SSH ターミナル",
|
||||
"closePaneLabel": "現在のペインを閉じる",
|
||||
"closeTabLabel": "現在のターミナルタブを閉じる",
|
||||
"targetSshSession": "現在の SSH セッション"
|
||||
},
|
||||
"overlay": {
|
||||
"shellClosedIdle": "アイドルタイムアウト · シェルが終了しました",
|
||||
"shellClosed": "シェルが終了しました",
|
||||
"shellClosedHint": "SSH 接続は維持 · 他のペイン、SFTP、トンネルには影響しません",
|
||||
"reopenShell": "シェルを再開",
|
||||
"reopening": "開いています…",
|
||||
"disconnected": "切断されました",
|
||||
"disconnectedHint": "SSH セッションが終了したか、ネットワークが切断されました。下のボタンで再接続できます。",
|
||||
"reconnect": "再接続",
|
||||
"suspended": "接続が一時停止",
|
||||
"suspendedHint": "しばらく操作がなかったため、リソース節約のため接続を一時停止しました",
|
||||
"resume": "接続を再開",
|
||||
"connectFailed": "接続失敗",
|
||||
"connectFailedHint": "ホスト、ポート、ユーザー名、認証を確認してください",
|
||||
"retryConnect": "接続を再試行",
|
||||
"connecting": "接続中…",
|
||||
"reconnecting": "自動再接続中{{attempt}}…",
|
||||
"reconnectingAttempt": " ({{count}})",
|
||||
"localShellExited": "ローカルシェルが終了しました"
|
||||
},
|
||||
"hostKey": {
|
||||
"titleNew": "ホスト鍵を確認",
|
||||
"titleChanged": "ホスト鍵が変更されました",
|
||||
"descNew": "このホストへの初回接続です。信頼する前にフィンガープリントを確認してください。",
|
||||
"descChanged": "このホストの SSH 鍵がローカルの記録と一致しません。MITM のリスクの可能性があります。",
|
||||
"host": "ホスト",
|
||||
"type": "タイプ",
|
||||
"fingerprint": "SHA256 フィンガープリント",
|
||||
"previousFingerprint": "以前のフィンガープリント",
|
||||
"reject": "拒否",
|
||||
"acceptOnce": "一度だけ信頼",
|
||||
"acceptAlways": "常に信頼",
|
||||
"acceptAlwaysChanged": "それでも信頼して更新"
|
||||
},
|
||||
"contextMenu": {
|
||||
"aria": "ターミナルの操作",
|
||||
"copy": "コピー",
|
||||
"paste": "貼り付け",
|
||||
"selectAll": "すべて選択",
|
||||
"clear": "画面をクリア",
|
||||
"splitRight": "右に分割",
|
||||
"splitDown": "下に分割",
|
||||
"maximizePane": "現在のペインを最大化",
|
||||
"restoreLayout": "分割レイアウトを復元"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "検索...",
|
||||
"previous": "前へ (Shift+Enter)",
|
||||
"next": "次へ (Enter)",
|
||||
"close": "閉じる (Escape)"
|
||||
},
|
||||
"zmodem": {
|
||||
"uploadTransferring": "rz アップロード: {{detail}}",
|
||||
"downloadTransferring": "sz ダウンロード: {{detail}}",
|
||||
"selectLocalFile": "ローカルファイルを選択",
|
||||
"pickUploadTitle": "アップロードするファイルを選択 (rz)",
|
||||
"uploadedCount": "{{count}} 個のファイルをアップロード",
|
||||
"downloadedSingle": "{{path}}",
|
||||
"downloadedCount": "{{count}} 個のファイルをダウンロード → {{dir}}",
|
||||
"transferDone": "転送完了",
|
||||
"transferFailed": "転送失敗 {{message}}",
|
||||
"uploadSuccessTerminal": "✓ {{count}} 個のファイルをリモートの作業ディレクトリにアップロード",
|
||||
"downloadSuccessTerminal": "✓ {{path}} をダウンロード",
|
||||
"savedDownloadsSingle": "✓ ダウンロードに保存",
|
||||
"savedDownloadsMultiple": "✓ {{count}} 個のファイルをダウンロードに保存",
|
||||
"nativeApiUnavailable": "ネイティブ API は利用できません",
|
||||
"readFailed": "読み取り失敗: {{name}}",
|
||||
"writeFailed": "書き込み失敗: {{name}}",
|
||||
"createLocalShellFailed": "ローカルシェルの作成に失敗",
|
||||
"createRemoteShellFailed": "リモートシェルの作成に失敗",
|
||||
"createShellFailed": "シェルの作成に失敗: {{error}}"
|
||||
},
|
||||
"clipboard": {
|
||||
"readFailed": "クリップボードの読み取りに失敗",
|
||||
"writeFailed": "クリップボードへの書き込みに失敗"
|
||||
},
|
||||
"input": {
|
||||
"failed": "ターミナル入力に失敗"
|
||||
},
|
||||
"connection": {
|
||||
"errorPrefix": "エラー: {{message}}",
|
||||
"autoReconnecting": "自動再接続中 ({{attempt}})...",
|
||||
"autoReconnectLimit": "自動再接続の上限に達しました ({{max}}){{reasonSuffix}}",
|
||||
"autoReconnectLimitReason": " — {{reason}}",
|
||||
"disconnectedRetry": "切断しました · {{seconds}} 秒後に {{attempt}}/{{max}} を再試行...",
|
||||
"autoReconnectBanner": "[自動再接続] {{seconds}} 秒後に {{attempt}}/{{max}} を再試行",
|
||||
"disconnectedBanner": "[切断] {{reason}}",
|
||||
"noConfig": "接続情報がありません"
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user