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:
Logan.Li committed 2026-08-12 00:07:48 +08:00
1 parent fea6d8db04
commit b0d0e3a5f3
301 files changed
+28002 -2705

No files matched your search

+19 -7
View File
@@ -28,6 +28,9 @@ npm run acceptance:full
- SSH 连接关闭后的状态回收
- HTTP CONNECT、SOCKS5 和断点复制
- 转发规则不持久化运行状态,复制产生新 ID;原生隧道可启动、查询、停止并在 SSH 断开时清理
- 状态栏「转发」抽屉启停动态 `127.0.0.1:1080`,右键复制 SOCKS 地址;每台 SSH 主机仅一条动态规则
- i18n:zh-CN / en 的 namespace key 对齐(`test/i18n/localeKeys.test.ts`)
- RDP / VNC 仅原生可用;非 Tauri 环境不得显示为可连接;桌面会话不参与批量命令
- SFTP 本地/远程路径参数方向、原生路径上传、选中文件下载、双栏双向拖拽、目录落点、远程文本读写和错误反馈
- 终端分屏、剪贴板、快捷键、分片 UTF-8 解码、高输出背压和异步输入错误
- `ssh://` 安全解析、冷启动队列、IPv6 格式和快速连接预填充
@@ -96,12 +99,21 @@ cargo test --manifest-path src-tauri/Cargo.toml \
Rust 单元测试会用随机本地端口验证动态监听器的唯一 ID、运行查询、重复启动拒绝和真实停止。实机验收还必须包含:
1. 在保存会话上一键启动 `127.0.0.1:1080`,用 `curl --proxy socks5h://127.0.0.1:1080 https://example.com` 验证。
2. 确认连接数和流量会变化,复制出的代理地址正确。
3. 停止后确认端口无法再连接,不能只检查 UI 颜色。
4. 重启应用后规则仍在,但状态必须为未运行。
5. 断开 SSH 主连接后,关联的本地、远程和 SOCKS5 监听器全部清理。
6. 复制规则后确认新规则 ID 独立且状态为未运行;编辑运行中的规则必须先停止原 Listener。
1. 在状态栏打开「转发」抽屉,启动 `127.0.0.1:1080`,用 `curl --proxy socks5h://127.0.0.1:1080 https://example.com` 验证(出口 IP 应为当前 SSH 服务器)。
2. 右键状态栏「转发」复制 `socks5://127.0.0.1:1080`,确认剪贴板正确。
3. 确认连接数和流量会变化(若界面展示统计)。
4. 停止后确认端口无法再连接,不能只检查 UI 颜色。
5. 重启应用后规则仍在,但状态必须为未运行。
6. 断开 SSH 主连接后,关联的本地、远程和 SOCKS5 监听器全部清理。
7. 复制规则后确认新规则 ID 独立且状态为未运行;编辑运行中的规则必须先停止原 Listener。
8. 同一 SSH 主机不得出现第二条动态规则。
## 远程桌面验收
1. 非 Tauri / 浏览器预览中,RDP / VNC 不得表现为可连接。
2. 原生应用中分别建立 RDP、VNC 会话,确认画面、键盘鼠标与断开清理。
3. RDP:验证剪贴板同步与共享盘放入/打开本机下载目录。
4. 批量命令入口不得包含桌面会话。
## ssh:// 验收
@@ -116,4 +128,4 @@ open -a OpsXShell 'ssh://root@opsbase.cn:55555'
## 发版验收
候选发布必须在目标系统完成:安装、首次启动、窗口操作、SSH、SFTP、代理、跳板、串口枚举、休眠恢复、卸载及重新安装。CI 构建成功不能替代 Windows 或 macOS 实机验收。
候选发布必须在目标系统完成:安装、首次启动、窗口操作、SSH、SFTP、代理、跳板、端口转发、RDP/VNC、串口枚举、休眠恢复、卸载及重新安装。CI 构建成功不能替代 Windows 或 macOS 实机验收。