这事儿得从头说起。我这个人,就喜欢折腾那些小众的老游戏,特别是那种日式作品,内容又丰富。最近我盯上了《遗失2》。PC上有日文原版,但我是个移动办公党,总想在手机上玩。官方压根儿没出安卓版,就算出了,也绝对没汉化。我就琢sī了,自己动手丰衣足食,非得把这玩意儿弄到安卓上,还得是中文的。
第一步:摸底、扒拉文件和拆包
我先去网上扒拉了一个PC版的汉化补丁,这是我的翻译源。然后找到了一个网友移植的安卓英文版,虽然不能直接玩,但起码包体结构有了。我用上了一个叫“APK易用工具”的玩意儿,把那安卓包先给拆了。这工具操作起来麻烦得要死,界面也丑,但好歹能把资源给拎出来。
我开始定位游戏的资源目录。通常这些日本小作坊的游戏,文字文件藏得都比较深。我翻遍了Assets和res文件夹,在/assets/data/目录下找到了一大堆文件,文件名都是稀奇古怪的数字编号。我猜最大的那个肯定就是文本文件了。我打开一看,果然,全是日文。
第二步:文本提取、加密与中文对齐
我把那文件拉出来,用十六进制编辑器一看,这编码,鬼知道是我尝试了几种常见的日式编码,然后转成了UTF-8。但一转,文本里头就出现了一堆乱码符号。我花了整整一个下午,才搞明白它用了自定义的加密方法。这加密虽然简单,但每次修改都得先解密,改完再加密回去。要是少一步,游戏读取的时候就会直接报错。
我的做法很土。我写了个简陋的Python脚本,专门负责解密和加密。我把PC版汉化补丁里的中文文本一行一行对齐,然后塞进了我解密出来的文件里。这个过程非常煎熬,因为翻译的中文文本长度和原版日文长度不一样,一塞进去,回头在游戏里显示就会出问题,不是溢出屏幕就是换行错乱。
第三步:回封、签名和调试地狱
等我把所有文本都搞定,我开始回封APK。回封的时候又遇到了证书签名问题。安卓系统不认这个重新编译的包。我又找来了一个签名工具,重新签名。安装是能安装了,但一点进去,直接黑屏闪退。
- 我重新检查了*文件,没看出毛病。
- 我查了日志(logcat),发现是资源路径指向出错了。
- 原来我改完文件名,脚本没把路径同步修改,指向的还是英文版的文件名。
我赶紧修正了那几个路径,再次回封,再次签名。这回终于跑起来了!但是画面一出来,我发现之前担心的问题全来了:很多对话框里的中文挤成一坨,字号太大了,文本框根本装不下。我被迫又回去修改了游戏的UI配置文件,调小了字体的边距和行高。这改动很麻烦,因为我得像个裁缝一样,一点点试错,每次改动都要重新打包测试。
我前前后后折腾了快三天,终于搞定了一个勉强能玩的版本。虽然还有几个边角料的图片没汉化,但主线剧情已经流畅无阻了。这三天我没睡好一个整觉,但这种自己亲手把一个东西从零到有地折腾出来的感觉,真挺爽的。