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,174 @@
|
||||
{
|
||||
"nav": {
|
||||
"general": "工作区",
|
||||
"generalDesc": "布局与资源",
|
||||
"appearance": "外观",
|
||||
"appearanceDesc": "界面主题与语言",
|
||||
"terminal": "终端",
|
||||
"terminalDesc": "字体与主题色",
|
||||
"shortcuts": "快捷键",
|
||||
"shortcutsDesc": "键盘绑定",
|
||||
"ssh": "SSH",
|
||||
"sshDesc": "连接与连接池",
|
||||
"security": "安全",
|
||||
"securityDesc": "凭据与主机密钥",
|
||||
"ai": "大模型",
|
||||
"aiDesc": "AI Provider",
|
||||
"about": "关于",
|
||||
"aboutDesc": "版本与数据"
|
||||
},
|
||||
"title": "设置",
|
||||
"search": {
|
||||
"placeholder": "搜索设置..."
|
||||
},
|
||||
"language": {
|
||||
"label": "界面语言",
|
||||
"description": "切换后立即生效",
|
||||
"zhCN": "简体中文",
|
||||
"zhTW": "繁體中文",
|
||||
"en": "English",
|
||||
"ja": "日本語",
|
||||
"ko": "한국어",
|
||||
"vi": "Tiếng Việt",
|
||||
"ru": "Русский"
|
||||
},
|
||||
"general": {
|
||||
"layout": "工作区布局",
|
||||
"sidebarWidth": "侧栏宽度",
|
||||
"sidebarWidthDesc": "会话侧栏的默认宽度",
|
||||
"collapseSidebar": "折叠侧栏",
|
||||
"collapseSidebarDesc": "隐藏会话树以专心操作终端,可用 Ctrl/Cmd+B 切换"
|
||||
},
|
||||
"appearance": {
|
||||
"themeGroup": "界面主题",
|
||||
"theme": "主题",
|
||||
"themeDesc": "应用界面配色(与终端配色无关)",
|
||||
"dark": "深色",
|
||||
"light": "浅色",
|
||||
"system": "跟随系统"
|
||||
},
|
||||
"terminal": {
|
||||
"fontGroup": "字体与字号",
|
||||
"fontFamily": "字体",
|
||||
"fontFamilyDesc": "需 Nerd Font 才能正确显示 Zsh 提示符图标",
|
||||
"fontSize": "字号",
|
||||
"fontSizeDesc": "终端文字大小",
|
||||
"scrollback": "回滚缓冲",
|
||||
"scrollbackDesc": "每个终端保留的历史行数",
|
||||
"keywordHighlight": "关键词高亮",
|
||||
"keywordHighlightDesc": "突出显示错误、警告和成功状态",
|
||||
"colorTheme": "配色主题"
|
||||
},
|
||||
"shortcuts": {
|
||||
"resetAll": "重置全部为默认",
|
||||
"custom": "自定义",
|
||||
"pressKeys": "按下快捷键...",
|
||||
"resetDefault": "重置为默认",
|
||||
"conflict": "与「{{label}}」冲突",
|
||||
"setTo": "设置为 {{keys}}",
|
||||
"hint": "点击快捷键可重新绑定 · 按 Esc 取消录入",
|
||||
"category": {
|
||||
"tabs": "标签管理",
|
||||
"view": "视图",
|
||||
"session": "会话",
|
||||
"tools": "工具"
|
||||
},
|
||||
"actions": {
|
||||
"tabNext": "切换到下一个标签",
|
||||
"tabPrev": "切换到上一个标签",
|
||||
"tabGotoN": "跳转到第 N 个标签",
|
||||
"tabClose": "关闭当前标签",
|
||||
"tabNew": "新建标签",
|
||||
"viewFullscreen": "切换全屏",
|
||||
"viewToggleSidebar": "折叠/展开侧栏",
|
||||
"sessionNew": "新建会话",
|
||||
"sessionQuickConnect": "快速连接",
|
||||
"toolsCommandPalette": "命令面板"
|
||||
}
|
||||
},
|
||||
"ssh": {
|
||||
"connection": "连接",
|
||||
"keepAlive": "保持心跳",
|
||||
"keepAliveDesc": "空闲时发送心跳,减少断线",
|
||||
"autoReconnect": "自动重连",
|
||||
"autoReconnectDesc": "意外断开后自动尝试重连",
|
||||
"timeout": "连接超时",
|
||||
"timeoutDesc": "建立 SSH 连接的最长等待时间(秒)",
|
||||
"maxReconnect": "自动重连次数",
|
||||
"maxReconnectDesc": "意外断线后的最大尝试次数",
|
||||
"pool": "连接池",
|
||||
"maxConnections": "最大连接数",
|
||||
"maxConnectionsDesc": "SSH、SFTP 与批量连接共享此上限",
|
||||
"maxBackground": "后台连接上限",
|
||||
"maxBackgroundDesc": "超过上限时优先回收最久未使用的连接",
|
||||
"suspend": "后台挂起",
|
||||
"suspendDesc": "标签进入后台后多少分钟释放活跃通道"
|
||||
},
|
||||
"security": {
|
||||
"credentials": "凭据保护",
|
||||
"sessionPassword": "会话密码与密钥口令",
|
||||
"sessionPasswordDesc": "保存前由 Rust 使用 AES-256-GCM 加密,无法关闭",
|
||||
"enabled": "已启用",
|
||||
"masterKey": "本地主密钥",
|
||||
"masterKeyDesc": "仅当前系统用户可读取;路径 ~/.opsxshell/master.key(旧版 ~/.opsxshsell 会自动迁移)",
|
||||
"knownHosts": "已知主机",
|
||||
"knownHostsHint": "首次连接会确认主机指纹。重装/克隆导致密钥变更时,连接弹窗可选「仍要信任并更新」覆盖旧记录。此处可删除单条或清空全部。",
|
||||
"clearAll": "清空",
|
||||
"removeHost": "删除此主机记录",
|
||||
"empty": "暂无记录",
|
||||
"clearConfirm": "确定清空全部已知主机密钥?下次连接将重新确认。"
|
||||
},
|
||||
"about": {
|
||||
"tagline": "轻量原生的 SSH / SFTP 运维终端",
|
||||
"appVersion": "应用 v{{version}}",
|
||||
"copyVersion": "复制版本信息",
|
||||
"runtime": "运行环境",
|
||||
"system": "系统",
|
||||
"localData": "本地数据",
|
||||
"sessionsSettings": "会话与设置",
|
||||
"masterKeyPath": "加密主密钥",
|
||||
"privacyNote": "密码与密钥口令由 Rust 使用 AES-256-GCM 加密。OpsXShell 不保存终端命令历史。",
|
||||
"license": "MIT License · Rust · XTerm.js"
|
||||
},
|
||||
"ai": {
|
||||
"presets": "供应商预设",
|
||||
"add": "添加",
|
||||
"configured": "已配置",
|
||||
"configuredHint": "选择供应商后点添加",
|
||||
"emptyHint": "添加一个 Provider 开始",
|
||||
"noModel": "未选模型",
|
||||
"name": "名称",
|
||||
"model": "模型",
|
||||
"protocol": "协议",
|
||||
"auth": "认证",
|
||||
"authNone": "无",
|
||||
"test": "测试",
|
||||
"testing": "测试中",
|
||||
"testingMessage": "测试中...",
|
||||
"saved": "已保存",
|
||||
"retest": "请重新测试",
|
||||
"testFailed": "连接测试失败",
|
||||
"available": "可用 · {{latency}} ms",
|
||||
"savedKeepBlank": "已保存,留空沿用",
|
||||
"notRequired": "无需填写",
|
||||
"otherModels": "其他模型…",
|
||||
"customModel": "自定义模型",
|
||||
"backToList": "返回列表",
|
||||
"apiKeyOptional": "API Key(无需)",
|
||||
"advanced": "高级",
|
||||
"allowHttp": "允许 HTTP(本机/内网)",
|
||||
"setActive": "设为当前",
|
||||
"deleteTitle": "删除",
|
||||
"apiKeySaveFailed": "API Key 保存失败",
|
||||
"providerNotFound": "Provider 不存在",
|
||||
"modelCatalogReadFailed": "模型目录读取失败",
|
||||
"catalogUnavailable": "models.dev 暂不可用"
|
||||
},
|
||||
"family": {
|
||||
"openai_compatible": "OpenAI 兼容",
|
||||
"standalone": "────────",
|
||||
"plan": "Plan 计划",
|
||||
"local": "私有化本地",
|
||||
"custom": "Custom 自定义"
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user