背景:翻译项目需要面对 upstream 变化
A Tour of Go 的课程内容来源于官方仓库:
golang/website早期流程比较简单:
官方源码
↓
翻译
↓
验证
↓
发布这种方式适合首次翻译,但不适合长期维护。
当 upstream 内容发生变化时,需要回答几个问题:
- 哪些课程页面发生变化?
- 已有译文是否仍然有效?
- 是否需要重新翻译?
- 哪些页面可以继续复用?
因此,本次为 go-tour-i18n 增加 upstream revision 同步机制。
记录官方源码基线
项目现在会记录对应的 upstream commit:
upstream_commit
upstream_commit_timerelease manifest 中包含:
{
"upstream_commit": "645042eb697eaf69e33a9af00c6b5b3fffdead5a",
"upstream_commit_time": "2026-08-20T05:56:11Z"
}这样每一个正式发布版本都能够明确对应:
- 哪一个官方源码版本;
- 哪一次翻译结果;
- 哪一个生产 release。

自动检测 upstream source 变化
当官方源码更新后,项目首先进行 source preview。
本次检测发现:
welcome.article删除旧的简体中文社区翻译链接;basics.article将var修改为 inline code 标记;- 93 个 referenced Example source 没有内容变化。
检测结果:
Page unchanged=103
content_changed=0
Example unchanged=93
content_changed=0
conditional unchanged=2这意味着:
大部分课程内容无需重新翻译,只需要处理真正发生变化的部分。

stale 状态:避免覆盖历史翻译
以前翻译状态只有:
ready但是 upstream 改变后,原来的翻译不能简单认为仍然有效。
因此新增:
stale状态。
本次:
welcome/2basics/9
由于 source revision 变化,从原来的:
ready进入:
stale然后重新进入翻译流程。
这样可以避免:
- 误认为旧译文仍然对应新源码;
- 人工遗漏 upstream 修改。

重新生成翻译批次
针对变化页面,生成新的翻译任务:
chatgpt-zh-CN-013包含:
welcome/2
basics/9完整流程:
export
↓
ChatGPT raw response
↓
process
↓
restore
↓
validation
↓
Translation Quality Review
↓
promotion本次结果:
process:
restore_passed=2
restore_failed=0
validation:
validation_passed=2
validation_failed=0
review:
2/2 approved并且质量评级:
A
promotion 前置检查
重新翻译完成后,并不会直接发布。
项目增加 promotion preflight。
本次检查:
unit_count=122
page_count=103
example_count=19
changed_count=2
unchanged_count=120
review_approved_count=122
can_apply=true确认:
- 所有翻译单元完整;
- 页面数量正确;
- Example 状态正常;
- Review 已通过。
之后才允许进入正式应用。

生成新的 production release
最终生成 release bundle:
{
"locale": "zh-CN",
"upstream_commit": "645042eb697eaf69e33a9af00c6b5b3fffdead5a",
"translation_units": 122,
"pages": 103,
"eligible_examples": 19,
"articles": 7
}当前 release 包含:
- 122 个 translation units;
- 103 个课程页面;
- 19 个可执行 Example;
- 7 个 article 文件。

总结
本次 upstream 同步机制的实现,使 go-tour-i18n 完成了一次重要升级:
从:
一次性翻译项目变为:
持续维护的多语言课程系统新的维护流程:
golang/website upstream
↓
commit baseline
↓
source diff
↓
stale detection
↓
translation regeneration
↓
validation
↓
Translation Quality Review
↓
promotion
↓
production release未来扩展更多语言版本时,可以复用同一套同步和验证流程,而不需要重新设计整个翻译体系。
A Tour of Go 多语言翻译项目
本系列完整记录 A Tour of Go 多语言翻译项目从架构设计、整页翻译、结构保护、自动校验,到生产发布与后续维护的实际开发过程。
项目入口:
✅ 在线学习:A Tour of Go 简体中文版
✅ 项目源码:GitHub:shuijingwan/go-tour-i18n
当前第一阶段已完成简体中文版本。项目属于非官方社区多语言翻译项目,与 Go 官方无隶属或授权关系。

