路由性能优化: - 修复 macOS route 命令语法错误(去掉 -net 参数) - 路由应用拆分为 Essential(ready前,4-6条命令<1s)+ Deferred(ready后,批量脚本) - 新增 CIDR 聚合算法(cidrmerge.go),合并相邻 CIDR 块减少路由数量(10826->7500) - 批量脚本执行:3平台各实现8个批量函数,临时脚本单次执行替代逐条进程创建 - 并行批量:拆为4个子shell并行执行,总时间降为1/4 连接步骤显示: - stats 新增 connectStep + cidrError 原子变量 - 连接生命周期中设置步骤(fetch_cidrs/connecting/load_routes),UI 实时显示 - after-proxy CIDR 获取期间显示加载状态,获取失败显示错误提示 CIDR 刷新按钮: - ipc 新增 CmdRefreshCIDR 命令 - daemon 处理刷新请求,session.RefreshCIDRs() 重新获取+添加路由 - UI 状态卡新增刷新按钮,proxy/bypass 模式已连接时显示 README: - 补充 URL 获取时机注意事项(bypass模式after-proxy可能失败) - 补充 CIDR 聚合与批量执行说明
144 lines
4.6 KiB
TOML
144 lines
4.6 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"
|
||
|
||
StatusRoutingMode = "路由模式: {{.mode}}"
|
||
CIDRHit = "命中"
|
||
CIDRConfigured = "已配置"
|
||
CIDRUnmatched = "未命中"
|
||
CIDRDestinations = "目的地址"
|
||
RouteLoading = "加载路由中"
|
||
CIDRLoading = "加载中"
|
||
StepFetchCIDRs = "获取CIDR列表"
|
||
StepConnecting = "建立连接"
|
||
StepLoadRoutes = "加载路由"
|
||
|
||
BtnRefreshCIDR = "刷新 CIDR"
|
||
CIDRFetchError = "获取失败"
|
||
|
||
DlgNoProfileTitle = "无配置"
|
||
DlgNoProfileEditMsg = "请选择要编辑的配置。"
|
||
DlgNoProfileConnectMsg = "请先选择或创建一个配置。"
|
||
DlgDeleteProfileTitle = "删除配置"
|
||
DlgDeleteProfileMsg = '删除配置"{{.name}}"及其存储的凭据?'
|
||
DlgProfileTitle = "配置"
|
||
DlgValidationTitle = "验证"
|
||
DlgValidationMsg = "名称、主机名和用户名为必填项。"
|
||
DlgInvalidIPMsg = "以下 IP 地址格式无效:{{.ips}}"
|
||
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 = "路由模式"
|
||
FieldCIDRV4 = "IPv4 CIDR(逗号分隔)"
|
||
FieldCIDRV6 = "IPv6 CIDR(逗号分隔)"
|
||
FieldCIDRV4URLs = "IPv4 CIDR URL 来源"
|
||
FieldCIDRV6URLs = "IPv6 CIDR URL 来源"
|
||
FieldMTUOverride = "MTU 覆盖"
|
||
|
||
PlaceholderCIDRV4 = "10.0.0.0/8, 172.16.0.0/12"
|
||
PlaceholderCIDRV6 = "fd00::/8, 2001:db8::/32"
|
||
PlaceholderCIDRURL = "https://example.com/cidrs.txt"
|
||
PlaceholderMTU = "0 = 使用服务器 MTU"
|
||
PlaceholderPasswordUnchanged = "(未更改)"
|
||
PlaceholderServerIPs = "支持 IPv4/IPv6,例: 1.2.3.4, 5.6.7.8"
|
||
|
||
AuthModeBoth = "全部(JWT + 密码)"
|
||
AuthModeJWT = "JWT"
|
||
AuthModePassword = "密码"
|
||
|
||
RoutingModeFull = "全隧道"
|
||
RoutingModeProxy = "代理 CIDR"
|
||
RoutingModeBypass = "绕过 CIDR"
|
||
|
||
FetchTimingBefore = "代理前获取"
|
||
FetchTimingAfter = "代理后获取"
|
||
|
||
BtnAddURL = "添加 URL"
|
||
BtnRemoveURL = "删除"
|
||
|
||
FieldTLS = "TLS 证书"
|
||
FieldTLSCACert = "CA 证书 (PEM)"
|
||
FieldTLSCAPath = "CA 证书路径"
|
||
HintTLSCAReplacesSystem = "设置自定义 CA 将替换系统根证书,使用公共 CA(如 Let's Encrypt)的服务器将验证失败。"
|
||
FieldTLSInsecure = "跳过验证 (不安全)"
|
||
FieldTLSPinnedHash = "证书固定 (SHA-256)"
|
||
PlaceholderTLSCACert = "-----BEGIN CERTIFICATE-----..."
|
||
PlaceholderTLSCAPath = "/path/to/ca.crt"
|
||
PlaceholderTLSPinnedHash = "sha256:a1b2c3..."
|
||
BtnBrowse = "浏览..."
|
||
DlgTLSError = "TLS 证书错误"
|
||
TLSErrorVerification = "服务器证书验证失败。"
|