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

+11 -2
View File
@@ -4,7 +4,7 @@ version = "2.1.1"
description = "OpsXShell native remote operations runtime"
authors = ["OpsXShell Team"]
edition = "2021"
rust-version = "1.77"
rust-version = "1.89"
[lib]
name = "opsxshell_lib"
@@ -17,6 +17,7 @@ tauri-build = { version = "2.4", features = [] }
anyhow = "1.0"
aes-gcm = "0.10"
base64 = "0.22"
image = { version = "0.25", default-features = false, features = ["jpeg"] }
dirs = "6.0"
open = "5.3"
rfd = "0.15"
@@ -34,12 +35,20 @@ tauri = { version = "2.8", features = [] }
tauri-plugin-deep-link = "2"
tauri-plugin-single-instance = "2"
thiserror = "2.0"
tokio = { version = "1.43", features = ["rt-multi-thread", "sync", "time"] }
tokio = { version = "1.43", features = ["rt-multi-thread", "sync", "time", "net", "macros"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
uuid = { version = "1.11", features = ["v4"] }
arboard = { version = "3.6.1", default-features = false }
url = "2.5"
# Remote desktop protocol engines (IronRDP / RFB)
ironrdp = { version = "0.17", default-features = false, features = ["connector", "session", "graphics", "input", "pdu", "core", "svc", "cliprdr", "rdpdr", "rdpsnd"] }
ironrdp-blocking = "0.10"
sspi = { version = "0.21", features = ["network_client"] }
rustls = { version = "0.23", default-features = false, features = ["std", "tls12", "aws-lc-rs"] }
tokio-rustls = "0.26"
x509-cert = { version = "0.2", default-features = false, features = ["std"] }
vnc-rs = "0.5"
[profile.release]
codegen-units = 1