密码错误、账户禁用、令牌过期或限流等永久性认证错误不再无限 重连,改为置 StateError 并通过 EvError 弹窗告知用户具体原因 (中英文本地化)。网络错误仍正常指数退避重试。 - protocol: 新增 AuthErrorCode 类型与消息映射 - transport: AuthError/ServerError 携带 Code 字段 - vpn: run() 循环识别致命认证错误并停止,新增 onError 回调 - ipc/daemon/ui: 打通错误码到 UI 的本地化展示
105 lines
3.3 KiB
TOML
105 lines
3.3 KiB
TOML
WindowTitle = "LMVPN"
|
||
|
||
StatusLabel = "状态"
|
||
ProfileLabel = "配置"
|
||
|
||
StateDisconnected = "已断开"
|
||
StateConnecting = "连接中..."
|
||
StateConnected = "已连接"
|
||
StateReconnecting = "重新连接中..."
|
||
StateError = "错误"
|
||
|
||
BtnConnect = "连接"
|
||
BtnDisconnect = "断开连接"
|
||
BtnAddProfile = "添加配置"
|
||
BtnEdit = "编辑"
|
||
BtnDelete = "删除"
|
||
BtnSave = "保存"
|
||
BtnCancel = "取消"
|
||
BtnOK = "确定"
|
||
|
||
IpLabel = "IP: {{.ip}}"
|
||
Ip6Label = "IPv6: {{.ip}}"
|
||
Ip6None = "IPv6: —"
|
||
IpNone = "IP: —"
|
||
UptimeLabel = "运行时长: {{.uptime}}"
|
||
UptimeNone = "运行时长: —"
|
||
RxV4Label = "IPv4 ↓ {{.bytes}} {{.speed}}"
|
||
TxV4Label = "↑ {{.bytes}} {{.speed}}"
|
||
RxV6Label = "IPv6 ↓ {{.bytes}} {{.speed}}"
|
||
TxV6Label = "↑ {{.bytes}} {{.speed}}"
|
||
RxTotalLabel = "合计 ↓ {{.bytes}} {{.speed}}"
|
||
TxTotalLabel = "↑ {{.bytes}} {{.speed}}"
|
||
RxV4Zero = "IPv4 ↓ 0 B 0 bps"
|
||
TxV4Zero = "↑ 0 B 0 bps"
|
||
RxV6Zero = "IPv6 ↓ 0 B 0 bps"
|
||
TxV6Zero = "↑ 0 B 0 bps"
|
||
RxTotalZero = "合计 ↓ 0 B 0 bps"
|
||
TxTotalZero = "↑ 0 B 0 bps"
|
||
|
||
DlgNoProfileTitle = "无配置"
|
||
DlgNoProfileEditMsg = "请选择要编辑的配置。"
|
||
DlgNoProfileConnectMsg = "请先选择或创建一个配置。"
|
||
DlgDeleteProfileTitle = "删除配置"
|
||
DlgDeleteProfileMsg = '删除配置"{{.name}}"及其存储的凭据?'
|
||
DlgProfileTitle = "配置"
|
||
DlgValidationTitle = "验证"
|
||
DlgValidationMsg = "名称、主机名和用户名为必填项。"
|
||
DlgDaemonError = "守护进程错误"
|
||
DlgCredentialError = "凭据错误"
|
||
DlgCredentialErrorMsg = "此配置未存储密码。请编辑配置以设置密码。"
|
||
DlgIPCError = "IPC 错误"
|
||
DlgVPNError = "VPN 错误"
|
||
DlgSaveError = "保存错误"
|
||
DlgKeychainError = "钥匙串错误"
|
||
DlgError = "错误"
|
||
DlgAuthError = "认证失败"
|
||
AuthErrWrongCredentials = "用户名或密码错误,请检查凭据。"
|
||
AuthErrUserDisabled = "用户不存在或已被禁用。"
|
||
AuthErrTokenInvalid = "认证令牌无效或已过期。"
|
||
AuthErrRateLimited = "认证尝试过于频繁,请稍后再试。"
|
||
AuthErrMalformed = "认证消息格式错误。"
|
||
|
||
BtnResetDB = "重置数据库"
|
||
DlgResetDBTitle = "重置数据库"
|
||
DlgResetDBMsg = "删除所有配置和连接记录?此操作无法撤销。"
|
||
|
||
BtnProfileList = "配置列表"
|
||
ProfileListTitle = "配置列表"
|
||
DlgNoListSelectTitle = "无选择"
|
||
DlgNoListSelectEditMsg = "请在列表中选择一个配置。"
|
||
DlgNoListSelectDeleteMsg = "请在列表中选择一个配置。"
|
||
|
||
TrayShowWindow = "显示窗口"
|
||
TrayConnect = "连接"
|
||
TrayDisconnect = "断开连接"
|
||
TrayLanguage = "语言"
|
||
TrayLanguageAuto = "自动"
|
||
TrayQuit = "退出"
|
||
|
||
FieldName = "名称"
|
||
FieldProtocol = "协议"
|
||
FieldHost = "主机名"
|
||
FieldServerIPs = "服务器 IP(CDN 优选)"
|
||
FieldPort = "端口"
|
||
FieldPath = "路径"
|
||
FieldUsername = "用户名"
|
||
FieldPassword = "密码"
|
||
FieldAuthMode = "认证方式"
|
||
FieldRoutingMode = "路由模式"
|
||
FieldCustomCIDRs = "自定义 CIDR(逗号分隔)"
|
||
FieldMTUOverride = "MTU 覆盖"
|
||
|
||
PlaceholderCIDRs = "10.0.0.0/8, 172.16.0.0/12"
|
||
PlaceholderMTU = "0 = 使用服务器 MTU"
|
||
PlaceholderPasswordUnchanged = "(未更改)"
|
||
PlaceholderServerIPs = "例: 1.2.3.4, 5.6.7.8"
|
||
|
||
AuthModeBoth = "全部(JWT + 密码)"
|
||
AuthModeJWT = "JWT"
|
||
AuthModePassword = "密码"
|
||
|
||
RoutingModeFull = "全隧道"
|
||
RoutingModeSplit = "分离隧道"
|
||
RoutingModeCustom = "自定义"
|