说起这个《HoneySun安卓汉化》,简直就是我最近的一次硬仗。这游戏内容很对胃口,但只有原版,手机上玩起来看着日文就是不舒服。寻思着,既然都折腾电脑了,不如自己动手,丰衣足食。
本站为89游戏官网游戏攻略分站,89游戏每日更新热门游戏,下载请前往主站地址:www.gm89.me
第一步:抓住源文件,把它扒干净
我干这活,第一件事就是抓取APK包。直接从网上下了一个最新的版本,然后扔到了我的电脑上。我用的老工具,叫APK Easy Tool,这玩意儿虽然有点年头,但用来拆包和重打包,那是真好使。一拆开,好家伙,几千个文件,看着就头皮发麻。我知道文本肯定藏在资源文件里,但不是所有游戏都那么老实,直接放个*在那等你翻译。
-
定位:我直接冲着assets目录去了。一般这种独立游戏或者日系游戏,文本资源,图片,啥的,都一股脑塞这里面。
-
发现问题:果然,文件结构很混沌,没有直观的文本文件。这玩意儿一看就是Unity套皮的,脚本和数据被封装在了一个巨大的资源包里,文件名带着一串哈希码。
第二步:跟加密文本玩猫捉老鼠
我当时就骂了一句,妈的,又得折腾解包工具。我下载了一个针对Unity资源的解包器,名字就不说了,反正各种版本试了一遍,才找到一个能正常识别这个资源包的版本。我把那个大包文件拖进去,执行解密和解析操作。
这回运气还算它真的把文本内容吐出来了。但是吐出来的文件格式是定制的,不是标准的JSON或者XML,它是一种特殊的脚本格式,里面用了很多控制符来控制文字的显示位置、颜色和立绘切换。
我打开文本文件,内容密密麻麻,全是日文夹杂着各种[p]、[c]、[name="XX"]这种奇怪的符号。这活儿难搞的地方来了:
-
识别:我得先搞清楚哪个是正文,哪个是控制命令,不能乱动。
-
编码:这文本是用UTF-8编码的,但我得确保我翻译成中文后,再塞回去的时候,游戏引擎能正常识别中文输入法常用的字符集,不然进去就一堆乱码框。
-
对照:我用一个文本比对工具,建立了原版和汉化版的对照表。每天下班回家,就对着屏幕一行一行地翻译、校对,这比写代码还累人。
我中途差点想放弃。看着几万行的文本,眼睛都花了。但一想到能用母语流畅地玩到这款游戏,又硬着头皮坚持下来了。
第三步:回炉重造与反复测试
等我把所有的文本都翻译完了,已经是好几天之后了。接下来就是技术活。
我把翻译好的中文文本,按照它原来的脚本格式,一个字符不差地替换回去。然后利用那个解包器,再次封装,把那些零散的脚本文件又打回了最初的那个大资源包里。
文件搞定后,我把新资源包扔回APK原来的assets目录,然后用APK Easy Tool进行重打包。
这还没完。安卓系统对非官方应用有签名要求。我得用Keytool生成一个自己的签名文件,然后对打包好的APK进行签名。
噩梦般的适配:文本溢出
第一次安装到手机上,心里扑通扑通跳。点开游戏,中文出来了!我当时高兴坏了。但是玩到第二章,马上就出问题了。
中文的字宽比日文宽得多,很多长句子在原来的日文字框里勉强能显示,换成中文后,直接就溢出到屏幕外面去了,或者被UI界面遮挡了。
我一看这情况,就知道还得返工。我没有本事去修改游戏的UI布局代码,我只能回头去修改我的翻译。我启动了游戏,一帧一帧地截图,记录下所有溢出和遮挡的句子。
然后我用最土的办法,把那些超长的句子,拆分成几段短句,或者使用更精简的中文词汇来表达同样的意思。这个优化过程又耗费了我两整天的时间。来来回回重打包,重新签名,重装测试,大概搞了四五次,才彻底解决文本显示问题。
最终,一个完全适配中文的《HoneySun》在我的手机里流畅跑起来了。虽然过程坎坷,工具链用得七零八落,但看着自己的劳动成果,那种踏实感,真是谁体验谁知道。
