Android应用程序汉化教程

【转自】http://jollys.javaeye.com/blog/649814

在有APKTool之前,Android软件的汉化是一件非常痛苦的事情。例如汉化狂人的汉化工具,那都是直接修改二进制文件的,首先是寻找需要修改的字符串苦难(当然汉化狂人已经做得不错了),然后修改的字符串长度还要注意中文长度不能长过原来的文字……个中郁闷就不细说了。

APKTool可以说是一个革命性的工具,有了APKTool之后,可以说,俺拽软件的汉化工作到了一个前所未有的简单程度。
闲话不说,我们用汉化实例来证明APKTool的方便简单,在动手之前,需要去APKTool的网站把工具下载下来。当然也可以下载我已经打包的APKTool.zip(Windows下使用)。

确保你的电脑已经安装了JDK1.6(JRE1.6也可以),而且安装了一个优秀的编辑软件(推荐UltraEdit),把APKTool解压到随便哪个你认为操作起来方便的目录。如果都好了,我们动手吧:



第一步,把需要汉化的文件(以汉化ColorNote为例)放到APKTool所在目录,然后命令行进入APKTool目录,执行下面的命令:

apktool d ColorNote.apk ColorNote

这句命令的意思是,对ColorNote.apk这个程序进行反编译,获得的文件放在当前目录下的ColorNote目录中。正常反编译的话,能看到下面的提示:

I: Baksmaling… I: Decoding resource table… I: Decoding resources… I: Copying assets and libs…

反编译完成,会在APKTool的目录下面,出现一个名叫ColorNote的目录,进去看看,是这个样子的!



用UltraEdit打开这个AndroidManifest.xml看看?哈哈,是纯文本文件呀!在打开res目录中的values中随便一个文件看看?也是纯文本文件啊!也就是说,只要一个UltraEdit,我们就可以轻轻松松进行汉化了(就把需要的字符串转换成中文就可以了,也不用考虑长度了!)至于要汉化哪些内容,这个大家自己研究吧,不用我详细说,也没有办法详细说的吧?(事实上,除了XML的文本资源文件外,老外写的很多程序,字符串都是hard coding在执行代码里面的,APKTool反编译会得到smali伪代码,有些在XML资源里面找不到的字符串,去看看smali的代码吧。)

中间的翻译过程我们跳过去,例如我们已经翻译好了,就在APKTool目录下执行下面的命令行:

apktool b ColorNote

这条命令是告诉APKTool,把这个ColorNote目录里的东西编译打包成APK程序

I: Checking whether sources has changed…

I: Smaling…

I: Checking whether resources has changed…

I: Building resources…

I: Building apk file…

生成的APK程序在哪里呢?在ColorNote/Dist目录里面,名字是out.apk

我们把这个out.apk文件签名之后安装看看?哈哈!完美中文汉化的俺拽程序来了!(当然,这要看汉化者的功力了。)

更多相关文章

  1. 在已有的Android工程中接入ReactNative
  2. Android在SDcard建文件夹(在Android中移动文件必用)
  3. android 2.3 修改 statusbar
  4. mac 安装Android(安卓)studio遇到的问题及解决
  5. Android(安卓)JNI环境搭建及开发入门
  6. Android(安卓)起步 环境配置 持续更新
  7. Android:Re-installation failed due to different application
  8. android 获取路径目录方法 以及 获取路径方法
  9. Android在SDcard建文件夹(在Android中移动文件必用)

随机推荐

  1. Android(安卓)中进程、Activity、Boradca
  2. 【专家专栏】Android中的防缓冲区溢出技
  3. Android(安卓)动态设置TextView的drawabl
  4. 如何修改Android5.1系统音量大小
  5. Android中 Lottie库初步实践与应用场景分
  6. Android之——使用Android(安卓)studio创
  7. 这是一篇描述 Broadcasts 的文章
  8. Android(安卓)Application Digital Signa
  9. Android(安卓)SpannableString 设置文字
  10. ArraySet 添加和删除元素分析