分享

安卓系统的简单汉化教程与提示,实例一 | 西西稀饭‘s studio

 cshts 2012-08-17

安卓系统的简单汉化教程与提示,实例一

hello 大家好我是西西稀饭。考虑到后面的时间我将忙起来了。可能没有那么多时间来折腾了。加之论坛有友友有兴趣想学。我就把我汉化的过程与经验写出来。跟大家学习交流。

另外   我的帖子一般会写的废话比较多,所以喜欢简洁,或者已经入门的友友,直接看这个帖子,http://bbs./t-55-1-1.html

本文图比较多,这个博客的功能又比较蛋疼,无法编辑大小(文字图片都不可以!),图看不清楚 的 可以点击看大图,字看不清的,只要不是IE,都可以ctrl+鼠标滑轮放大的

第一节、环境配置

这里借用下坛友zzxxbb发的教程,嗯  比较方便,感谢

-------------JDK环境变量设置------------------
一:下载安装
下载安装JDK http://java./javase/downloads/index.jsp
当前版本为jdk1.6.0_21
下载将其安装在默认路径C:\Program Files\Java\jdk1.6.0_21
一路下一步
完成
二:设置环境变量
回到桌面→右击我的电脑→属性
来到 :控制面板\所有控制面板项\系统(win7)
点击 右侧 高级系统设置
点击 高级菜单下环境变量
点击 系统变量(s)下 新建
弹出 新建系统变量
变量名 填入 PATH
变量值 填入 C:\Program Files\Java\jdk1.6.0_21\bin
确定
新建系统变量
变量名 填入CLASSPATH
变量值 填入.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
确定
新建系统变量
变量名 填入JAVA_HOME
变量值 填入C:\Program Files\Java\jdk1.6.0_21
确定环境变量设置完成
三:测试
开始 运行 cmd 回车
输入java -version
如果能像上图那样显示JDK的版本,说明“PATH”变量设置没有问题
如果有问题,检查PATH变量设置,输入“echo %PATH%”。
看其中是否存在“C:\Program Files\Java\jdk1.6.0_21\bin”。
如果不存在则返回到环境变量设置中检查

----------------SDK  环境变量配置-----------------

下载android-sdk_r04-windows到任意路径

Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将  你的SDK路径/tools的完全路径加入其中。
通过将 你的SDK路径/tools加入系统路径,在运行adb和其它一些命令行工具时就不需要键入完全路径名了。需要注意到是,当你升级了SDK后,如果安装路径有变动的话,不要忘记了更新你的PATH变量的设置,将其指向变动后的路径。

=================================================

第二节、工具

我们所用到的工具。这里我比较推荐用来汉化的是apk manager。下载地址自己百度,版本要4.9最新版。再需要一个能够显示xml文件行数的工具,我自己是用的ultra edit,看到其他教程都自己推荐的有,我也不记得,反正自己会用就行。

以上两个工具都自己百度吧。

另外为了后期方便,可以再下载个doapk,如果想进一步修改ROM,可以下载个smali

=============================================

第三节、熟悉工具&尝试汉化!

我们主要的工具是apk manager。这里就来介绍一下。

我们使用的例子,是每个不同的版本必须手动汉化的,framework-res.apk。

我这里拿JPM版本的汉化来讲

当然中间可以偷懒,待我后面再讲

首先,打开我们解压后的apk manager,看到这样的文件夹

图片有很好的解释了。首先,我们放framework-res到place****modding文件夹(下面简称modding),打开主程序,得到这样一个界面

不需要了解更多,只需要记住两个数字,9,11

9,是反编译你放在modding文件夹的apk文件,反编译之后得到的文件在project文件夹里。文件夹名与文件名相同

11,是编译,你在修改好文件后,就可以执行会这个命令啦,打包好的文件放在modding文件夹里,文件名为原文件名前面加上unsigned。

我们现在来试试吧

把我们需要汉化的framework-res放在modding文件夹内,运行script.bat,输入9,回车

正在反编

过一会,看到又回到主界面了?其实这个时候就反编好了 。关掉它,打开project文件夹就看到我们的反编好的文件啦~

打开文件夹,看到这样一个情况

res文件夹就是我们的主要要修改的地方了(res这个单词大概代表resource吧)

打开

别晕

那么多文件夹,我们删掉不需要的语言包,也就是raw-**的文件夹,还有values-**的文件夹。不过注意中间有values-land,values-port-mdpi,文件夹不能删,注意点,其他的语言包都可以删。

啊。。。世界清静了。。。

这个时候我们就要添加我们的中文语言包了。怎么添加呢?这个时候我推荐弄一个用来对照的framework-res文件,。推荐用我的汉化文件,我的Xdroid Mix2.0的汉化,是基于港版的原生中文,再添加修正没汉化或者汉化不准确的地方,达到了完美汉化。所以前面我推荐还准备一个doapk,因为apk manager同时只能反编译一个文件,如果删了这个framework-res.apk,再弄上用来对照的,不仅可能会弄混,还很麻烦。

而doapk可以直接把文件反编译到指定位置,为了方便我一般是直接把反编译后的文件指定在桌面。

打开对照文件的文件夹,我们看到,有这样的文件

这些有-zh-rCN后缀的就是我们中文的语言包啦,但最主要的语言包是values-zh-rCN

把这些语言包都复制到我们要汉化的文件夹这边来吧~

打开values-zh-rCN有这样四个文件,分别对应values文件夹中的相应的文件,所以要找到原版英文进行对照的话,就在values问佳佳里面找吧。

一般来说,汉化JPM这个系统,如果是拿JPF(也就是用期待的汉化包)来进行对照,需要修改的地方很少,但汉化会有一定的偏差。如果拿港版或者台版来进行对照,则有的地方不会汉化到,所以自己还是需要修改一点的。

汉化就是修改string中间的文字,比如上面这段,汉化之后就会成这样

我尝试过,手动汉化这个framework-res,花了一下午的时间,几乎只进行了三分之一。

所以在这里给期待大神热烈的掌声。不管他是不是手动汉化,作为我们5800的汉化第一人,在这里的心血一定是不少的。

当然现在有前车之鉴,我们可以方便的拿别人的包来进行,对照,甚至直接进行替换。

不过,未来我们58升级2.2.1了,新增功能了,就不能直接替换文件了

完成汉化之后,我们就要进行打包了

==================================

第四节、这里要对各种打包出现的错误进行提示了

首先,完成汉化之后,回到apk manager的目录下,打开主程序,输入11并回车,打包

啊啊啊啊   这是肿么了!

恩  在打包的时候出错了,这里就不要按任意键继续 了,关掉吧,打开目录下的log.txt,这里就是我们的日志文件,我推荐每次进行编译之前,都删一次,方便查看。

生成了200多KB的错误日志。。。这个错误可真不少,不过别怕。。。我们来看看错误提示

看英文,lib图片错误:读取错误

错误:处理PNG图片失败。。。。。。。。。。。.9.png

意思就是说这个文件名为*.9.png的图片读取错误了,是肿么回事呢?我们按照这个路径打开,这个图片,我们看到

前面一个打不开的图片,文件名为*.9.png的正是我们读取错误的图片,后面一个则是正常的.png文件,而在apk文件没有反编译的时候我们用rar打开apk文件,可以看到,只有一个名为.9.png的图片,并且这个图片跟我们这里的.png图片一模一样。那这里肿么分佳节又重阳裂成两个文件了呢?我也不知道,我只知道一件事,删掉这个fu-cking的.9.png图片吧!

看我们的log文件,类似于此的图片有很多,那么我们就开着缩略图,检查drawable-mdpi和drawable-ldpi文件夹下这种读取不了的文件吧!!!找到他们,删除掉即可!!

注意,这个错误的9.png(不是所有的.9.png都是错误图片,一般缩略图显示不出来的才是)

清除完成之后,删掉我们上次的log文件,回到我们的script,继续按11+回车打包,这次肿么还是有错误???别急,关掉,再次打开log文件

这次好多了,只剩9kb的错误了(如果用台版或者我的文件做对照,则有11kb),呵呵!

如果还是有200多kb,则一定是你没删除干净,再检查一下!

我们来看一下吧

说是values中的public.xml中的****行有错,错误呢,是某个string没有定义,

怎么回事呢、。?这是我们删除多余语言包造成的。

怎么办呢?两种解决方案:一、删掉在public中的这行。二、不删除多余语言包

我们一般是执行第一种方案

当然这个比较麻烦,log中的行数又不是按大小顺序来的,我叫朋友帮我写了个JAVA的代码,在eclipse中运行,就可以把错误代码排序,方便查找,需要的友友Q我

好 ,那么我们就去删除代码吧,显示行数的软件我前面说过,用ultra edit之类的工具

=============================

这里还有另外一种错误

说这里的ID太大了。

这个一般是深度定制过的framework-res才会出现的问题,比如说美化过,或者修改过功能的(我在写教程的时候就遇到了,因为我拿的原版的framework-res是加了关机菜单的,就会有这个问题)。如果你把这个值改小,涉及到的很多代码都要改,不推荐,所以建议你遇到这个情况,最好就不要乱修改了,只有拿原版的framework-res来进行汉化后再美化或者修改。

不过2508行,这里是个特例,经验告诉我,这一行是必删的,所以这里删掉没事,不过添加的关机菜单就会失效,并且按电源键就会死机(这且是题外话,特殊情况)

终于,我们删干净代码后,打包,按11回车,看到了这个画面

不管是不是系统apk,都选y

这句是p话,直接选择y

一串串的英文过去,停在 了这,这个时候不要动了哦!小化这个窗口,看我们apk manager的目录下,是不是多了一个keep文件夹?打开!

这个时候看到的就跟我们用rar打开apk的效果差不多了,这里的resource.arsc就是语言包,包括了所有的xml文件。上面这个图的英文就是说要你删掉在keep中你修改过的文件,没修改的就不用删除,就keep了,一般汉化只需要删掉resource.arsc

删掉后,回到script的界面,按任意键继续

又是刷刷刷的英文过去,最后停顿一下,说everything is ok,回到主菜单,好,你会发现刚才的keep文件不见了,然后,会在modding文件夹下多一个unsigned***.apk,这个就是我们生成的文件了,也就是汉化后的文件!

别急!你也别忙去复制这个未签名的apk

用winrar打开这个unsigned文件,再同样打开我们放在这里的原来未汉化的apk,把unsigned里面的resource.arsc拖过去!

显示这个,点确定

大功

告成!!!

至于原来的unsigned文件呢?没用了,删掉即可

那么,接下来,赶紧把这个framework-res弄到手机里的system/framework文件夹下试试吧!

重启之后,你就会看到部分地方被汉化了!!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多