最近我忙活了一件挺有意思的事情,就是把一个叫《医德》(Ethic)的安卓独立游戏给彻底汉化了一遍。这游戏我之前玩过,故事特别棒,但只有英文版,好多医学上的伦理抉择看得我云里雾里,总觉得漏掉了细节。既然这样,不如自己动手,丰衣足食。
获取与解包,先挖个底朝天
第一步自然是把游戏的安装包(APK)搞到手。我没费多大事,直接在自己的测试手机上把应用跑起来,用抓包工具把那个原始的APK文件给硬抠了出来。抠出来之后,就得开始脱壳解包了。我习惯用那个叫APK Easy Tool的家伙,界面虽然简陋,但是对付这种小游戏简直是手到擒来。工具一跑,它就老老实实地把所有的资源文件和代码结构都给我吐出来了。
文件是出来了,但问题来了。这不是那种简单地把改改就能完事的应用。这游戏的对话文本量非常大,它们被作者藏在了一个特定的资源文件夹里,而且是用一个巨大的JSON格式文件来储存的。我一层一层地钻文件夹,终于找到了那个名为“*”的文件。打开一看,密密麻麻,全是英文,估计有上万行,我顿时感觉自己给自己挖了个巨坑。
硬啃文本,跟专业术语死磕到底
接下来的活儿,就是纯粹的人肉翻译了。我深知,这种注重剧情和伦理讨论的游戏,机器翻译肯定是不行的,出来的味道会全变。我只能一个字一个字地,像个老学究一样去琢磨。
最要命的是,它里面涉及到大量的专业医学术语,还有各种法律规定和病患隐私的讨论,那些句子结构复杂得吓人。为了保证翻译的准确性,那几天我几乎把谷歌学术和各大医学百科的网站翻了个底朝天,就为了确定一个词在特定的语境下应该怎么表达才地道。
- 翻译不能太直白,要符合中文的说话习惯。
- 翻译完的中文文本长度,必须时刻关注,不能让它超过原来英文文本太多,否则在安卓界面上就会溢出,按钮文字显示不全,那就白忙活了。
- 我不停地进行本地化润色和精简,确保文字既准确,又能在手机屏幕上完美显示。
回封打包,一步绝不能掉链子
等我把JSON文件里所有文本都替换成中文后,最关键的流程来了:重新打包和签名。
我再次启动了打包程序,把修改好的资源文件重新塞回到原来的APK结构里。但这一步也不是一帆风顺,第一次打包就提示了编码错误,原来是我在处理JSON文件时,字符集没调对。我赶紧修正了编码格式,重新打包。
等待了一段时间,程序总算是顺利完成了构建。一步,就是用我的个人签名工具给这个新的APK文件打上数字签名。没有签名,安卓系统是不会让你安装这个非官方的修改包的。
签名搞定,立刻把成品扔到我的测试机上。安装,启动!当我看到游戏的首屏和第一个对话框全部显示出流畅自然的中文时,我心里那块石头才彻底落地。然后我花了整整一个晚上重新体验了一遍,确认所有的分支剧情和按钮文本都精准无误。虽然整个过程花了好几天,但看到成果能让更多朋友体验到这个好故事,感觉一切都值了,这也是我最爱折腾汉化的原因。