今天得跟大家伙儿聊聊我最近瞎折腾的一个事儿——给一个安卓上的武侠小说游戏做了个汉化。这玩意儿挺有意思的,过程虽然有点磨人,但搞定之后那成就感,别提了!
为啥要搞这个?
就好这一口武侠,什么刀光剑影、快意恩仇的,看得是热血沸腾。手机上,也下了不少武侠题材的游戏。可惜,好多不错的安卓武侠小游戏,尤其是国外独立开发者做的那种,压根就没中文,或者汉化质量惨不忍睹,玩起来总觉得隔着一层纱,不痛快。
前段时间,我又淘到一个英文版的武侠风RPG,画风和剧情底子瞅着都不赖,就是那满屏的英文单词看得我头大。寻思着,咱自己动手,丰衣足食呗!于是就有了这回的实践。
准备工作,磨刀不误砍柴工
动手之前,肯定得做点准备。我先是在网上扒拉了一堆资料,看看人家是怎么搞安卓应用汉化的。大概了解了下,主要就是要对付那个APK安装包。
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
工具嘛也准备了几个:
- 一台电脑:这不用说,编译反编译啥的都得靠它。
- APK反编译工具:我用的是比较常见的那一套,比如Apktool之类的,能把APK文件拆开。
- 文本编辑器:用来修改那些文本文件,我用的是Notepad++,因为它支持各种编码,还能高亮显示代码,方便。
- 翻译软件(可选):有些句子实在啃不动,就得靠它辅助一下,但不能全信,机翻那味儿,大家都懂。
- 耐心,耐心,还是耐心:这个最重要,汉化是个细致活,急不来。
对了,还得把那个目标游戏的APK文件给弄到电脑上。这个简单,手机里装了的,导出来就行。
开搞!拆包和找文件
万事俱备,开干!
第一步,反编译APK。我打开命令行工具,敲上Apktool的命令,对着那个APK文件一顿操作,没一会儿,就解压出来一堆文件夹和文件。看着有点乱,但核心的东西基本都在里面了。
第二步,找文本资源。这是汉化的关键。一般来说,安卓应用的文本都存放在`res/values`或者`res/values-en`(英文的话)这类文件夹下的`*`文件里。有些游戏可能比较特殊,文本会藏在`assets`文件夹的某些自定义格式文件里,比如json、lua脚本,甚至直接硬编码在代码里(这就麻烦了)。
我这个游戏还算友大部分对话、任务描述、物品名称啥的,都在`*`里找到了。打开一看,一条条都是这样的格式:
<string name="welcome_message">Welcome, warrior!</string>
<string name="quest_start_button">Accept Quest</string>
这不就好办了嘛
翻译的苦与乐
找到文本之后,就是漫长又枯燥的翻译工作了。我把那些英文句子,一条条复制到我的文档里,然后开始逐字逐句地琢磨。
保持风格统一很重要。武侠小说嘛用词得有点江湖气,不能太现代化,也不能太拗口。比如 “Welcome, warrior!”,我可能会翻译成 “欢迎你,侠士!” 或者 “大侠,幸会!”,而不是生硬的“欢迎,战士!”
遇到一些游戏里的专有名词、武功招式、地名啥的,就得特别小心。我会先在游戏里实际场景看一下,理解它的语境,然后再给它取个合适的中文名。有时候为了一个词,能纠结老半天。
这个过程是真的磨人,几千上万条文本,对着屏幕眼睛都快瞎了。中间也借助了翻译软件,但主要还是自己理解和润色。毕竟咱是要做个“信、达、雅”的汉化嘛(虽然可能水平有限,哈哈)。
翻译完了之后,就把中文替换掉原来`*`文件里的英文,注意不要改动那个 `name` 属性,那个是程序调用文本的“钥匙”。
字体是个大问题
文本翻译完了,别高兴太早。很多外文游戏默认用的字体库里,可能根本就没中文字。就算有,也可能显示不全,或者特别丑。
我这个游戏就遇到了这个问题。一开始直接打包回去,游戏里凡是中文的地方,全是一堆方块字“□□□□”。
没办法,又得折腾字体。一般有两种思路:
- 替换游戏原有的字体文件:在解包出来的文件夹里找到字体文件(通常是.ttf或.otf格式),用一个包含中文的字体替换掉它,但要注意文件名得一样。
- 修改代码指定新的中文字体:这个就比较复杂了,得懂点smali代码,找到调用字体的地方,改成你新加入的中文字体文件名。
我运气还行,这个游戏是直接替换字体文件就行。我找了个比较顺眼的免费商用中文字体,裁剪了一下,只保留常用字,减小体积,然后替换了原来的英文字体文件。
打包测试,见证奇迹(或者翻车)的时刻
文本改好了,字体也处理了,接下来就是重新打包成APK了。
还是用Apktool,一个命令下去,把修改过的文件夹重新打包成APK文件。但是,这样打出来的包是未签名的,装不上。还得进行签名。
我用了一个简单的签名工具,给新生成的APK签了个名。这一步也挺关键,不然手机会拒绝安装。
然后,就是最激动人心的时刻了——把汉化后的APK安装到手机上,打开游戏!
第一次打开,看到熟悉的武侠界面变成了亲切的中文,那感觉,爽!我赶紧跑了几个任务,看了看对话,物品介绍,大部分都正常显示了。也发现了一些小问题,比如某个地方文字超框了,某个词翻译得不太准确,或者有些图片上的英文没处理(这个暂时先放过,工程量太大了)。
针对发现的问题,我又回头去修改文本,调整字符长度,重新打包,再测试……反反复复好几次,才算基本满意。
唠叨几句
整个过程下来,花了我好几个晚上的时间。虽然挺折腾,但看到自己喜欢的游戏能用母语玩,而且还是自己亲手实现的,那种满足感是什么都替代不了的。
这回实践也让我对安卓应用的结构有了更深的了解。我这只是最基础的文本汉化,更复杂的可能涉及到修改图片、修改代码逻辑啥的,那就更专业了。
如果你也对某个外文安卓应用“不爽”,又有点爱折腾的精神,不妨也试试自己动手汉化一下。过程可能磕磕绊绊,但结果绝对值得。纯属个人瞎捣鼓的经验分享,希望能给同样爱好的朋友一点点启发!