Android APK软件汉化整合与探讨

时间:2022-12-21 03:47:09
Android平台越来越大众化,其应用需求也很多,但经常会遇到要用的应用,有不适配的地方,就语言汉化方面进行下探讨,希望能得到更多支持。
首先Android平台,能进行汉化的软件很少,也汉化不全面,如apktool、APK Editor、MT Manager、AETool等,基本上只能汉化arsc,对xml和dex支持的不太好,希望日后会有完善;以下是学习收集整合的PC端汉化流程供参考。
1.Java环境
①下载安装JDK开发工具包可前往ORACLE公司官方网站下载,一般是
jdk-7u21-windows-i586对应系统版本是32位,jdk-7u21-windows-x64对应的系统版本是64位。需要根据自己电脑的实际情况进行配置。
②以Windows 7系统为例:右击“我的电脑” -> 属性 -> 高级系统设置 -> 高级 -> 环境变量,在该环境变量中配置三个变量名和变量值,点击“环境变量”后,在“系统变量”下点击“新建”按钮,在”新建系统变量“窗口输入变量名 JAVA_HOME ,变量值 C:\Program Files\Java\jdk1.7.0_25 ,点击“确定”按钮。该变量值是JDK安装的路径。
③再次点击“新建”按钮回到”新建系统变量“窗口输入下面变量名和变量值 ,点击“确定”按钮,如:变量名 CLASSPATH ,变量值 %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
④在“系统变量”中定位到 Path 变量名,由于该变量名已存在,因此无需新建系统变量,只需双击它,在“编辑系统变量”中将 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 添加到现有变量值的前面(起始位置),点击“确定”按钮。
⑤测试环境变量的配置是否正确,在WIN7系统左下角点击“开始 -> 运行”后,输入 cmd 命令来打开DOS命令行窗口,在DOS命令行窗口中输入 javac,若按回车输出如出现相关帮助信息即为配置成功。如果不能正常显示帮助信息,通常会是“javac不是内部或者外部命令”的错误,这说明在JAVA环境搭建过程中出了错误,请卸载JDK开发工具包,重新启动电脑,再重新搭建JAVA变量环境重试。
2.汉化arsc
打开汉化软件,以汉化狂人为例打开解压出来的resources.arsc文件,比较简单的办法就是直接将resources.arsc按住,拖拽到汉化狂人的界面上即可。界面里对文件进行一步分析,如果是“res/”这个开头的,它们明显都不是单词或语句,不是要汉化的,(在其他软件中也是如此),arsc文件中的“res/”开头的都排除掉,不光是开头的几行有,有的软件在一些要汉化的单词语句中间也会夹杂着“res/”开头的语句,这些一定都不用动;也就是说,arsc汉化,只汉化中间的一部分,开头“res/”那些不要汉,后面attr往后的不要汉,有的时候,attr这个单词前面还有一些不是大写字母开头的,例如什么name_xx这样的,他们看起来会比较规律,都不是大写字母开头,都有下划线,都有符号,这样的不要汉,它们是用来定义函数的字符串。汉化好arsc,点击保存汉化,将汉化好的arsc文件替换原来压缩包中的arsc。
3.汉化xml
打开res文件夹,会看到很多xml文件,如果有编程经验,就会知道每个xml文件的文件名定义,就能快速找到要汉的文件;对于不懂这些的,就只能一个一个的,把每个xml都用汉化狂人打开看看,从中寻找要汉化的地方;相似汉化arsc,只要汉大写字母开头的单词或语句就行,小写字母开头,有下划线的,不用汉。如:text,单独的一个小写字母开头的单词,也不用去汉。只有当软件中看到有个别单词是小写开头时,XML中又有这个单词,联系上下文,觉得确实是那个单词,就可以汉了,这种情况很少出现的。再看settings.xml,也会发现要汉化的地方。http://*不用去修改,也可以根据情况来修改;ListView这种,两个或多个首字母大写的单词连在一起的,也不用汉化;软件中一般也不会出现的单词,通常不用汉化。
4.汉化dex
对DEX文件进行汉化,就需要先对dex进行反编译,也就是解包dex文件;把需要反编译的classes.dex文件放到Xtemp目录下(目录名自定),然后按住classes.dex拖拽到dex.bat上,按“1”,就会自动解包了,等出现内容时,就说明解包成功。上述是在windows7系统下的操作,xp用户的操作略有不同,xp用户请在C盘根目录下创建一个android目录,将xp版本的dex解包工具Xtemp文件夹放到android目录下,然后将classes.dex拖到undex.bat上就可以解包了。解包完成,就会在Xtemp目录下看到一个新生成的classes文件夹,这个就是反编译后解包的文件所存放的目录。进入classes文件夹的下级目录,会看到很多.smali后缀的文件,这些以.smali为后缀的文件就是反编译后的文件了,也就是要汉化修改的文件。由于文件数量之多,所以借用Notepad++批量搜索文件夹内所有的文件内容;如果想快速找到未汉化的地方,可以把汉化好的arsc和xml先打包,然后安装,软件中没有汉化到的还显示英文的地方,可以通过Notepad++搜索,具体步骤:选择上方菜单栏中的“搜索”,选择“在文件中查找”,然后点击“目录”后面的小按钮,找到classes目录,并选择它,在“查找目标”后面的输入框中输入你要查找的单词,稍等一会,就会为搜索到全部文件中的单词;汉化dex时有汉错或是把不该汉的地方汉化了的,就有可能打包失败,或在使用软件时出现错误,这都需要日积月累的经验。打包dex时,只需将classes文件夹拖到dex.bat上,然后按2,就开始打包,当出现命令行中的提示时,说明打包成功,并在xtemp文件夹下生成一个新的out.dex文件,只需重命名为classes.dex替换原文件即可。Xp下的用户在打包dex时,请将classes文件夹拖拽到redex.bat上,出现相关界面时说明打包成功,并会在同目录下创建一个out.dex文件,只需重命名为classes.dex替换原文件即可。
5.打包签名
找到原版的apk文件,用winrar打开,将已经汉化好的arsc,xml和dex文件按照原文件目录替换到压缩包内,就是将汉好的文件拖到原版的压缩包内,需要注意,汉化好的xml一定要放到原文件所在的目录下。再把apk文件中原有的签名删掉,它们在META-INF文件夹下,CERT.RSA和CERT.SF这两个文件删掉,放在Auto_sign文件夹下,按住apk文件,拖拽到Sign.Bat上开始打包,签名成功后即可安装。