最近这段时间,工作上没啥太大的挑战,我就琢磨着找点好玩儿的,正好想起来以前玩过一个叫《末世余生》的游戏。这游戏内容是真不错,可惜就是汉化版本一直很乱。尤其是我这种手机党,想在安卓上玩个痛快,简直是奢望。网上的安卓汉化版,不是缺了主线剧情,就是界面乱码,那帮人搞得东西根本不能用。
确定目标与初次尝试
我这人就是看不惯这种半吊子工程,所以一拍大腿:自己动手,丰衣足食。我的目标很明确,要把市面上最完整、口碑最好的PC汉化文本,无缝移植到安卓版本上。
我第一步就是跑去几个老牌资源站,找到了最新的安卓原版安装包和PC端完整的汉化补丁。我的想法很简单:把安卓安装包拆开,找到它读取文本的地方,然后塞入PC版那套翻译好的中文。但现实哪有那么容易?
- 暴力拆解: 我用了反编译工具把安卓的APK文件扒开。结果好家伙,游戏引擎的资源文件全被封装了,文本文件躲在一个奇奇怪怪的压缩包里,后缀我以前都没见过。
- 定位难点: 我对着几十个文件看了半天,才锁定了一个看似是资源表的玩意儿。我尝试用普通的解压软件去解,直接就报错。很明显,人家设了一道锁。
- 寻觅钥匙: 我转头又开始在国内外技术论坛上翻箱倒柜。花了差不多一天半的时间,终于找到了一个针对这个小众引擎的专用解包工具。这工具界面全是英文,操作逻辑也反人类,我连蒙带猜,试了十几次不同的参数,终于把那个资源包给打开了,弄出来了一堆可以编辑的文本文件。
移植与编码的鬼门关
文本是搞出来了,但这只是万里长征第一步。我把PC版那些工整的中文翻译文件复制过来,准备替换原版的日文或英文文本。但又遇到了一个老掉牙的问题:编码格式。
PC版汉化组用的编码是GBK,安卓系统默认的很多程序都更倾向于UTF-8。我直接替换进去,重新打包安装,游戏是启动了,但一到对话框,中文就成了一堆问号和方框,整个屏幕都是乱码。我知道这是编码不匹配导致的。
我赶紧又把安装包拆开,用文本批量转换脚本重新跑了一遍所有的文本文件,确保它们都转换成了UTF-8格式。这个转换过程又花了我好几个小时,因为有些特殊符号和半角全角字符在转换时会出错,我不得不手动去校验和修正了几百个地方。那几天我眼睛都熬红了,感觉自己像个校对机器。
最终适配与大功告成
文本问题解决了,我重新封装,再次安装。这一次,中文不再是乱码了!正当我激动的时候,新的问题又冒了出来。
虽然文字能显示了,但是对话框的尺寸是按照日文字符设计的,中文文字往往更宽,结果就是:文字溢出了,一行字只显示了一半,剩下的部分直接被切掉了。这体验比乱码还让人崩溃。
我又开始新一轮的折腾。我找到了控制对话框显示区域的配置文件。那是一个叫UI_*的文件。我在里面改动了字体大小、行间距、对话框宽度等几十个参数。每次改完一个数字,就得重新打包,传到手机上测试,看看效果。这个重复的体力活消耗了我所有的周末时间。
来回调整了差不多三十多次之后,我终于找到了一组完美的数值。文字大小合适,行距舒服,最重要的是,PC版那么长的汉化文本,严丝合缝地挤进了安卓的对话框里,一个字都没溢出。
看着自己手机里跑起来的,拥有完整汉化剧情的《末世余生》,那股成就感真是盖过了这几天的辛苦。实践证明,只要思路清晰,工具到位,再难搞的本地化问题,自己都能解决掉。这种从头到尾的成就感,是直接玩别人分享的版本体会不到的。