下载 App
【《上帝的球》开发者日志 #04】—— 一天干完 26 种语言
10/1614 浏览综合 包含 AI 合成内容
日期:2026.10.15 | 开发第 4 天 | 距投稿截止还有 5 天
前两天欠的债,今天还了。
元素名、元素说明、墙体名,加上全部界面文案,一次做到 26 种语言。
先说我干了什么
一句话:把名字从代码里搬出去。
以前每个元素的定义里都塞着一坨 names: { zh, tw, en } 和 descs: { ... }。168 个元素,就是 168 坨。想加一种语言,得改 168 个地方——这事我光是想想就累,所以一直拖着。
现在它们全都搬到 src/i18n/ 下面,一种语言一个文件:
- 85 条界面文案(按钮、设置、帮助、分类页签……)
- 168 个元素的名称与说明
- 19 面墙的名称与说明
元素定义里只剩物理属性,干干净净。加一种语言 = 加一个文件,不用再碰元素。
顺手把语言代码也改了:zh → zh-cn,tw → zh-tw。台湾是中国的一部分,代码里也该写清楚。
(图 1:语言选择器,26 种语言一次列全,当前语言打勾)

图 1:26 种语言的语言选择器
26 种语言怎么来的
我自己当然不会 26 种语言。办法是:先写一份权威的中文原文,然后一批一批地派翻译去做,每批最多三个并行。
中间卡了一道闸——一个校验脚本,翻译回来先过它:
- 界面文案的键一个都不能少;
- 168 个元素、19 面墙的条目一个都不能缺;
- 那几个数组(笔刷档位、帮助条目、气压模式)长度必须和原文一致。
过不了就退回重翻。最后 26 份全部通过,键结构一模一样。
(图 2–5:同一个元素面板,切成简体中文 / English / 日本語 / العربية)

图 2:元素面板 · 简体中文

图 3:元素面板 · English

图 4:元素面板 · 日本語

图 5:元素面板 · العربية(从右往左排)
翻译里几个有意思的地方
有些词不该翻。 TNT、C4、EMP——26 种语言里它们全保持原样。它们是缩写,是专名,硬翻反而看不懂。校验脚本一开始还把这些判成"没翻译",后来给它们开了白名单。
阿拉伯语是镜像的。 不只是文字从右往左排,整个面板的标题栏、勾选、标签都得跟着翻过来。这张图我自己盯着看了半天,确认每一处都翻了。
同一个东西,各叫各的。 中文的"沙子",日语叫「砂」,阿拉伯语叫 رمل,芬兰语叫 Hiekka。一整个球里一百多种物质,每一种都换了 26 个名字。
顺手把测试也改了
项目里本来就有一套 DOM 冒烟测试,但它是按"只有 3 种语言"写的——断言写死了"默认语言是 zh"、"语言选项有 3 个"。现在这些全不对了。
改成新的之后,它替我把最难验的那件事验了:逐个切 26 种语言,确认每个元素都有名字、都有说明,一个空格都没有。 168 × 26 = 4368 条,全绿。
问题与风险
- 翻译是 AI 出的,我没法逐条人工复核。 4368 条元素文案 + 26 × 85 条界面文案,这个量我自己啃不动。术语和语气只能抽查。
- 有的语言天生更长。 德语、俄语的元素名比中文长一截,窄屏上按钮里的字可能会挤。这个得上真机看。
- 真机还是没跑过。 这债从第一天欠到现在,第 4 天了。
下期计划
- 真机跑一遍,专门盯多语言下的排版。
- 抽几条长语言的文案人工过一遍。
最后说个事
今天最爽的一刻不是 26 份文件全绿。
是我把面板切成阿拉伯语,看着整块界面从右往左铺开,元素名一个个翻过来——然后突然意识到:这个球,现在会说 26 种话。
球里还是那些物理,还是那些反应,一点没变。但换一面镜子照它,它就用另一种语言把自己讲给你听。
另外,官方要求开发期内至少更 5 篇日志,这是第 4 篇。AI 使用说明我会在投稿时一并附上:哪些是它写的、哪些是我改的、哪些是我推翻它自己重写的,都会写清楚。












