标签:
本篇教程以简单的小软件PreHome为例,软件很小,利于大家学习。
首先我们要知道汉化软件的步骤,然后学会使用apktool工具。工具可以到第四课下载。
里面包含了apktool全部工具,我们将其解压,最好为汉化建立一个专用文件夹,这样可以养成好习惯,利于学习汉化。而且文件夹东西太多会很乱。
软件汉化步骤:
1.反编译apk,反编译成Note++等工具能够读取的文本形式。
2.翻译,使用Note++等工具进行文本翻译。
3.回编译apk,回编译成完整的apk安装包。
4.签名与Zipalign对齐处理。工具都在置顶帖找。
apktool使用方法:
将PreHome.apk拖动到工作目录,然后拖动到完全反编译.bat,此目录就会生成同名文件夹。进入文件夹,你会发现与原apk结构不同了。对,因为我们进行了完全反编译,就相当于将arsc与dex文件进行解包,现在才可以用Note++等工具汉化。前面的课程已经说了去哪里找汉化语言,这里不再重复,我们进入PreHome.1.0.2\res文件夹,通常情况下会有多个values、values-xx文件夹,这些就是语言存放的目录了,xx代表了国家代码,因为Android系统可以根据国家代码来读取当前国家的语言包,所以如果有values-zh(中文)、values-zh-rCN(简体中文)或values-zh-rTW(繁体中文),手机系统会优先读取咱们的国语,如果没有的时候就只读取values文件夹的语言。由此我们可以用apktool进行强制汉化或嵌入式汉化。
强制汉化:直接翻译values文件夹下的语言文件。
嵌入式汉化:新建values-zh、values-zh-rCN或values-zh-rTW,将values文件夹下的语言文件复制到此处,然后翻译这里的语言文件。
同时我们也可以使用apktool进行语言精简操作。即删除values、values-zh、values-zh-rCN或values-zh-rTW以外的语言文件夹,不过这样有时候回编译会报错,解决方法请参照后续课程。
我平时喜欢精简的软件、精简的ROM,所以我几乎都是使用强制汉化。那就跟着我开始汉化吧。进入PreHome.1.0.2\res\values,通常情况下,我们要汉的文本是arrays.xml与strings.xml,这里没有arrays.xml,我们就不用管。用Note++打开strings.xml,如下图:
我们要汉化黑色部分的英文,翻译完以后记得保存。这里要说明几点:只能汉连续的语句或大写单词,有下划线连接起来的不可以翻译。也有特殊情况,就需要你自己总结了。以下是我翻译完的strings.xml:
汉化软件需要测试,因为你不知道有没有漏汉。现在我们回编译apk,双击打开强制编译.bat会弹出新窗口,将文件夹PreHome拖动到新窗口,回车,等待完成,如图即为回编译成功。
同时工作目录下会生成新PreHome.1.0.2_out.apk,将其拖动到signapk.bat进行签名,等待完成。同时工作目录又会生成名为done的新文件夹,这里面就是签名成功的新apk。进入此目录进行安装,在手机上打开软件看看效果吧。
这时候你就会发现原来还有漏网之鱼。你不知道这些鱼在哪,就要用Note++进行搜索了。搜索也有技巧:搜索目录选择反编译文件夹,匹配大小写,搜索无果时选择搜索语句中的单词等等。如图:
单词Setting的搜索结果不在xml文件里,在xxx.smali里了,那怎么办呢?没事,虽然有些不同但是也很简单,需要我提供的转码工具。因为smali里面是不支持直接翻译成汉字,需要把汉字转换成u码替换原英文单词。打开u码转码工具上面输入单词Setting对应的中文汉字,单击下面的转换即可得到u码 \u8BBE\u7F6E ,如图:
然后将\u8BBE\u7F6E替换原来的Settings,记得要保存。
在你可以再次回编译测试看看有没有成功。如果你操作无误,就必定成功。这里不再演示了。Smali文件里的汉化也有几点需要注意:汉字必须转码,只能翻译搜索到或在软件中出现的结果,不可多汉,只能汉const-string 后面双引号中间的部分,双引号不可丢!
最后还有Zipalign对齐化处理,使用方法与签名类似,详情可以参考工具压缩包里面的说明。
Android软件Apktool汉化通用教程到此结束,希望可以帮到你。
标签:
原文地址:http://www.cnblogs.com/changyuet/p/5148398.html