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,87 @@
|
||||
{
|
||||
"panel": {
|
||||
"title": "Agent CLI",
|
||||
"modelConfigured": "{{provider}} · {{model}}",
|
||||
"modelNotConfigured": "モデルが未設定です",
|
||||
"sshReady": "SSH · {{target}}",
|
||||
"sshNotConnected": "リモート SSH に接続されていません",
|
||||
"defaultTarget": "現在の SSH セッション",
|
||||
"emptyHint": "運用タスクを記述して送信してください。同じスレッドで続行するか、+ をタップして新しいトピックを作成できます。",
|
||||
"newTopic": "新しいトピック",
|
||||
"close": "閉じる",
|
||||
"thinking": "考え中…",
|
||||
"conclusion": "結論",
|
||||
"copy": "コピー",
|
||||
"copied": "コピーしました",
|
||||
"stop": "停止",
|
||||
"send": "送信",
|
||||
"placeholder": "タスクまたはフォローアップ… (Enter で送信 · Shift+Enter で改行)",
|
||||
"hintFollowUp": "フォローアップにはこのスレッドのコンテキストが含まれます",
|
||||
"hintSelection": "選択した {{lines}} 行を含めます",
|
||||
"hintSteps": "最大 {{max}} ステップ · 何も保存しません",
|
||||
"footerNote": "高リスクは確認が必要 · クリティカルはブロック · セッションは保存されません"
|
||||
},
|
||||
"safety": {
|
||||
"aria": "エージェントの安全モード",
|
||||
"strict": {
|
||||
"label": "厳格",
|
||||
"short": "中リスク以上を確認",
|
||||
"description": "ファイル変更、権限編集、より高リスクなコマンドは確認が必要です。本番環境や不慣れなホストに最適です。"
|
||||
},
|
||||
"relaxed": {
|
||||
"label": "緩和",
|
||||
"short": "高リスクのみ確認",
|
||||
"description": "読み取り専用や日常の編集は自動実行 · 削除、再起動、インストール等は確認が必要です。"
|
||||
}
|
||||
},
|
||||
"risk": {
|
||||
"safe": "安全",
|
||||
"low": "低リスク",
|
||||
"medium": "中リスク",
|
||||
"high": "高リスク",
|
||||
"critical": "ブロック"
|
||||
},
|
||||
"step": {
|
||||
"round": "ステップ {{round}}",
|
||||
"awaiting": "承認待ち",
|
||||
"running": "実行中",
|
||||
"done": "完了",
|
||||
"confirmTitle": "ステップ {{round}} · {{risk}}",
|
||||
"confirmMessage": "SSH · {{target}}\n{{mode}}\n\n$ {{command}}",
|
||||
"rejected": "ステップ {{round}} のコマンドは拒否されました。",
|
||||
"terminated": "終了しました",
|
||||
"stoppedMessage": "停止しました。実行中のリモートコマンドに中断要求を送信しました。"
|
||||
},
|
||||
"confirm": {
|
||||
"reject": "拒否",
|
||||
"once": "1 回のみ",
|
||||
"always": "常に",
|
||||
"hint": "Enter · 1 回のみ Esc · 拒否 常に · このセッションで同種の確認をスキップ"
|
||||
},
|
||||
"error": {
|
||||
"noProvider": "先に「設定 → AI」で AI プロバイダーを設定してください",
|
||||
"noApiKey": "「{{provider}}」に保存された API キーはありません",
|
||||
"emptyTask": "タスクまたはフォローアップを入力してください",
|
||||
"sshRequired": "接続済みのリモート SSH セッションが必要です",
|
||||
"modelEmpty": "モデルがコンテンツを返しませんでした",
|
||||
"protocolFailed": "モデルがツールプロトコルに 2 回失敗しました · 停止",
|
||||
"noConclusion": "モデルが利用可能な結論を返しませんでした",
|
||||
"multipleCommands": "モデルが複数のコマンドを返しました · 実行を拒否",
|
||||
"invalidCommand": "モデルが単一行のコマンドを返しませんでした · 実行を拒否",
|
||||
"repeatLoop": "繰り返しのコマンドループを検出 · 停止: {{command}}",
|
||||
"criticalBlocked": "コマンドが破壊的なハードブロックに該当 · 上書き不可: {{command}}",
|
||||
"execFailed": "ssh-exec 失敗: {{error}}",
|
||||
"execUnknown": "不明なエラー",
|
||||
"execNoOutput": "コマンドは出力なしで完了",
|
||||
"maxSteps": "{{max}} ステップの上限に達しました · 範囲を絞って再試行してください"
|
||||
},
|
||||
"output": {
|
||||
"empty": "(出力なし)",
|
||||
"truncatedMiddle": "... [{{count}} 行省略] ...",
|
||||
"totalLines": "合計行数: {{count}}{{truncatedSuffix}}",
|
||||
"truncatedSuffix": " (先頭/末尾を保持)",
|
||||
"errorLines": "エラー/警告の可能性がある行 ({{count}}):\n{{lines}}",
|
||||
"noErrorKeywords": "明らかなエラーキーワードは見つかりませんでした",
|
||||
"snippetLabel": "出力スニペット:\n{{snippet}}"
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user