吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 18454|回复: 17
收起左侧

[Android 分享] 〖全民汉化〗Android软件汉化教程之图文第五课————Apktool汉化通用教程

  [复制链接]
OPkyd 发表于 2013-11-26 21:53
本帖最后由 OPkyd 于 2013-11-27 11:32 编辑

第五课:软件汉化————Apktool汉化通用教程

本篇教程以简单的小软件PreHome为例,软件很小,利于大家学习。

首先我们要知道汉化软件的步骤,然后学会使用apktool工具。工具可以到第四课下载。

里面包含了apktool全部工具,我们将其解压,最好为汉化建立一个专用文件夹,这样可以养成好习惯,利于学习汉化。而且文件夹东西太多会很乱。
- 自从有了APKTool后,Android的软件汉化就迎来了一次革命。
通过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,如下图:
01.jpg
我们要汉化黑色部分的英文,翻译完以后记得保存。这里要说明几点:只能汉连续的语句或大写单词,有下划线连接起来的不可以翻译。也有特殊情况,就需要你自己总结了。以下是我翻译完的strings.xml:
02.jpg
汉化软件需要测试,因为你不知道有没有漏汉。现在我们回编译apk,双击打开强制编译.bat会弹出新窗口,将文件夹PreHome拖动到新窗口,回车,等待完成,如图即为回编译成功。
03.jpg
同时工作目录下会生成新PreHome.1.0.2_out.apk,将其拖动到signapk.bat进行签名,等待完成。同时工作目录又会生成名为done的新文件夹,这里面就是签名成功的新apk。进入此目录进行安装,在手机上打开软件看看效果吧。

这时候你就会发现原来还有漏网之鱼。你不知道这些鱼在哪,就要用Note++进行搜索了。搜索也有技巧:搜索目录选择反编译文件夹,匹配大小写,搜索无果时选择搜索语句中的单词等等。如图:
04.jpg
单词Setting的搜索结果不在xml文件里,在xxx.smali里了,那怎么办呢?没事,虽然有些不同但是也很简单,需要我提供的转码工具。因为smali里面是不支持直接翻译成汉字,需要把汉字转换成u码替换原英文单词。打开u码转码工具上面输入单词Setting对应的中文汉字,单击下面的转换即可得到u码 \u8BBE\u7F6E ,如图:
05.jpg
然后将\u8BBE\u7F6E替换原来的Settings,记得要保存。
06.jpg
现在你可以再次回编译测试看看有没有成功。如果你操作无误,就必定成功。这里不再演示了。Smali文件里的汉化也有几点需要注意:汉字必须转码,只能翻译搜索到或在软件中出现的结果,不可多汉,只能汉const-string 后面双引号中间的部分,双引号不可丢!

最后还有Zipalign对齐化处理,使用方法与签名类似,详情可以参考工具压缩包里面的说明。

Android软件Apktool汉化通用教程到此结束,希望可以帮到你。* APKTool的汉化流程大致就这样,还是那句话,熟能生巧,多多练习。

U码转码工具:http://pan.baidu.com/s/1sxA6G

PS:关于framework.apk,还有些事没说,现在补上。framework.apk是安卓框架,apktool需要根据framework.apk才能对软件进行反编译,有些软件需要设置了framework.apk路径以后才能进行反编译。因为我对cd命令也不熟,所以就不说怎么设置其他路径了。去ROM里面提取个framework.apk然后改名为1.apk放置到C:\Users\Administrator\apktool\framework下,再尝试进行反编译吧。framework.apk最好提取新版固件,因为是向下兼容,比如说4.1版固件framework就可以反编译和回编译4.1及以下系统支持的apk,但无法反编译和回编译4.2系统支持的apk.如果在你的工作目录没有生成相应的文件夹,请全盘搜索。
   传送门:                                                                                                               
第一课:  http://www.52pojie.cn/thread-225285-1-1.html
第二课http://www.52pojie.cn/thread-225295-1-1.html
第三课http://www.52pojie.cn/thread-225298-1-1.html
第四课http://www.52pojie.cn/thread-225309-1-1.html
第五课http://www.52pojie.cn/thread-225314-1-1.html
第六课http://www.52pojie.cn/thread-225319-1-1.html
第七课http://www.52pojie.cn/thread-225323-1-1.html
第八课http://www.52pojie.cn/thread-225327-1-1.html
第九课http://www.52pojie.cn/thread-225364-1-1.html
第十课http://www.52pojie.cn/thread-225368-1-1.html
                                                                 ~相信自己,汉化简单致死!~


免费评分

参与人数 2热心值 +2 收起 理由
菊花大少 + 1 多谢分享,慢慢领悟下先
werfg120 + 1 牛。。。

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

薄荷之夏 发表于 2016-1-26 20:08
反编译出来的文件夹是空的,什么原因?
werfg120 发表于 2013-11-26 21:57
菊花大少 发表于 2013-11-26 22:01
Davis 发表于 2013-11-26 22:03
先收藏 慢慢学习
清风凡界 发表于 2013-11-26 22:09
牛,必须支持。
791003846 发表于 2013-11-26 22:12
支持了,评分支持给了
倚天长风 发表于 2013-11-26 22:53
慢慢学习,楼主大牛
rainprince 发表于 2013-12-10 10:35
楼主大神可以做一个动画的形式吗?我看的不是很懂,

点评

汉化教程 做成视频真的很难做,由于学业原因,最近比较忙 过些天试试吧~  发表于 2013-12-10 13:06
rainprince 发表于 2013-12-10 14:48
rainprince 发表于 2013-12-10 10:35
楼主大神可以做一个动画的形式吗?我看的不是很懂,

楼主大神辛苦了,你的教程我看了,很好呢,等电脑内部东西换过之后,就开始认真学习去做,有问题找楼主,没问题吧,嘻嘻~~
gyc990326 发表于 2013-12-13 20:48
首先,我要想楼主提一下改进的方法:
1.smali中汉字无需转换为java的unicode码,直接用apktool编译即可(1.4.3、1.5.0测试成功)
2.漏网之鱼可以直接用UltraEdit搜索“const-string”搜索字符串,开头为大写的基本都可以汉化(但原先我汉化过一个带上报错误报告功能的软件,然后里面就有一堆log,这个是给开发者看的所以不能不能汉化)
最后我衷心的赞一下楼主~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 13:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表