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
@@ -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 实机验收。
|
||||
Reference in new issue
Block a user