Skip to content

feat(i18n): 英文界面补全到 530 条,README 换英文界面截图与英文示意图 - #46

Merged
hotlong merged 1 commit into
mainfrom
claude/metadata-project-solution-m1k2oo
Sep 7, 2026
Merged

feat(i18n): 英文界面补全到 530 条,README 换英文界面截图与英文示意图#46
hotlong merged 1 commit into
mainfrom
claude/metadata-project-solution-m1k2oo

Conversation

@hotlong

@hotlong hotlong commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

背景

原来的 en 包是个骨架:7 个对象 32 条 label,而 zh-CN 是 21 个对象 320 条 —— 覆盖率约一成。切到英文得到的是中英混杂界面,对一个刚开源的项目等于没有英文版。

补全 en 包:32 → 530 条

  • os i18n extract --locales=zh-CN,en --fill=default 生成 en 骨架(叶子先填中文源串),再逐条人工翻译:447 处替换、317 条唯一串,零残留;
  • 覆盖:对象 / 字段 / 选项值 / 对象描述 / 列表视图 / 记录动作 / 应用导航 / 看板与组件标题 / 页面标题;
  • 中文同形异义处在英文里拆开,避免按钮撞名:
中文 英文 为什么拆
否决 / 驳回 Decline / Reject 前者用于加减分与调整审批,后者是流程退回
采纳 / 不采纳 Uphold / Dismiss 争议处理结论
启用 / 启用中 Active / Active Only 前者是状态值,后者是视图名

术语与 README、解决方案汇报稿对齐(assessment / entry sheet / indicator assignment / check task / executive leader …)。

i18n:extracti18n:extract:check 都带上 en,pnpm verify 现在守两个包的新鲜度。

⚠️ merge 只补空缺。 改了中文 label 之后,已有译文的英文叶子会原样留下并悄悄过期,工具不会提醒。这条写进了 README 与 src/translations/index.ts 的注释。

README

  • 首页截图换成真实英文界面 —— 填报单队列页,导航 / 视图页签 / 列头 / 状态值全英文。配了一句说明:记录名仍是中文是因为演示数据是中文,不是界面没译。
  • 两张英文示意图:角色动线泳道图、状态机与闸门。源稿 docs/readme/diagrams.en.html 一并入库可重新导出;状态机图替掉了原来那段 ASCII 流程。
  • Internationalization 一节改为逐项列出未覆盖面与原因,分清「没译」与「译不到」:
未覆盖 原因
数据集字段标签(看板数字下的小注) 平台提取器范围之外
看板筛选器标签与选项 同上
工作台页面正文与区块标题 页面组件属性不被提取,只提取 label/title/subtitle
hook 抛出的三段式报错 代码里的字符串,不是元数据
演示数据(组织单元、指标名、单位) 是数据,不是文案

前三项是平台提取器的能力边界,不是漏译。

验证

  • pnpm verify 通过:validate + typecheck + 139 tests + 两个包的 i18n 同步检查;
  • e2e-flow.mjs 对本次实例 74/74 通过,README 截图取自跑完整流程后的真实数据(30 张填报单、108 条明细、10 条结果),不是空表。

待议

演示数据仍是中文,英文 README 里的截图因此中英混排。彻底解决要加一套英文演示种子档案(与现有两套并列),那是独立的一笔活,没有混进本 PR。

🤖 Generated with Claude Code

https://claude.ai/code/session_01QhMsYoDpoMGeQLf24eTawP


Generated by Claude Code

原来的 en 包是个骨架:7 个对象 32 条 label,zh-CN 是 21 个对象 320 条,
覆盖率约一成。切到英文是中英混杂,对一个开源项目来说等于没有英文版。

本次把 en 包补到与 zh-CN 同等的 530 条键:

- `os i18n extract --locales=zh-CN,en --fill=default` 生成 en 骨架(叶子先
  填中文源串),再逐条人工翻译 447 处、317 条唯一串,零残留;
- 覆盖对象 / 字段 / 选项值 / 对象描述 / 列表视图 / 记录动作 / 应用导航 /
  看板与组件标题 / 页面标题;
- 中文里同形异义的地方在英文里拆开,避免按钮撞名:
  否决 Decline 与驳回 Reject、采纳 Uphold 与不采纳 Dismiss、
  启用 Active(状态值)与启用中 Active Only(视图名);
- 术语与 README、解决方案汇报稿对齐(assessment / entry sheet /
  indicator assignment / check task / executive leader …)。

i18n:extract 与 :check 两个脚本都带上 en,verify 现在守两个包的新鲜度。
注意 merge 只补空缺:改了中文 label 之后,已有译文的英文叶子会原样留下并
悄悄过期,工具不提醒 —— 这条写进了 README 与 translations/index.ts 的注释。

README:
- 首页截图换成真实英文界面(填报单队列页,导航 / 视图页签 / 列头 / 状态值
  全英文),配一句说明记录名仍是中文是因为演示数据是中文,不是界面没译;
- 新增两张英文示意图(角色动线泳道图、状态机与闸门),源稿 diagrams.en.html
  一并入库,可重新导出;状态机图替掉了原来那段 ASCII 流程;
- Internationalization 一节改为逐项列出未覆盖面与原因:数据集字段标签、
  看板筛选器、页面组件正文属于平台提取器够不到的范围,hook 报错是代码里的
  字符串,演示数据是数据 —— 分清「没译」与「译不到」。

验证:pnpm verify 通过(validate + typecheck + 139 tests + 两个包的 i18n
同步检查);e2e-flow 对本次实例 74/74 通过,截图取自跑完全流程后的真实数据。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QhMsYoDpoMGeQLf24eTawP
@hotlong
hotlong marked this pull request as ready for review September 7, 2026 10:39
@hotlong
hotlong merged commit 6029352 into main Sep 7, 2026
1 check passed
@hotlong
hotlong deleted the claude/metadata-project-solution-m1k2oo branch September 7, 2026 10:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants