标签: 本地化
-
A Tour of Go 多语言翻译项目正在进入 v2。随着翻译范围从 Tour 扩展到 Site shell、Learn、Docs 以及未来更多 content package,原有围绕 Tour 构建的架构已经不足以继续扩展。本文记录为什么需要 v2,以及 TranslationUnit、统一术语表、内容包、历史复用与网站集成等设计背后的整体思路。
-
在 Go 多语言翻译项目从 A Tour of Go 扩展到 Site、Learn、Docs 及 future content packages 后,原本用于避免无意义重复审核的 glossary compatibility 机制开始暴露出严重性能问题:部分 Quality Check、Reviewer Bundle、finalization 与 revision 命令需要数分钟才能完成。本文记录一次真实的架构决策过程,对比“继续优化 semantic-delta compatibility carry”和“退回 glossary SHA 变化即 full QC”两种方案,并说明为什么最终暂时保留 compatibility、采用全语言共享的 invocation-local prepared-state 优化。同时进一步确定,无论最终采用哪一种方案,提前基于更完整的 Go/go.dev 技术语境稳定 glossary,都是降低长期维护成本的关键。
-
在完成 Go 多语言项目的 65 个 community locale 后,我进一步整理出一套可跨项目复用的语言选择与商业优先级体系。文章解释为什么跨项目语言池应扩展为包含 en-US 的 66 个目标 locale,以及为什么语言排序不应简单按照人口、单一广告平台支持情况或某个项目的特殊需求决定,而应以长期广告收入潜力为核心,综合考虑语言人口、主要国家和地区、经济体量、数字广告市场、开发者人口等因素。同时区分“商业基础顺序”与“项目级战略 override”:例如 Swahili、Kazakh、Persian、Amharic 在需要申请官方链接或生态合作时可以提前,但不改变基础商业排名。最终目标不是精确预测每一种语言的收益,而是冻结一套足够合理、长期可复用的 66 locale 顺序,避免未来每启动一个多语言项目都重新做语言选择。
-
在为 A Tour of Go 多语言项目新增阿拉伯语版本时,我第一次真正处理 RTL(从右到左)语言。翻译本身仍沿用既有 TranslationUnit、Quality Check、Course SEO 和 Locale Surface Review 流程,但 RTL 很快暴露了桌面双栏重叠、移动端编辑器被压窄、课程导航方向语义变化、代码区必须保持 LTR 等问题。最终通过调整共享布局、响应式规则和浏览器回归测试完成阿拉伯语正式上线,并在排查 PageUp/PageDown 快捷键时进一步确认了一个可在官方 go.dev/tour 复现的上游焦点问题。整门阿拉伯语实际投入约 7 小时,相比普通 LTR 语言多出的时间,主要来自首个 RTL locale 的一次性基础设施建设。
-
完成 A Tour of Go 西班牙语 es-ES 首次 Production 上线后,我没有停在“能上线”这一步,而是继续根据真实失败 evidence 收敛新增 locale 的生产流程。本文记录这次连续处理的 6 类问题:Cloudflare API 瞬态失败容错、首次 Production 公网验收去重、finalization 自动化、current-live locale 状态来源统一、Google/Bing 搜索引擎提交收口,以及 Locale Surface Review A gate 的 freshness scope 优化。最终目标不是让流程越来越复杂,而是让每一门新语言踩过的坑,都变成下一门语言可以直接复用的标准能力。
-
A Tour of Go 韩语翻译在 codex-ko-KR-004 中首次出现 13 个 TranslationUnit 里 3 个 validation failure。进一步排查发现,其中 concurrency/2 与 concurrency/6 并不是 Go identifier 真正丢失,而是韩语助词直接附着在 ASCII 标识符后,触发了 validator 的词法边界误判;concurrency/4 则属于真实的 present font span 结构错误。本文记录如何区分“应该改译文”与“应该改 validator”,并通过 ko-KR 窄规则、正反测试与 revalidate 流程,将结果从 10/13 提升到 12/13,最后再修正真实 candidate 问题达到 13/13。核心原则是:validator 的目标应保护技术身份,而不是强迫目标语言适应源语言的书写边界。
-
A Tour of Go 韩语版原本预计约 6 小时完成,但最终从初始化到 production 收尾跨越约 44 小时。根据 76 次 Git 提交按 30 分钟封顶方式估算,实际活跃投入约 15 小时 43 分,结合 ChatGPT、Codex、浏览器、服务器、Cloudflare 和 Naver 等未完整进入 Git 的操作,最终更适合记作约 16~18 小时。本文复盘韩语为什么明显慢于法语:包括多轮 Quality Check 与 revision、Final Review 后再次返工、韩语语法触发新的 validator 边界、5 小时模型额度影响生产节奏,以及 TranslationUnit 完成后仍持续出现的 preview、production、Cloudflare、课程目录和 Naver 上线问题。最终也重新认识到,成熟流程的价值并不是保证每门语言都越来越快,而是遇到真实问题时,能够正确地慢下来并留下可复用的改进。
-
A Tour of Go 法语版在约 9 小时内完成上线后,我没有立即开始下一门韩语,而是先继续完善新增 locale 的执行流程。这一轮优化不再重复讨论“如何建立一套标准流程”,而是进一步减少已经可以机械化的重复操作:新增 locale init 初始化能力、自动生成语言骨架与状态文件、完善首次 production 自动化与 production identity、精简命令执行成本,并建立 Deferred Issues 机制记录已经真实发现但暂缓处理的问题。目标不是减少 Quality Check、Final Review 或 production acceptance 等质量 gate,而是把人的时间更多留给真正需要判断的翻译质量和生产风险。
-
A Tour of Go 第三门社区语言 de-DE 已正式上线。从开始推进到完成 TranslationUnit 质量审核、Locale Surface Review、production 部署和最终验收,这一轮粗略投入约 16 小时。 但这 16 小时并不是从零开始完成一门语言的全部成本,而是建立在此前数百小时的项目开发、质量流程、服务器基础设施和第二门语言标准化工作之上的增量成本。de-DE 真正值得复盘的,是第三次完整执行以后又暴露出了哪些历史流程债、哪些人工操作已经可以交给工具,以及为什么下一门语言的目标可以进一步压缩到 8 小时以内。
