最近琢磨着手里的旧安卓机子,想找点能打发时间的独立游戏玩玩。无意间刷到了个叫《MazeCave》的玩意儿,画面看着复古,像素风,立马勾起了我的兴趣。结果下载下来一跑,好家伙,全是英文。看小说可以翻词典,玩游戏还要边玩边查,那乐趣直接少了一半。当时就火气上来了,没汉化?那我自己来。
本站为89游戏官网游戏攻略分站,89游戏每日更新热门游戏,下载请前往主站地址:www.gm89.me
第一步:拆包和摸底
工欲善其事,必先利其器。我先是把那个APK文件
扔进电脑里,用解压工具直接暴力拆解。安卓的APK说白了就是个ZIP包,解开之后一堆文件夹。我知道我要找的就是文本资源,肯定藏在那个叫“assets”或者“res”的地方。
我一层一层地
翻找进去,那个过程跟考古似的。一开始我以为是XML文件,结果不是。后来在assets的深处发现一堆看着像LUA脚本的文件,或者是某种自定义的配置文件。我的直觉告诉我,文字就藏在这些文件里头。我用文本编辑器
打开其中一个,密密麻麻的英文句子,没错,就是它了!
不过光找到文件还不行,得确认这个游戏处理文字的方式。我随便改了几个地方,然后封包回去准备测试,结果游戏直接闪退了。我心想这不对,肯定有校验。这一下子,就得花时间去研究它这个资源加载机制。后来我才发现,它虽然不是把所有文本都混淆了,但是它对资源文件的路径和命名做了严格的校验,稍有差池,就给你脸色看。
第二步:提取、翻译与校对
确认了文件位置之后,我用一个简单的脚本
批量提取出了所有的英文句子。这部分工作量巨大,因为我得手动把那些控制换行、字体颜色或者变量的占位符(比如`$player_name`这种)给
标记出来,免得翻译的时候把它们给弄丢了。
- 先机器,后人工:我把提取出来的几千条文本先扔给了机翻,毕竟效率在那儿摆着。但机翻出来的东西,那是人话吗?肯定不是。
- 逐条打磨:接下来就是我的体力活儿。我一条条地
对照原文,再结合游戏的内容,
进行润色。特别是一些对话和道具描述,用词一定要“游戏化”,不能太生硬。比如说,一个英文短语机翻过来是“你得到了一个能力点”,我得把它改成“你获得了一点潜能”。
- 处理变量:这个游戏里变量插得特别多,如果翻译后的中文长度超过了原英文,就会
造成文本溢出,把UI界面给搞乱。为了避免这个,我得尽量控制句子长度,有时候不得不牺牲一点文采。
第三步:回封、签名与实机调试的坑
所有文本
翻译完了,并且
替换回去原来的文件里之后,最关键的一步来了:重新封装APK。
我用工具把修改后的资源文件夹
重新打包进那个APK壳里,这还没完。安卓系统可精了,任何非官方签名的应用,它都不认。我必须得
给这个新包签名。我用自己的测试密钥文件,给它
套了个壳子,让系统以为这是个正常的安装包。
签完名,颤颤巍巍地
把文件推送到我的旧手机上,
点击安装。第一次打开,心里是忐忑的。
结果:游戏能进!菜单是中文了!我当时那个激动,感觉像做了什么了不得的大项目。
但是,乐极生悲。进入游戏实战部分,很快就
发现了一堆问题:
由于中文字符宽度的问题,很多按钮上的字
挤成了一团,根本看不清楚。有些游戏内弹窗,中文一长,直接
从框里跑出去了。这就意味着我得回到第二步,
微调文本,有些地方甚至要
改写得更简短。为了解决这个问题,我来来回回
修改了不下五六次,每次修改都要重新签名,重新安装,特别磨人。
最终:成就感与分享
折腾了大概一个周末,我总算是把主要的文本都
调顺了,UI显示也基本正常了。虽然还有几个边角料的地方显示有点小瑕疵,但至少不影响游戏体验了。
这趟下来,我算是彻底
搞明白了这个小游戏的资源结构。技术上没什么高大上的,主要是靠耐心和细致。搞定之后,我把这汉化好的包打了个补丁包的形式,
传到群里,大家伙都说好用。这种亲手
解决了一个痛点,并且
分享出去造福别人的感觉,比玩游戏本身要有意思多了。
