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