fix(i18n): 全局复查修复——多行调用点漏替换、动态 label 回归与死键清理

复查发现(audit 脚本 + 修正后的单测扫描器):
- 27 处多行 tf("中文") 调用点未被键迁移的单行替换覆盖,英文模式下
  回退显示中文;正则补丁全部换为语义键
- DirFilter/DetailFormat::label() 仍返回中文常量,t() 动态查键必然
  miss(英文模式方向过滤/格式按钮显示中文);label() 改返回
  common.all/dir.*、common.auto/text(Hex/Base64 语言中性字面量)
- 单测扫描器与 audit 脚本的共同盲区:t(/tf( 与引号之间的空白换行
  不被匹配;扫描器改为跳过空白后取字面量,多行调用纳入强制覆盖
- 6 处 UI 直写补翻:连接测试成功通知、复制连接"(copy)"后缀、
  rfd 导入/导出对话框标题、设置对话框标题、订阅标识符字段标签
- store 导入/导出错误与 PayloadFormat 编码错误(均经 Notification
  展示)key 化,共 14 条新词条
- 删除 10 个真死键;mqtt/tls/update 层诊断错误维持中文(技术诊断
  流,不进 UI 渲染路径),边界记录于模块文档

语言包现状:354 键、en/zh-CN 双语并排、零死键、零 UI 中文直写;
42 测试全绿;英文模式实机截图复核(含回归点)通过。
This commit is contained in:
2026-10-04 23:49:28 +08:00
parent 35e2b6fb60
commit 5db0972263
18 changed files with 101 additions and 90 deletions
+33 -30
View File
@@ -130,27 +130,18 @@ _version: 2
"common.new":
en: "New"
zh-CN: "新建"
"common.ok":
en: "OK"
zh-CN: "确定"
"common.pause":
en: "Pause"
zh-CN: "暂停"
"common.resume":
en: "Resume"
zh-CN: "恢复"
"common.retain":
en: "Retain"
zh-CN: "Retain"
"common.retry":
en: "Retry"
zh-CN: "重试"
"common.save":
en: "Save"
zh-CN: "保存"
"common.saved":
en: "Saved"
zh-CN: "已保存"
"common.send":
en: "Send"
zh-CN: "发送"
@@ -160,9 +151,6 @@ _version: 2
"common.update":
en: "Update"
zh-CN: "更新"
"connview.connecting":
en: "Connecting…"
zh-CN: "连接中…"
"connview.logs":
en: "Logs"
zh-CN: "日志"
@@ -247,9 +235,6 @@ _version: 2
"form.keep_alive":
en: "Keep Alive (s)"
zh-CN: "Keep Alive (秒)"
"form.keep_alive_invalid":
en: "Keep Alive must be an integer 0-65535"
zh-CN: "Keep Alive (秒) 需要是 0~65535 的整数"
"form.keep_alive_short":
en: "Keep Alive"
zh-CN: "Keep Alive"
@@ -400,9 +385,6 @@ _version: 2
"kv.add":
en: "Add property"
zh-CN: "添加属性"
"kv.remove":
en: "Remove this property"
zh-CN: "删除此属性"
"msg.binary_hint":
en: " (binary — switch to Hex in details)"
zh-CN: "(非文本,详情可切 Hex)"
@@ -490,18 +472,12 @@ _version: 2
"preset.empty":
en: "No presets yet — click \"New\" above to create one"
zh-CN: "暂无发布预设,点击上方「新建」创建"
"preset.list":
en: "Presets"
zh-CN: "预设列表"
"preset.manage_title":
en: "Manage Publish Presets"
zh-CN: "管理发布预设"
"preset.name_exists":
en: "Preset name \"{name}\" already exists"
zh-CN: "预设名称「{name}」已存在"
"preset.new":
en: "New Preset"
zh-CN: "新建预设"
"preset.payload_field":
en: "Payload (stored raw; variables rendered on send)"
zh-CN: "Payload(原文保存,发送时渲染变量)"
@@ -661,9 +637,6 @@ _version: 2
"resmon.threads_hint":
en: "tokio engine + GPUI renderer"
zh-CN: "tokio 引擎 + GPUI 渲染"
"resmon.title_hint":
en: "Self-process resource sampling"
zh-CN: "自身进程资源采样"
"resmon.uptime":
en: "Up {t}"
zh-CN: "运行 {t}"
@@ -727,9 +700,6 @@ _version: 2
"sidebar.collapse":
en: "Collapse sidebar (Ctrl+B)"
zh-CN: "收起侧栏(Ctrl+B)"
"sidebar.collapse_short":
en: "Collapse sidebar"
zh-CN: "收起侧栏"
"sidebar.connections":
en: "Connections"
zh-CN: "连接"
@@ -1033,3 +1003,36 @@ _version: 2
"will.topic_wildcard":
en: "Will topic cannot contain wildcards + or #"
zh-CN: "遗嘱主题不能包含通配符 + 或 #"
"io.err_item_id":
en: "Item {n}: id must not be empty"
zh-CN: "第 {n} 项的 id 不能为空"
"io.err_item_invalid":
en: "Item {n} is not a valid connection: {e}"
zh-CN: "第 {n} 项不是合法的连接配置: {e}"
"io.err_missing_field":
en: "JSON object lacks the \"connections\" array"
zh-CN: "JSON 对象中缺少 \"connections\" 数组字段"
"io.err_parse_json":
en: "Failed to parse JSON: {e}"
zh-CN: "解析 JSON 失败: {e}"
"io.err_read":
en: "Failed to read {p}: {e}"
zh-CN: "读取 {p} 失败: {e}"
"io.err_serialize":
en: "Failed to serialize connections: {e}"
zh-CN: "序列化连接失败: {e}"
"io.err_utf8":
en: "{p} is not valid UTF-8"
zh-CN: "{p} 不是有效的 UTF-8 文件"
"io.err_write":
en: "Failed to write {p}: {e}"
zh-CN: "写入 {p} 失败: {e}"
"sidebar.dup_suffix":
en: "{name} (copy)"
zh-CN: "{name} 副本"
"sub.identifier_field":
en: "Subscription Identifier"
zh-CN: "订阅标识符"
"io.err_parse_json_path":
en: "Failed to parse {p}"
zh-CN: "解析 {p} 失败"