一个来自韩国的独立开发者,大约七个月前才开始写代码。他能读英语,但不用翻译工具就很难组织句子——这篇自述本身,也是借助翻译器和AI写出来的。
他的应用叫 Party Picker,一款聚会游戏:朋友们共用一部手机,用轮盘之类的运气游戏决定谁去买咖啡,也有考验手感的项目,比如把计时器正好停在五秒。目前它支持10种语言:韩语、英语、日语、简体中文、繁体中文、西班牙语、巴西葡萄牙语、德语、法语和印尼语。其中只有韩语是他能真正检查的。
他并没有一个宏大的全球发行计划。既然本来就要用AI做翻译,他想着应用如果显示用户自己的语言会更好用,于是就把语言加了上来。他搭好翻译结构,让AI翻译了另外八种语言,每种大约670条字符串。
翻译是怎么搭起来的
应用里所有文本都走一个叫 tr() 的函数,英语原文本身就是键值:String tr(String english) => L10n.translate(english);。英语字符串集中在一个源文件里,AI把这个文件翻译成各语言版本,再由一个小脚本检查有没有缺失的字符串、有没有被删掉或改动的 {0} 这类占位符。
第一次跑下来,缺失字符串为零,占位符损坏也为零。这只能说明条目都在,说明不了翻译对不对。
翻译过程中,AI还指出了 The chosen one(s)! 这句的问题:其他语言里单复数的变化可能不只是加个 s 那么简单。他把它拆成了 The chosen one! 和 The chosen ones! 两条。
不用懂语言也能做的检查
有些检查不需要理解那门语言。一个是标记测试:把每条翻译替换成用 « » 包起来的文本,比如 «Start»,然后逐个打开界面,找有没有不带这对符号的英文。那样的文本没走过 tr(),切换语言时会原样留在英文。
另一个是排版检查。他在360×640、文字放大到1.6倍的条件下测了德语、法语、印尼语和日语,检查过的26个界面都没有出现溢出。针对商店页面,他又写了一个脚本,核对另外九种语言的字符数限制。
但这些翻译没有任何母语者审过。这些检查能兜住漏字和排版,兜不住用词。
他无法确认意思对不对
他会请几个AI交叉检查翻译,自己也尽量读一遍。即便如此,还是很难判断译得对不对。最难的部分是确认译文说的是不是他想表达的意思,其次是不知道当地人是否真的这么说话——一个词在词典里正确,放在应用里可能很怪。
这个问题在英语里就出现过。他第一版英文商店描述写的是 "Pick a forfeit.",他想表达的是选一个人,但这句也可以读成选一种惩罚。他能读英语,照样漏了。换成其他语言,类似的问题他更难发现。
每加一个功能,翻译就再来一轮
第一次翻译之后,他低估了后续的工作量。每个新功能都要在10种语言里配文本。最近他加了一个游戏,新增23条字符串,对另外八种语言来说就是184条翻译,然后所有检查要重跑一遍。活儿本身不算难,但只要动应用,就得一直做下去。
到目前为止,韩国以外没有任何安装,也没有其他语言的评价,更没有人报告翻译错误。用户太少,他收到的是漠不关心,而不是批评——这让他更难受。没有反馈,他就不知道翻译是没问题、有问题,还是根本没人看到过。
如果重来一次,他会先做韩语和英语,等别的国家真有人用了再加语言。翻译结构和测试仍然有用,但用户这么少,很难说多出来的语言帮上了多少忙,而它们已经在每次改动时增加工作量。
他在文末留了一句话:如果你用其中某种语言试了这款应用,发现哪里读起来别扭,请告诉他——那是他自己查不好的部分。应用可以在 Google Play 上找到。
热门跟贴