没有不值得去解决的问题,也没有不值得去学习的技术!

系列: Go 学习与文档多语言本地化项目

本系列完整记录 Go 学习与文档多语言本地化项目从 A Tour of Go 起步,逐步扩展到站点首页、项目说明页、Learn、Docs 及 future content packages 的实际开发过程,包括架构设计、统一术语治理、整页翻译、结构保护、自动校验、独立质量审核、Site v2 扩展、生产发布与长期维护。

项目源码:
✅ GitHub:shuijingwan/go-tour-i18n

语言版本:

当前跨项目目标语言池共包含 66 个 locale。Go 项目本身目前提供 65 个 community Production locale,下面每一门 Go 语言版本都直接链接到其当前公开站点。语言列表沿用项目首页现有的展示顺序。

en-US 仅作为跨项目目标语言纳入列表,并不是单独的 Go Production locale。当前 Go 的 English source authority 仍为 generic en,因此英语(美国)链接到 Go 官方英文站点,而不是不存在的本地社区部署。

  1. 阿姆哈拉语
  2. 阿拉伯语
  3. 孟加拉语
  4. 葡萄牙语(巴西)
  5. 保加利亚语
  6. 加泰罗尼亚语
  7. 克罗地亚语
  8. 捷克语
  9. 丹麦语
  10. 荷兰语
  11. 英语(澳大利亚)
  12. 英语(加拿大)
  13. 英语(印度)
  14. 英语(新加坡)
  15. 英语(南非)
  16. 英语(英国)
  17. 英语(美国)(官方 generic English source,不是单独的 Go Production locale)
  18. 爱沙尼亚语
  19. 菲律宾语
  20. 芬兰语
  21. 法语(法国)
  22. 法语(加拿大)
  23. 德语(德国)
  24. 德语(奥地利)
  25. 德语(瑞士)
  26. 希腊语
  27. 古吉拉特语
  28. 希伯来语
  29. 印地语
  30. 匈牙利语
  31. 印度尼西亚语
  32. 意大利语
  33. 日语
  34. 卡纳达语
  35. 哈萨克语
  36. 韩语
  37. 西班牙语(拉丁美洲)
  38. 拉脱维亚语
  39. 立陶宛语
  40. 马来语
  41. 马拉雅拉姆语
  42. 马拉地语
  43. 书面挪威语(Bokmål)
  44. 波斯语
  45. 波兰语
  46. 葡萄牙语(葡萄牙)
  47. 旁遮普语(果鲁穆奇文,印度)
  48. 罗马尼亚语
  49. 俄语
  50. 塞尔维亚语(西里尔文)
  51. 简体中文(中国大陆)
  52. 简体中文(新加坡)
  53. 斯洛伐克语
  54. 斯洛文尼亚语
  55. 西班牙语(西班牙)
  56. 斯瓦希里语(坦桑尼亚)
  57. 瑞典语
  58. 泰米尔语
  59. 泰卢固语
  60. 泰语
  61. 繁体中文(台湾)
  62. 繁体中文(香港)
  63. 土耳其语
  64. 乌克兰语
  65. 乌尔都语
  66. 越南语

项目正在持续扩展新的 Go 学习与文档内容,并长期维护各语言版本的术语一致性、翻译质量、独立审核、生产发布与后续更新。

本项目属于非官方社区多语言本地化项目,与 Go 官方无隶属、授权或背书关系。

  • A Tour of Go 多语言翻译项目完成 zh-CN 第一阶段正式上线。本文记录从 103/103 个课程页面完成翻译与验收,到 production release、systemd、Nginx、EdgeOne 和 HTTPS 正式部署的全过程,并重点复盘 glibc 版本不兼容、OneinStack 静态资源规则导致 CSS/JS 404、play.golang.org 无法访问、切换 go.dev Playground、release 权限导致 systemd 203/EXEC,以及 Nginx PID 与 systemd 管理脱节等生产问题。最终课程页面、远程运行、代码格式化和 /socket 安全约束均通过公网及浏览器验收,zh-CN 版本正式上线。

  • A Tour of Go 简体中文站正式上线后,我发现原生产域名 go-tour.shuijingwanwq.com 与既有 /tour/ 路径存在语义重复。此前曾评估直接移除 /tour/,但由于涉及路由、静态资源、模板和既有验证链路,最终放弃这一方案,改为将生产域名迁移至更具扩展性的 go-dev.shuijingwanwq.com。本文完整记录 Cloudflare DNS、腾讯云 EdgeOne、HTTPS、同路径 301、OneinStack、Nginx、Let’s Encrypt、静态资源 404 修正及旧源站清理过程,并通过新页面 200、静态资源 200、旧域名 301 完成最终验收。

  • A Tour of Go 多语言翻译项目在完成 103 个简体中文课程页面后,进一步补齐项目首页、Logo/favicon、公共 Footer、备案信息、GitHub 与开发记录互链,并完成正式 production bundle 构建、权限规范、独立实例验收、原子切换、回滚保护及公网验证。发布过程中还排查了 EdgeOne 新旧缓存混用问题,并重新设计了 site-metadata.json 的职责,将开发态元数据与生产发布元数据彻底分离,避免“发布后回写发布时间”形成循环。

  • 为 A Tour of Go 简体中文生产站接入 Google Analytics 4 与百度统计。本文记录从审计现有 TOUR_ANALYTICS 注入机制、补齐首页统计入口,到使用 systemd EnvironmentFile 管理生产统计代码、重新生成并发布 production release,以及处理 EdgeOne 旧 HTML 缓存的完整过程。最终通过源站、公网页面和浏览器网络请求三层验证,确认 GA4 g/collect 返回 HTTP 204、百度统计 hm.gif 返回 HTTP 200,两套统计系统均已完成真实数据上报。

  • A Tour of Go 简体中文站正式上线后,为完善搜索引擎抓取与收录能力,补齐了 robots.txt 与 sitemap.xml,Sitemap 共包含首页和 103 个课程页面,总计 104 个规范 URL。随后完成 Google、Bing、360、百度和搜狗五个平台的站点验证或资源提交,并复用了此前 en.shuijingwanwq.com 的搜索引擎接入经验。过程中还通过 Nginx 精确返回百度、搜狗验证文件,避免修改 Tour 应用本身,同时清理了 Nginx 新版本下旧 HTTP/2 语法及 OCSP Stapling 配置警告。最终五个平台均完成当前阶段接入,也进一步明确了后续开发轻量级搜索引擎提交工具的方向。

  • 本文记录 A Tour of Go 多语言翻译项目一次手机端首页顶栏标题换行问题的完整处理过程。从真实手机发现“A Tour of Go 多语言翻译项目”最后一个字符被挤到第二行,到定位移动端 CSS、调整 Logo 间距与标题字号、在 360px 宽度下验证,再到评估 320px 极窄屏边界、发布生产、处理 EdgeOne 缓存并完成真机最终验收。整个过程也进一步明确了项目在响应式设计中的原则:优先解决真实设备上的实际问题,不过度针对极端宽度堆叠特殊规则,并为未来多语言扩展保留足够简单、可维护的实现。

  • 本文记录 A Tour of Go 多语言翻译项目一次生产发布故障如何推动自动部署流程落地。一次看似普通的手机端 CSS 发布,因为 release 目录权限异常导致 go-tour.service 出现 status=203/EXEC,生产站点一度返回 502。问题恢复后,项目开始整理 production 自动部署脚本,并在第一版过度复杂、达到 722 行后主动做减法式重构,最终收敛为约 494 行,只保留 staging、权限归一化、SHA-256、原子切换、连续健康检查和失败回滚等核心机制。首次真实部署中还观察到 systemd 已显示 active、但 localhost 首次仍为 HTTP 000 的现象,进一步验证了连续应用层健康检查的必要性。

  • A Tour of Go 简体中文版上线后,生产环境访问 Go 官方 Playground 偶发出现 TLS 握手超时。本文记录如何在现有 ZgoCloud 服务器上新增独立 Playground 执行节点,通过 Nginx、HTTPS 8443、CORS 与固定接口转发,将 /compile、/fmt 请求直接发送至 play.golang.org,同时保持原有网络服务不受影响,并完成连续真实编译、格式化和安全边界验收。

  • A Tour of Go 新的 ZgoCloud Playground 执行节点搭建完成后,本文继续记录生产端 Run / Format 的实际切换过程:从代码审计、统一 Playground 基础地址、生产与本地运行模式隔离,到 release manifest、自动部署脚本和生产发布同步更新。上线后还遇到了 EdgeOne 缓存旧 /tour/script.js,导致浏览器继续请求旧 /_/compile 的问题;定向清除缓存后,Run 与 Format 最终成功切换到 ZgoCloud,并通过桌面浏览器和手机真实网络环境验收。

  • 记录 A Tour of Go 中文版在手机端出现“运行”和“格式化”偶发失败后的排查过程。通过微信、自带浏览器、QQ 浏览器、百度 APP,以及 Wi-Fi、5G 等不同环境反复测试,确认问题无法稳定复现;进一步分析 ZgoCloud Nginx 日志后发现,当天所有正常进入服务器的 /compile、/fmt 请求均返回 200/204,但部分前端失败无法与现有日志完整对应。为避免在根因不明确时贸然修改生产架构,最终为 Playground 增加独立 JSON 访问日志和专用错误日志,补充请求耗时、上游状态和上游响应时间等观测信息,为下一次真实故障留下更完整的排查证据。

👨‍💻 个人品牌

王世强|技术实践者 · 独立博客作者

15+ 年 Web 与系统实践经验,持续关注网站基础设施、系统优化、AI 工具与自动化。

持续运营技术博客 10+ 年,累计发布 1000+ 篇原创技术文章。

长期建设个人项目,也欢迎合适的技术交流、咨询与合作。

👉 关于我

.env (14) 404 (14) add (16) AI 翻译 (36) Array (19) A Tour of Go (79) CentOS (23) ChatGPT (31) ChatGPT Plus (18) chrome (19) Cloudflare (40) Codex (28) composer (42) composer.json (22) composer update (14) console (16) Container (25) curl (16) delete (31) Docker (33) Dockerfile (15) EdgeOne (35) environment variable (19) error (24) file (15) filter (20) Git (28) GitHub (23) Gitlab (15) GLM-5.2 (27) Go (87) go-tour-i18n (16) Google AdSense (30) Go 文档 (19) Go 语言 (24) GraphQL (24) GraphQL API (14) Gutenberg (36) http (21) https (23) Interface (19) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (22) Module (17) MySQL (78) MySQL 5.7 (22) Nginx (63) normalize.css (28) OKX (15) OneinStack (23) PHP (68) php-fpm (21) php.ini (24) PHP 7.1.12 (22) PHP 7.4 (26) phpmyadmin (15) PhpStorm (24) Polylang (59) postman (18) Query (17) queue (16) Rancher (24) Redis (53) RESTful (27) RESTful API (23) SEO (14) Shell (14) Shopify (19) SlyTranslate (22) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (20) Ubuntu (43) update (20) VPN (17) W3 Total Cache (41) Windows 10 (46) WireGuard (29) WordPress (136) WPCode (23) Wstunnel (16) Yii (40) Yii 2 (70) Yii 2.0 (51) 国际化 (17) 多语言翻译 (51) 开源项目 (16) 技术博客 (15) 故障排查 (21) 数据库迁移 (16) 本地化 (22) 浏览器 (14) 阿里云 (20) 页面缓存 (14)

2026 年 10 月
一 二 三 四 五 六 日
 1234
567891011
12131415161718
19202122232425
262728293031