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,161 @@
|
||||
{
|
||||
"code": {
|
||||
"1000": "連線失敗,請檢查網路或主機位址",
|
||||
"1001": "連線逾時,請檢查網路或稍後重試",
|
||||
"1002": "認證失敗,請檢查使用者名稱和密碼",
|
||||
"1003": "主機不可達,請檢查網路設定",
|
||||
"1004": "連線已關閉",
|
||||
"1100": "終端機建立失敗",
|
||||
"1101": "命令執行失敗",
|
||||
"1102": "埠轉發設定失敗",
|
||||
"1200": "SFTP 連線失敗",
|
||||
"1201": "檔案不存在",
|
||||
"1202": "權限不足,無法存取該檔案或目錄",
|
||||
"1203": "檔案傳輸失敗",
|
||||
"1204": "無法讀取目錄內容",
|
||||
"1300": "連線不存在",
|
||||
"1301": "儲存連線失敗",
|
||||
"1302": "載入連線失敗",
|
||||
"1400": "主機位址格式不正確",
|
||||
"1401": "連接埠必須在 1-65535 之間",
|
||||
"1402": "憑證格式不正確",
|
||||
"9000": "發生未知錯誤",
|
||||
"9001": "內部通訊錯誤",
|
||||
"9002": "檔案系統錯誤",
|
||||
"9003": "網路錯誤"
|
||||
},
|
||||
"action": {
|
||||
"retry": "重試",
|
||||
"reconnect": "重新連線",
|
||||
"ignore": "忽略",
|
||||
"exit": "結束",
|
||||
"none": "無"
|
||||
},
|
||||
"connection": {
|
||||
"failed": "連線失敗,請檢查網路或主機位址",
|
||||
"timeout": "連線逾時,請檢查網路或稍後重試",
|
||||
"authFailed": "認證失敗,請檢查使用者名稱和密碼",
|
||||
"hostUnreachable": "主機不可達,請檢查網路設定",
|
||||
"closed": "連線已關閉",
|
||||
"dnsFailed": "無法解析主機",
|
||||
"refused": "連線被拒絕",
|
||||
"disconnected": "連線已中斷"
|
||||
},
|
||||
"auth": {
|
||||
"failed": "認證失敗,請檢查使用者名稱和密碼",
|
||||
"invalidCredentials": "憑證格式不正確",
|
||||
"keyLoadFailed": "無法載入私鑰",
|
||||
"passphraseRequired": "私鑰需要口令",
|
||||
"passphraseWrong": "私鑰口令不正確"
|
||||
},
|
||||
"shell": {
|
||||
"createFailed": "終端機建立失敗",
|
||||
"execFailed": "命令執行失敗",
|
||||
"localCreateFailed": "建立本機 Shell 失敗",
|
||||
"remoteCreateFailed": "建立遠端 Shell 失敗"
|
||||
},
|
||||
"proxy": {
|
||||
"connectFailed": "代理連線失敗",
|
||||
"authFailed": "代理認證失敗",
|
||||
"tunnelFailed": "代理通道建立失敗",
|
||||
"unsupported": "不支援的代理類型",
|
||||
"jumpFailed": "跳板機連線失敗",
|
||||
"hostRequired": "代理 host 不能為空",
|
||||
"hostNoSpaces": "代理 host 不能包含空格",
|
||||
"portRequired": "代理 port 必須大於 0",
|
||||
"portTooHigh": "代理 port 不能超過 65535"
|
||||
},
|
||||
"forward": {
|
||||
"failed": "埠轉發設定失敗",
|
||||
"bindFailed": "連接埠綁定失敗",
|
||||
"alreadyInUse": "連接埠已被佔用"
|
||||
},
|
||||
"sftp": {
|
||||
"connectFailed": "SFTP 連線失敗",
|
||||
"fileNotFound": "檔案不存在",
|
||||
"permissionDenied": "權限不足,無法存取該檔案或目錄",
|
||||
"transferFailed": "檔案傳輸失敗",
|
||||
"listFailed": "無法讀取目錄內容",
|
||||
"readFailed": "讀取失敗",
|
||||
"writeFailed": "儲存失敗",
|
||||
"renameFailed": "重新命名失敗",
|
||||
"chmodFailed": "權限修改失敗",
|
||||
"apiUnavailable": "SFTP API 無法使用"
|
||||
},
|
||||
"session": {
|
||||
"notFound": "連線不存在",
|
||||
"saveFailed": "儲存連線失敗",
|
||||
"loadFailed": "載入連線失敗",
|
||||
"readConfigFailed": "無法讀取連線設定",
|
||||
"exportWriteFailed": "寫入匯出檔案失敗",
|
||||
"exportFailed": "匯出連線失敗",
|
||||
"importReadFailed": "讀取檔案失敗",
|
||||
"importFailed": "匯入連線失敗",
|
||||
"importEmpty": "未找到可匯入的連線"
|
||||
},
|
||||
"validation": {
|
||||
"invalidHost": "主機位址格式不正確",
|
||||
"invalidPort": "連接埠必須在 1-65535 之間",
|
||||
"invalidCredentials": "憑證格式不正確",
|
||||
"hostRequired": "請輸入主機位址",
|
||||
"usernameRequired": "請輸入使用者名稱",
|
||||
"targetRequired": "請輸入主機,例如 root@192.168.1.10 或 opsbase.cn:5555",
|
||||
"serialPathRequired": "請輸入序列埠裝置路徑",
|
||||
"taskRequired": "請輸入任務或追問"
|
||||
},
|
||||
"filesystem": {
|
||||
"error": "檔案系統錯誤",
|
||||
"readFailed": "讀取檔案失敗",
|
||||
"writeFailed": "寫入檔案失敗"
|
||||
},
|
||||
"clipboard": {
|
||||
"readFailed": "讀取剪貼簿失敗",
|
||||
"writeFailed": "寫入剪貼簿失敗",
|
||||
"copyPathFailed": "複製路徑失敗",
|
||||
"unsupportedRead": "目前環境不支援讀取剪貼簿",
|
||||
"unsupportedWrite": "目前環境不支援寫入剪貼簿"
|
||||
},
|
||||
"ipc": {
|
||||
"error": "內部通訊錯誤",
|
||||
"nativeApiUnavailable": "原生 API 無法使用"
|
||||
},
|
||||
"network": {
|
||||
"error": "網路錯誤"
|
||||
},
|
||||
"pool": {
|
||||
"limitReached": "連線數達到上限 ({{max}}),請先關閉一些連線"
|
||||
},
|
||||
"desktop": {
|
||||
"connectFailed": "連線失敗",
|
||||
"fileTooLarge": "單檔上限 50MB",
|
||||
"nativeOnly": "遠端連線僅在 OpsXShell Tauri 原生應用中可用",
|
||||
"rdpNativeOnly": "RDP 僅在 OpsXShell Tauri 原生應用中可用",
|
||||
"vncNativeOnly": "VNC 僅在 OpsXShell Tauri 原生應用中可用"
|
||||
},
|
||||
"serial": {
|
||||
"openFailed": "開啟序列埠失敗",
|
||||
"writeFailed": "序列埠寫入失敗",
|
||||
"nativeOnly": "序列埠僅在 Tauri 原生應用中可用"
|
||||
},
|
||||
"ai": {
|
||||
"noProvider": "請先在設定 → 大模型設定 Provider",
|
||||
"noApiKey": "「{{provider}}」尚未儲存 API Key",
|
||||
"modelEmpty": "模型未傳回內容",
|
||||
"protocolFailed": "模型連續兩次未遵循協定,已停止",
|
||||
"noConclusion": "模型未傳回可用結論",
|
||||
"multipleCommands": "模型一次傳回了多個命令,已拒絕執行",
|
||||
"invalidCommand": "模型未傳回唯一的單行命令,已拒絕執行",
|
||||
"repeatLoop": "偵測到重複命令迴圈,已停止:{{command}}",
|
||||
"criticalBlocked": "命令命中破壞性操作硬紅線,不提供確認放行:{{command}}",
|
||||
"execFailed": "ssh-exec 失敗:{{error}}",
|
||||
"maxSteps": "已達 {{max}} 步上限,請縮小範圍後重試",
|
||||
"sshRequired": "需要已連線的遠端 SSH"
|
||||
},
|
||||
"zmodem": {
|
||||
"readFailed": "讀取失敗: {{name}}",
|
||||
"writeFailed": "寫入失敗: {{name}}"
|
||||
},
|
||||
"unknown": {
|
||||
"error": "發生未知錯誤"
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user