去除了防修改保护后,现在开始进行汉化。

打开 MTestApp_kill.apk 点击查看进入安装包内,点击 resources.arsc 文件,选择翻译模式,打开后发现有好多的语言包,拥有强迫症的我决定删掉没用的语言包,只保留默认和简体中文。

汉化应用 - 图1

精简语言包

要精简语言包的话,需要使用 Arsc 编辑器。让我们退出翻译模式,再次点击 resources.arsc 文件,选择 Arsc 编辑器,进入 cc.binmt.mtestapp。

汉化应用 - 图2

字符串资源一般存在于 string、array、plurals 三个类型中,在这边我们只看到 string 类型,所以我们只需要精简 string 里面的配置就行了。

点击 string 进入配置列表,因为我们只保留默认和简体中文,所以把除了 string 和 string-zh-rCN 之外的配置都删掉。

  • 如果你在汉化其它 app 时没有找到 string-zh-rCN,你可以自己新建一个,或者干脆把默认语言包内的文本都翻译成中文。汉化应用 - 图3

看到这边你可能会问,明明有 string-zh-rCN 这个简体中文语言包,为什么这个 app 的界面还是英文的?

我们来找找原因吧,进入默认语言包往下拉,可以看到从 001F 到 0029 的文本,基本都是主界面上显示的那些文字,但进入 zh-rCN 后却找不到 001F 到 0029。也就是主界面上的那些文字只存在于默认语言包,而在简体中文语言包中没有对应的条目。

所以我们在 string-zh-rCN 中点击添加菜单,选择 string 来源,把 001F 到 0029 的条目添加进来。

汉化应用 - 图4

现在,我们完成了语言包的精简,并且把简体中文语言包中缺少的词条添加进去了。点击菜单保存文件,退出 Arsc 编辑器。返回主界面后 MT 会提示你更新文件,点击确定。

开始汉化

再次点击 resources.arsc 文件,选择翻译模式,这次只看到 [DEFAULT] 和 zh-rCN 了,即默认语言和简体中文。如果你还看到其它语言包选项,那么可能你还需要去 array 和 plurals 类型中删除配置。

选择 zh-rCN 进入,我们需要翻译的是这几个文本:

汉化应用 - 图5

使用谷歌自动翻译后:

汉化应用 - 图6

有些地方翻译得不太正确,另外有个十分隐秘的错误,仔细看你会发现上图左右两边的 % 长得不太一样,右边的 % 被谷歌翻译整成全角符号了,这会导致格式控制符失效。不知道什么是格式控制符的话去看前面关于翻译模式的文档。

修正翻译结果:

汉化应用 - 图7

点击菜单保存翻译结果,返回后再点击菜单保存文件,退出翻译模式。(注意两次保存)

效果测试

更新完文件后,返回上级,对 MTestApp_kill.apk 进行签名,然后安装生成的 MTestApp_kill_sign.apk。

打开后你会发现,大部分已经完成汉化,并且点击下面的按钮,显示的数字会不断增加,更新提示中会显示“新版本:1100”,如果这两个地方显示不正确,那就是你破坏了格式控制符。

汉化应用 - 图8

欢迎页面的 Welcome!、输入框的 Password、第一个按钮的 OK,这三处文本没有完成汉化,我们要去其它地方找找。

XML 翻译

让我们再次打开 MT,点击 MTestApp_kill.apk 选择 XML 翻译模式功能,可以找到我们刚刚没翻译的那三个词条了,直接进行翻译并保存。

汉化应用 - 图9

效果测试

保存完后退出翻译模式,对 MTestApp_kill.apk 进行签名,然后安装生成的 MTestApp_kill_sign.apk。

汉化应用 - 图10

这次没问题了,我们已经完成了所有的文字汉化,所以下面不需要去使用 Dex 翻译模式了。