Freezedry
一家面向全欧盟销售冻干机的WooCommerce商店:八种运营语言、每个国家都正确的运费,以及更轻更快的网站。

挑战
这家面向全欧盟销售冻干机的立陶宛商店,机器翻译总是“卡住”,新语言迟迟无法上线,好几个国家的页面要么出错,要么是空白。
方案
- 翻译: 找到了真正的原因:所有翻译引擎都被关闭了,注册也已损坏;让DeepL自动翻译恢复工作;使自定义字段可翻译,在17个文件中把主题里硬编码的语言改为gettext,并为每种语言本地化结账占位文字、增值税名称、联系表单文字和尺寸标签。
- 新语言: 先是法语,然后是西班牙语、意大利语和芬兰语,包括商品列表、配送标签、结账和税项名称。
- 首页: 可安全回退到旧轮播的轮播集成,按语言和设备分别设置的轮播,无需写代码即可为语言分配轮播的管理页面,以及根据WooCommerce数据生成的交互式“我们的销售足迹”欧洲地图。
- 配送: 由于类别只按立陶宛语/英语的slug匹配,四个国家的购物车一直享受免费配送;现在类别在任何语言下都通过翻译层映射,没有类别的商品会记录到日志。
- 稳定性: 修复了导致页面报503错误的递归问题,在13处防范空字段引发的PHP 8致命错误,清除了PHP 8.2弃用警告,并把CDN库固定到确切版本且附带完整性哈希。
- 速度: 各语言的主视觉图片转换为WebP,CSS和JS使用缓存破坏机制。
- 流程: 把直接在生产环境中做的改动逐字节同步到git,使用经过审查的拉取请求和分支,部署到预发布环境和生产环境前都备份数据库。
成果
八种语言已上线(LT、EN、DE、NL、FR、ES、IT、FI);法语版上线时包含全部32个页面和26件商品。意大利、西班牙和芬兰的全部26件商品现在都能正确计算运费。一个膨胀到约12 GB的调试日志被止住,另一个日志从194 MB降到8.5 KB,主视觉图片从约1.5 MB缩小到143 KB。