Files
agame/docs/limboai-stable/.workbuddy/memory/2026-10-15.md
T
2026-10-15 16:30:44 +08:00

19 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-10-15
## LimboAI 文档汉化(index.html → index.zh.html)
- 目标:把 readthedocs 离线包(单页 Sphinx 文档,`index.html`,588KB,2190 个可翻译块)汉化为中文。
- 方案:块级抽取 + 占位符标记 + 批量人工翻译 + 回填重建。
- `_i18n/serialize.py`:把每个块(p/h1-h6/td/th/dt/dd/li)序列化为紧凑模板:
`<n/>`=不译的内联元素(code/img/abbr 等原样保留),`<lN>...</l>`=链接,`<b>`/`<i>`=加粗/斜体,其余内联标签透明化。
- `_i18n/make_batches.py`:按首次出现顺序去重并分配稳定 uid,切成 `batches/batchNN.txt`(11 批,1451 条唯一模板)。
- `_i18n/trans/batchNN.json`:uid → 中文模板(全部 11 批已完成)。
- `_i18n/build.py`:回填重建 + 校验(标记一致性、结构对比)、页脚/面包屑/abbr title/代码注释润色、侧栏汉化徽标。
- 关键实现坑(后续复用注意):
1. 片段回填必须用 `html.parser`,`lxml` 会把裸文本包成 `<p>` 破坏结构。
2. `<td>` 内含 `<p>` 的“容器块”要跳过重建,否则会拍平丢失内层 `<p>`(280 个,已用容器检测处理)。
3. 标题里的 `a.headerlink` 需在 clear() 前取出再回填,否则丢失 303 个标题锚点。
4. 校验只强制 `<n/>`、`<lN>`、`</l>` 必须一致,`<b>/<i>` 允许额外配对。
- 结果:`index.zh.html`(580KB),结构计数与原文件一致(section/p/li/a/code/pre/table/td 全部对齐),无英文残留(仅类名/方法名等标识符保留英文),45 处代码注释已译。
- 术语约定:Behavior Tree→行为树、State Machine→状态机、Blackboard→黑板(类名保留)、Inherits:→继承:、Inherited By:→被继承:、Properties→属性、Method Descriptions→方法说明;所有 API/类名/节点名/文件名保留英文。