翻译模式是专门为翻译应用而开发的一套功能,分别有 Arsc 翻译模式、Xml 翻译模式、Dex 翻译模式,这三大翻译模式基本覆盖了绝大部分 APP 的全部文本。

在翻译一个应用时,要遵循一套准则,优先翻译 arsc,其次翻译 xml,最后再选择性翻译 dex。

Arsc 翻译模式

要使用 Arsc 翻译模式,首先你要打开待翻译的 apk 里面的 resources.arsc 文件,选择翻译模式,然后就能看到可以翻译的语言包,[DEFAULT] 代表默认语言,zh-rCN代表简体中文。

翻译模式 - 图1

这边你看到的语言包,也就是 arsc 的配置(Config),都是 MT 从 arsc 文件的 string、array、plurals 类型中提取出来并合并到一起,如果你想添加或者删除语言包,以及在语言包中添加文本条目,需要去 Arsc 编辑器中操作,具体请看 ARSC 编辑 中关于配置的说明。

选择一个语言包就可以进入翻译界面。

翻译模式 - 图2

左边显示待翻译的文本,右边显示翻译后的文本。翻译时你可以选择手动翻译、联网翻译、字典翻译,具体会在下面进行说明。

保存翻译数据

在 Arsc 翻译模式的主界面,点击右上角的设置按钮,就可以看到“保存时写出本次翻译数据到 arsc 文件”的选项。

翻译模式 - 图3

勾选了该选项后,保存时 MT 会在 arsc 文件中新增一个 bin.mt.plus.TranslationData 的包用于保存翻译数据。

例如你当前翻译状态是:

翻译前翻译后
Tool工具
Book书本

如果没有勾选保存翻译数据,下次打开后将会是:

翻译前翻译后
工具
书本

如果勾选了保存翻译数据,下次打开后将会是:

翻译前翻译后
Tool工具
Book书本

Xml 翻译模式

一些应用的部分文字可能不在 arsc 文件,而是在 apk 里面的某些 xml 文件中,而一个 apk 有非常多个 xml 文件,要一个个去查找和翻译显然不方便,而 MT 就可以自动帮你遍历所有 xml 文件,找出所有可以进行翻译的文本。

要使用 Xml 翻译模式,首先你要找到并点击需要翻译的 apk,点击功能,就可以在弹出菜单中看到 XML 翻译模式,进入后就可以进入翻译界面。

翻译模式 - 图4

这边你看到所有文字并不一定都需要翻译,有些只是作者为了效果预览而写进去的,运行时不会显示出来,具体再根据实际情况进行判断。

Dex 翻译模式

点击 dex 文件就可以看到翻译模式了,再次点击即可进入。

记住 dex 中的文本不要直接去翻译,而是当你做完 Arsc 翻译 和 Xml 翻译时,先测试你翻译完成的应用,如果你看到某个未翻译的文本,去 Dex 文件中搜索它,如果可以找到,再单独地修改它,其它文本不要动,不然很可能造成无法预料的错误。

格式控制符

在翻译时你可能会碰到 %1$d、%s 之类的文本,这些都是格式控制符,如果你学过 C 语言的 printf 函数应该就比较了解。

例如“一共选中了 %d 个文件”,%d 就是一个整数格式控制符,在显示时,它会被替换成一个具体的数字。所以当你在翻译时碰到格式控制符,千万不要破坏它们,不然会运行报错。

特别要注意的是在使用联网翻译时,例如谷歌翻译,会把上面的文本翻译成“Selected a total of% d files”,其中 %d 被拆开了,这时你需要手动修复它。

多选操作

下方工具条的按钮依次是:全选、反选、多选/取消、自动翻译、连选,长按连选可以查看操作提示。

在多选状态下,长按可以清除已翻译的文本,自动翻译只会翻译被选中的文本。

在非多选状态下,长按可以选中当前的文本,自动翻译会翻译全部的文本。

联网翻译

点击下方工具条的倒数第二个按钮,即可打开自动翻译对话框,在翻译方式中选择联网翻译引擎(普通用户只有百度翻译,VIP 用户有更多选择),然后选择源语言翻译为的语言,点击确定即可开始翻译。

翻译模式 - 图5

在选择源语言翻译为时,有许多个选项,如果觉得太多不好找,你可以点击右上角菜单中的语言,把你用不到的语言隐藏掉。

字典翻译

当你翻译完之后,可以将当前的翻译结果保存成字典,等下次这个应用更新了,你就使用这个字典来快速翻译,然后你只需要手动翻译新版本中增加的或者修改过的文本就行了。

保存字典

点击右上角菜单中的保存到字典,然后可以选择保存到已有的字典,或者新建一个字典再保存。保存到已有的字典时,原有的数据不会丢失,而是新增或者替换数据。

翻译模式 - 图6

使用字典

使用字典翻译和使用联网翻译基本一样,但在对话框的翻译方式中,要选择你保存的字典而不是翻译引擎。翻译方式中的字典以 “# + 字典名字” 形式显示,例如“#默认字典”。选好后点击确定后就可以开始翻译。

翻译模式 - 图7


翻译完成保存到 apk 之后,记得对 apk 重新签名才能安装。