您的位置:首页 > 移动开发 > Android开发

Android安装程序.APK文件嵌入式多语言汉化教程

2010-12-12 20:45 651 查看

http://bbs.52android.com/thread-1311-1-1.html



(感谢原作者:Soyu Zom 2010.9.30)


这里为大家带来了全新的汉化教程,希望对广大汉化爱好者们有所帮助!众所皆知,很多国外的Android程序支持多语言,而且会根据系统语言而自动选择适当的。为用户带来了很大的方便,不需要单独选择下载对应的地区语言。

为了适应环境,如以前那样针对性的汉化,已经不适合大势所发展了。以前的汉化我们姑且称之为“强制性汉化”吧!

而下面为大家介绍的另一种汉化方式,建立在反编译基础上。当然我们不探讨什么修改编译程序,我们只需要汉化,我们要的是中文。

这种汉化方式,是在APK程序支持原语言的基础上,加入简体中文以及繁体中文(包括图片文字)。而且不会破坏程序的原始结构,做到运行稳定,外观完整。同时还可以根据Android系统语言的改变而自动切换程序语言的汉化效果。我们就称之为“嵌入式汉化”吧。相信大家也没太多意见吧!

  OK!介绍完毕,下面开始实际操作。

本教程软件下载:http://bbs.52android.com/thread-1312-1-1.html

使用工具
1.解压缩工具(很有用处)
2.反编译工具(这是必须的)
3.图像处理工具(小小的掌握图像处理基础)
4.APK签名工具(你懂的)

工具的选择
虽然,有些软件利用apk反编译工具可以自动解包,但是有可能会不完整,而且就算完整解压后也会破坏原始文件,为了达到更稳定的汉化效果,所以我们必须有一个解压缩工具,一般人会使用WinRAR,但是我不得不说:“这个就不推荐了。”推荐大家使用【7-Zip】,为啥?就是他用起来顺手,对APK压缩和解压缩很合适。

反编译工具,众望所归,选择【AapTool】。不为什么,目前就只知道它能简单的直接的反编译APK文件。

图像处理工具,不跟大家扯什么PS了,就介绍大家使用最容易掌握的【Fireworks】吧。被Adobe收购后,感觉不顺手了,不过还是比较简单的。没有图像处理基础的童鞋可以下载旧的第八版(Fireworks 8)的,很简单容易上手。
至于选择它还有一个重要的原因:PNG图片就Fireworks的专用格式,仅此一家,别无分号。当然PS也支持PNG,不过没它强。它也是大名鼎鼎的网页制作三剑客之一。

签名工具,这里大家都知道。当然我也为大家提供一个简单的签名工具。

反编译APK程序
首先我们下载一个APK反编译工具【ApkTool】下载地址:
http://code.google.com/p/android-apktool/

至于执行命令我就不多解释了,简单的就是:
复制内容到剪贴板
代码:
java -jar apktool.jar d [文件名.apk] [反编译后文件夹]

有人说要把文件解压到Windows系统文件夹里。这里就不那么麻烦了。直接放到一个文件,把你要反编译的APK文件也放进。然后打开CMD 找到该目录直接执行命令就可以了。。

如果你觉得很麻烦,那么就下载我重新修改的一个简单的工具吧,下载地址:
http://bbs.52android.com/thread-1312-1-1.html



操作方式根据提示就可以了,工具上已经详细说明了。



本教程我就直接用这个简易工具操作了,节约时间,低碳环保,利国利民。。。
以下实例教程我选择了含图片文字以及多语言的谷歌图片搜索利器【Google Goggles v1.2】。

注意,为了方便以后操作,我们要保存一份备份。这是汉化者必须养成的一个习惯,因为汉化的过程中难免非出错。。
首先我们直接用7-zip解压apk文件,点击Goggles.apk文件右键,选择:解压到“Goggles/”。



然后,把【goggles.apk】命名为【123.apk】,拉到【Goggles】文件夹里面。
接着,打开APK反编译及编译工具,浏览找到【Goggles】文件夹,点击安装,解压完后会弹出黑色CMD命令符窗口,输入数字:1 【然后敲回车】,开始反编译了:

反编译完成后,打开【Goggles】文件夹,我们会看到一个名为【APK】的文件夹,这里面就是反编译后所得到的文件了:



反编译后的文件




打开【APK】文件夹,会看到里面的文件跟外面的差不多,不过其实格式已经不同了。里面的XML文件可以直接用记事本编辑,只是普通的文本格式。其中【smali】文件夹里面是classes.dex文件反编译过来的,里面的文件同样可以用记事本类工具编译。【res】文件夹是嵌入式汉化得重点目标,其他的文件和文件夹我们就不用理会它了。
对于【classes.dex】文件的汉化比较麻烦要一点点的查找词条。本来拜托了汉化浪子兄弟编写一个专门的汉化工具的,谁知道,那个闷骚小子弄了一半罢工了。如果必须要汉化得话,我们只能用高级的【文本编辑器】查找了,这里推荐使用【Notepad++】可以直接搜索整个文件夹里的文件,异常强悍。

下面我们打开【res】文件夹看看:





哈哈,那么多文件,刚开始接触的童鞋应该会有点晕,没关系我为大家介绍一下。。

【drawable】里面主要是放图片之类的东西,【layout】是软件的主体文件,包含框架界面,其中很多软件要去除广告的代码也在里面。【values】这个我们嵌入式汉化的重点对象,它里面包含的就是界面语言,这是软件的主引导语言,以前“强制性汉化”就是汉化这个文件家里面的文件,当然这次我们不能动它,只能利用它。。。

而,其他文件夹包含“values”名称的都是语言文件夹。我们看到最后三个,【values-zh-rCN】、【values-zh-rHK】、【values-zh-rTW】就是简体中文、台香港繁体和湾繁体。其中香港和台湾用的是一样的。如果你汉化得时候喜欢弄些地区语言,也可以分别处理一下。

看到这里大家应该注意到了,很多软件反编译后,不包含这三个文件夹,就是说明他没有中文。而“嵌入式汉化”,就是要为它重新创建这三个文件夹,回编译后,Android系统就能自动识别了。

文本的汉化

进入【res】文件夹后,如非必要我们可以删掉多余的语言文件夹,只留下中文就可以了。至于【values】就是默认的英文了,不能删除。如果我们反编译的文件不包含其他语言,只有【values】一个语言文件夹,那么我们就直接创建两个文件一个简体一个繁体,如:【values-zh-rCN】、【values-zh-rTW】,一般的ROM所说的繁体不是香港繁体,而是台湾繁体,所以香港繁体文件夹可以不创建。

然后我们打开【values】文件夹,可以看到里面有好几个xml文件。





而,其中主要的是【arrays.xml】和【styles.xml】:
【arrays.xml】是选项菜单弹出的复选项;
【styles.xml】是主界面和菜单的语言索引。

其它一些是界面颜色配置相关的文件,可以不理他,当然有些个别的APK文件,也有另外一些文件要汉化,如果需要的话我们在选择上它。

那么,我们把这两个文件复制到中文文件夹里面去。接着就可以直接用【编辑器】打开开始汉化了,可以使用记事本,我比较喜欢【EditPlus】这个编辑器。





其中有些数字或者无法汉化的词条,可以直接删掉,保留可以汉化的就可以了。如下图:



汉化完成后,最重要的是,要保存编码方式为:UTF-8 ,注意不要加BOM!
对于繁体,我们可以用相关工具,直接从简体转换成繁体就可以了。

图文的汉化
下面讲讲图片内文字的汉化吧!很多软件都包含图片文字按钮之类的。所以我们汉化时,也需要对其进行处理。
对于【Goggles】也有很多按钮和介绍图片都是包含文字,打开【drawable】看看:






11.jpg (48.35 KB)

2010-12-2 03:55

当然,对于图片我们也能实现多语言汉化,图片同样也可以做一个引导文件夹,Android系统也会自动识别。

这里命名有点不同,由于很多软件支持高清屏和普通屏,比如G1和N1屏幕的大小规格是不一样的,软件的图片清晰都也有要求。其实无论什么屏幕我们都可以不用理会,直接根据命名规则命名就可以了。比如【drawable】文件夹,我们复制一个出来然后在“drawable”后面加入“-zh-rCN”变成【drawable-zh-rCN】就可以了,如果是【drawable-hdpi】文件夹同样在“drawable”后面加,改成【drawable-zh-rCN-hdpi】,依此类推,繁体也是这样命名,如图:






12.jpg (16.66 KB)

2010-12-2 03:55

然后,删除中文图片文件夹里面不含文字的图片,接着我们就可以开始做图片汉化处理了。
运行图像处理工具【Fireworks】打开要处理的图片,如:






13.jpg (58.95 KB)

2010-12-2 03:55

这种图片比较简单,只有白色底色,直接用画笔(白色),涂上去就可以了。其实也可以直接选取然后删除,不过前提是要建立一个白色底色图层,或者,导出的时候添加一个白色底色。不然导会有透明框框,很难看。当然,如果遇到有透明背景的图片就不能这样操作了,还是要用白色画笔涂抹掉。

这里要注意一点,图片处理完成后,不要直接保存,要使用导出,然后覆盖原图,或者导出到指定文件夹就可以了。
如果处理的图片含多颜色或者渐变颜色的背景,就是比较复杂的背景图片,为了保持原汁原味。可以使用【图章】工具,如图






14.jpg (18.53 KB)

2010-12-2 03:55

【图章】的使用方式是,按键盘Alt ,鼠标右键点击一下选择起始位置,然后松开键盘,在旁边点击一下,就是覆盖位置。一般距离拉得越接近越相似。这也是PS的祛斑,去痘痘必备工具。
处理的时候把图片百分百比放大点,这样处理的工艺更好。
注意,要配合Alt键多选取和多覆盖,熟练后就很简单了。






15.jpg (15.68 KB)

2010-12-2 03:55

去除掉英文字后,直接点击【文本】工具,在原位置添加上中文,然后打开编辑窗口右下角的【滤镜】做一下特效处理,如发光,阴影之类的。






16.jpg (21.09 KB)

2010-12-2 03:55

处理后效果






17.jpg (16.8 KB)

2010-12-2 03:55

处理完后,直接【导出】覆盖到原来的文件,或者导出到别的地方。。
这里我们就处理完图片了。

更加详细的方法可以上网上找找图片处理教程,有什么不明白也可以Q我。
欢迎加入我们的汉化交流群:8023666

回编译APK文件
OK,已经汉化完毕,下面重点说说打包的问题!

在这之前,我们还要检查一下,文本文件是否保存正确,是否把文本编码方式保存为:UTF-8 。检查图片文件夹名称是否命名正确,如,【drawable】对应【drawable-zh-rCN】,【drawable-hdpi】对应【drawable-zh-rCN-hdpi】,看看文件夹内是否有没处理好的图片。

检查完毕,同样打开【APK反编译及编译】工具,找到APK文件所在的上一级路径:



安装后,弹出黑色窗口后,输入:2 【敲回车】



反编译完成后,那么就可以打包了,虽然回编译后,也生成了一个APK文件。但是,这个文件不一样定有用,因为很多APK程序内的文件不能完全被反编译出来,直接用回编译成功APK文件会丢失很多东西。所以我们需要手动打包,并签名。

那么,我们回到打开的【Goggles】文件夹,找到【123.apk】,右键:用7-Zip打开。



删掉,文件里原来的签名文件夹【META-INF】,这个先放一边。

打开,回编译的文件夹,位置在.APK/build/apk 。找到【resources.arsc】文件,把它拉到刚刚打开的【123.apk】内,替换原文件。

然后再打开 .APK/build/apk ,就会看到我们创建的图片文件夹名称改变了:



  文件夹的名称,地区简称前面的小写字母 r 没了。就这几个文件,把它们拉到,123.apk文件的【res】文件夹里面去。

之所以这样打包前面也说了,主要是反编译工具不能完全反编译所有文件,同时也排除了,其他不稳定因素。总之我们只要把汉化后的文件替换掉就可以了。

下面我们就可以签名了。当然之前说了,会提供一个更加简单的自动前面工具给大家。这里先感谢汉化浪子 老兄编写的此工具。



为什么说它更加简单,因为可以直接把apk文件直接拉进去就可以了,然后签名后方的【目标】位置。而点击【浏览】是用来批量签名的。





注意,被签名文件,和签名后的文件不能放在同一个位置。。
签名完后就可以直接安装了,测试了。。。

说在最后
由于最近时间比较紧,这个教程就写到这里了。如果有什么补充,过几天我修改一下。。
相关工具可以到这里下载:http://bbs.52android.com/thread-1312-1-1.html
同时欢迎大家加入汉化交流QQ群:8023666
  汉化交流Gtlak群:Ghome@Chatterous.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐