hello 大家好我是西西稀饭。考虑到后面的时间我将忙起来了。可能没有那么多时间来折腾了。加之论坛有友友有兴趣想学。我就把我汉化的过程与经验写出来。跟大家学习交流。
另外 我的帖子一般会写的废话比较多,所以喜欢简洁,或者已经入门的友友,直接看这个帖子,http://bbs./t-55-1-1.html
本文图比较多,这个博客的功能又比较蛋疼,无法编辑大小(文字图片都不可以!),图看不清楚 的 可以点击看大图,字看不清的,只要不是IE,都可以ctrl+鼠标滑轮放大的
第一节、环境配置
这里借用下坛友zzxxbb发的教程,嗯 比较方便,感谢
----------------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文件夹下试试吧!
重启之后,你就会看到部分地方被汉化了!!