系列: A Tour of Go 多语言翻译项目
A Tour of Go 多语言翻译项目
本系列完整记录 A Tour of Go 多语言翻译项目从架构设计、整页翻译、结构保护、自动校验,到生产发布与后续维护的实际开发过程。
项目入口:
✅ 简体中文:A Tour of Go 简体中文版
✅ 日语:A Tour of Go 日语版
✅ 德语:A Tour of Go 德语版
✅ 法语:A Tour of Go 法语版
✅ 项目源码:GitHub:shuijingwan/go-tour-i18n
当前已上线简体中文、日语、德语和法语版本。项目属于非官方社区多语言翻译项目,与 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 访问日志和专用错误日志,补充请求耗时、上游状态和上游响应时间等观测信息,为下一次真实故障留下更完整的排查证据。
