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

+28 -2
View File
@@ -6,6 +6,9 @@
// 认证方式
export type AuthType = 'password' | 'key' | 'agent'
/** Persisted session protocol. Missing/undefined means SSH (legacy rows). */
export type SessionProtocol = 'ssh' | 'rdp' | 'vnc'
// 代理类型
export type ProxyType = 'none' | 'http' | 'socks5'
@@ -65,9 +68,12 @@ export interface Session {
port: number
username: string
authType: AuthType
/** Defaults to ssh when omitted (legacy sessions). */
protocol?: SessionProtocol
password?: string // 加密存储
privateKey?: string // 私钥路径或内容
passphrase?: string // 私钥密码
/** 私钥路径或 PEM 正文;落盘时由 Rust 加密 */
privateKey?: string
passphrase?: string // 私钥密码(加密存储)
proxy?: ProxyConfig // 代理配置
/** 连接成功后自动执行的启动命令 */
startupCommand?: string
@@ -79,6 +85,20 @@ export interface Session {
jumpHost?: JumpHostConfig
/** 内联多跳板链 */
jumpHosts?: JumpHostConfig[]
/** RDP domain (optional). */
domain?: string
/** RDP security mode. */
security?: 'nla' | 'tls' | 'rdp' | 'auto'
/** Desktop resolution hint (RDP/VNC). */
width?: number
height?: number
/**
* Detected or manual remote OS / distro icon id
* (ubuntu, debian, windows, vnc, linux, …).
*/
distro?: string
/** Human-readable OS from PRETTY_NAME (e.g. Ubuntu 24.04.4 LTS). */
osPrettyName?: string
group?: string
tags?: string[]
createdAt?: number
@@ -92,6 +112,7 @@ export interface SessionCreateRequest {
port: number
username: string
authType: AuthType
protocol?: SessionProtocol
password?: string
privateKey?: string
passphrase?: string
@@ -101,6 +122,11 @@ export interface SessionCreateRequest {
jumpSessionIds?: string[]
jumpHost?: JumpHostConfig
jumpHosts?: JumpHostConfig[]
domain?: string
security?: 'nla' | 'tls' | 'rdp' | 'auto'
width?: number
height?: number
distro?: string
group?: string
tags?: string[]
}