一天1,752篇文章:我们的开发日志是怎么学会十二种新语言的 🌍
2026年11月7日
8月,我们的游戏在一周内学会了十四种语言。开发日志却落后了很久。如果你用法语或日语打开网站,博客页面只会告诉你这种语言还没有文章。每篇文章上方的语言切换器提供了全部十四种语言,但其中十二种通向的是错误页面。🙈 从10月3日起,这个问题没有了。
数字。当时博客里有146篇文章,每篇都有德语和英语版本。一天之内,十二种语言加入了进来:法语、西班牙语、意大利语、葡萄牙语、荷兰语、波兰语、土耳其语、俄语、乌克兰语、日语、韩语和中文。也就是146 × 12 = 1,752篇新文章,外加72个翻译好的分类。每篇译文都沿用德语原文的日期。6月20日的文章,在波兰语里也是6月20日,而不是10月3日。所有语言版本都互相链接,所以语言切换器现在会把你带到另一种语言里的同一篇文章。
为什么不直接按翻译按钮?我们的网站运行在 Wix 上,Wix 自己就能翻译文章。但对我们来说,那意味着要点1,752次“翻译”,再手动改1,752次日期。我们的额度也远远不够:我们大约需要746,000个词,而手里只有大约43,000个。而且通用的机器翻译并不认识我们游戏里用的那些词。
把游戏当作词典。所以我们自己做了一个。一个小程序通过 Wix 的接口(API,就是程序而不是人来和网站对话的一扇门)取回每一篇文章,并把它拆成段落。AI逐段翻译,并拿到游戏自己的语言文件当词典。这样,博客里的工作台和游戏里的按钮名字就是一样的。像/tp这样的命令、按键名称、版本号和人名都保持原样。然后有一个检查程序把每份译文和原文对照,确保段落数、链接、数字和版本号都对得上,文字也用对了。日语必须真正是用日文字符写的。只有一切都吻合,文章才会上线。
敏感话题再看一遍。每种语言大约25篇文章接受了第二轮审阅:凡是关于孩子和学校社团、儿童安全、我们的许可协议和故事的内容。这些文章里,一个用错的词就可能造成真正的伤害。之后,我们又在线上网站上把这300篇文章再检查了一遍。
昂贵的教训。💸 第一次尝试时,每个包都配了一位翻译和一位审阅者。两者都是AI代理,会自己去收集文件。这样每个包要花大约1000万个token(token就是AI计费用的小小词块),而且在完成6%的工作之后,我们的账户就达到了上限。第二次尝试时,我们把一切都准备好了:每个包只有一个精简的输入文件,里面是文本和刚好对得上的词典条目。AI分几大块写出译文,最后只跑一次检查。为此,一个更小更快的模型(Sonnet)就够了。我们同时运行的代理从未超过五个,否则就会触发我们AI账户的每分钟限额。就这样,98个代理跑完了,没有出一次错,而且全部加起来的花费,大约只相当于之前的一个包。这个教训远远不止适用于博客:把它需要的一切摆好,AI又快又便宜;要让它自己去找,就会变得很贵。
它并不完美。机器翻译得惊人地好,但并不完美。在游戏的文字里,长凳曾经变成了工作台,机库曾经变成了海边的海湾,而且一下子在八种语言里都是如此。对于博客,我们明确要求译者不要根据名字推测任何人的性别。但在有些语言里,它们还是这样做了,比如俄语、波兰语和法语。所以现在这些地方由我们自己来检查。
从那以后,它就自己运转起来了。每一篇新文章,包括每一篇更新文章,在德语和英语版发布后,都会被翻译成另外十二种语言,并以相同的日期发布。如果我们以后改了德语文本,系统会发现哪些译文已经过时,并重新翻译。而且从版本 2026.10.4 起,游戏里的“有何新内容?”窗口也会用你的语言显示新闻。
如果你会说其中某种语言,读到哪句话觉得别扭,请告诉我们:在游戏里按 F1(浏览器里按 F2),或者到 GitHub 上。🙏
留言