从课程正文翻译到完整学习体验
A Tour of Go 多语言翻译项目最初的重点是课程页面本身。
项目采用完整页面作为最小翻译单元:
完整 present.Section
↓
翻译
↓
结构验证
↓
页面发布这种方式能够保证左侧课程内容完整本地化。
但是,在实际使用过程中发现:
右侧 Playground 示例代码中的注释仍然保持英文。
例如:
// Create a huge number by shifting a 1 bit left 100 places.
// In other words, the binary number that is 1 followed by 100 zeroes.
// Shift it right again 99 places, so we end up with 1<<1, or 2.对于初学者来说,阅读教程时需要在中文正文和英文代码注释之间切换,学习体验并不完整。
因此,项目进一步扩展翻译范围,将 Example 纳入统一翻译流程。

Example 作为独立 TranslationUnit
为了避免简单文本替换带来的风险,项目没有将 Example 当作普通字符串处理。
设计上:
- Page 是一种 TranslationUnit;
- Example 是另一种 TranslationUnit。
其中:
- Page 翻译单元对应完整
.article; - Example 翻译单元对应完整
.go文件。
项目文档明确:
Example 翻译单元是完整
.go文件。
同时,Example source 的哈希覆盖整个文件:
source_sha256 覆盖文件全部字节,而不是只覆盖注释。这样可以保证:
- 代码内容变化能够被检测;
- 翻译过程不会只关注注释片段;
- Example 可以和 Page 使用相同 workflow 管理。

.go 文件作为翻译单元。使用 Go scanner 保护代码结构
代码文件与普通文本最大的区别在于:
代码中只有部分内容可以翻译。
例如:
可以翻译:
// Calculate the result不能修改:
package main
import "fmt"
func main()因此,Example 翻译流程采用专门处理方式:
Go scanner
↓
识别真实注释
↓
保护代码、字符串、布局等内容
↓
只开放自然语言注释 payload
↓
恢复完整 Go 文件具体实现中:
- 使用 Go scanner 识别真实注释;
- 将代码、字符串、布局、注释分隔符以及机器语义注释替换为保护 token;
- 只允许普通自然语言注释参与翻译;
- 使用统一 glossary 保持术语规则。
这样可以避免:
- 修改 Go 标识符;
- 破坏字符串内容;
- 改变代码结构;
- 导致 Example 无法运行。

翻译后的 Playground Example
完成 Example 翻译后,代码结构保持不变,只更新自然语言注释。
例如:
// 将 1 左移 100 位,得到一个非常大的数。
// 换句话说,这个二进制数由 1 后跟 100 个 0 组成。
// 再将它向右移 99 位,最终得到 1<<1,也就是 2。同时:
package main
import "fmt"
func main()等代码内容保持原样。
最终效果:
- 左侧课程正文为中文;
- 右侧 Playground 注释为中文;
- 示例代码仍然可以正常运行。
这意味着 A Tour of Go 的学习体验从“课程翻译”进一步扩展到“完整教程本地化”。

Example 翻译纳入统一发布流程
Example 并不是单独处理的临时功能。
它与 Page 共用:
- TranslationUnit 管理;
- batch workflow;
- validation;
- Translation Quality Review;
- promotion;
- release projection。
整体流程:
Page / Example TranslationUnit
↓
export
↓
model translation
↓
process
↓
automatic validation
↓
Translation Quality Review
↓
promotion
↓
ready
↓
publish这样未来扩展更多语言版本时,不需要为不同内容类型重新设计流程。
总结
Playground Example 本地化是 A Tour of Go 多语言翻译项目的重要一步。
它解决的不只是几行代码注释翻译,而是:
- 将 Example 纳入统一翻译体系;
- 建立代码文件专用保护机制;
- 保证翻译过程不会破坏 Go source;
- 让课程正文和代码示例保持一致的语言体验。
最终,项目实现了:
课程正文本地化
+
代码示例本地化
=
完整学习体验本地化这也为后续支持更多语言版本提供了统一基础。
A Tour of Go 多语言翻译项目
本系列完整记录 A Tour of Go 多语言翻译项目从架构设计、整页翻译、结构保护、自动校验,到生产发布与后续维护的实际开发过程。
项目入口:
✅ 在线学习:A Tour of Go 简体中文版
✅ 项目源码:GitHub:shuijingwan/go-tour-i18n
当前第一阶段已完成简体中文版本。项目属于非官方社区多语言翻译项目,与 Go 官方无隶属或授权关系。
