阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

老司机

让外语APP统统显示中国话

2015-2-11 12:34| 发布者: 赵春辉1233321| 查看: 207| 评论: 0

摘要: Android是一个开放的平台,有许多人为它提供应用程序,不过其中有许多优秀的应用是外国人开发的,应用界面多为外文,国人用起来很不顺手。如果实在找不到汉化版,能否自己汉化呢?我自己的英语还行,翻译没问题,只 ...

Android是一个开放的平台,有许多人为它提供应用程序,不过其中有许多优秀的应用是外国人开发的,应用界面多为外文,国人用起来很不顺手。如果实在找不到汉化版,能否自己汉化呢?我自己的英语还行,翻译没问题,只是不知道方法。

【解题思路】

首先要了解一下Android应用的APK文件的结构。细心的同学在日常使用过程中可能会发现,右击apk文件会出现诸如“使用WinRAR打开”的选项。其实,这是因为apk实际就是采用的zip格式对主体文件的一个压缩包。打开压缩包,你会看到apk文件中井然有序的文件及文件夹结构(图1)。

1402apkhh01

lib:包含了程序运行所需要的库(Linux的库文件是so)。

META-INF:软件如果想安装,必须要签名,这个文件夹便保存了签名的证书。

res:保存了app的控件布局、图片和所需要的资源文件。

AndroidManifest.xml:它决定了app可以运行在什么版本上,调用了哪些函数和app的权限。

classes.dex:app的核心文件,保存了app的大多数代码。

resources.arsc:保存了app的一些字符串资源。

除了前两个,后面四个文件是每个apk所必备的。

另外,汉化有风险,请大家在操作前,一定要做好备份。

【解题方法】

了解了结构,下面就来进行实际操作。不过开始之前要准备一下JAVA环境。Android的大多数程序都是基于JAVA的,所以部署好JRE环境是Android下任何操作的基础。其实很简单,只需要到http://www.java.com按照提示下载安装JRE环境即可。另外准备好一个待汉化的APK文件。

方法一:巧用工具轻松汉化

第一个方法要借助工具AndroidResEdit来完成。启动AndroidResEdit 1.5,直接将APK文件拖入程序界面内,展开res(资源)文件夹,选择Resource.arsc,就会出现右边的一大堆字符串。

此时不要惊慌,点击“文件→导出字典→大写字母开头词条”(图2),这样我们便得到了一个字典文件。

1402apkhh02

接着打开字典文件,会发现格式均为“字符串|”的形式(图3),我们只需将汉化过的字符串填写在“|”的后面并保存即可。

1402apkhh03

再次进入AndroidResEdit,按下Ctrl+R快捷键导入字典,字符串的汉化便出现了。

若此时发现有忘记汉化的字符串,可以直接在下面的框中输入翻译并点击汉化即可(图4)。

1402apkhh04

翻译完成后点击“保存文件”,程序即会自动打包apk文件并签名,为同目录下的“xxxx-汉化签名版.apk”,直接拷贝到Android手机上就可以安装使用啦。

方法二:反编译程序后的汉化

上面的方法虽然简单,不过细心的你会发现有一些字符串没有翻译到。这是因为字符串并不全在Resources.arsc中,还有一部分存在Classes.dex中。Classes.dex本是代码的编译文件,但有些习惯不好的开发者会直接把字符串写在代码中。这时候的汉化,我们就需要Apkdb及UltraEdit(或者Notepad++)来协助了。

安装好Apkdb后,右击apk文件(不能是中文名),选择“使用APKDB反编译”项,弹出窗口后按1并回车(图5),即会在APK文件目录下生成与APK文件同名的目录,这便是APK文件的源代码。

1402apkhh05

资源文件汉化

打开反编译得到的目录,进入\res\values文件夹,会发现一堆xml文件(图6)。打开其中的Strings.xml,其中都是“字符串”这样的字符,注意一定要保持和不变,只翻译中间的字符串(图7)。翻译完成,在res目录下新建values-zh-rCN文件夹,这是告诉系统当系统语言是中文时则使用这个语言文件。

1402apkhh06

1402apkhh07

Smali文件汉化

返回根目录,查看AndroidManifest.xml,找到形如“

1402apkhh08

打开一个Smali文件,你会发现你基本什么都看不懂。不要害怕,搜索“const-string”,找到形如“const-string vX”的字串,其后为待汉化的字符串(图9)。翻译时要保持这种格式,不能丢失双引号,仅翻译双引号里的内容就行了(图10)。

1402apkhh09

1402apkhh010

当汉化完成后,右击文件夹,选择“使用APKDB回编译”,再次按1并回车,程序即会自动编译并在源码目录下生成“已编译-xxxxx”文件夹。只需要将其中的apk文件安装至手机即可享用自己翻译的软件啦。

小提示:

不是所有的字符串都要汉化,一般来说,只有开头为大写字母的字符串才需要汉化。如果后边带有$1、$2之类的符号的文件一般也不需要汉化。

另外,有些不是纯文本,而是图片形式的文字,这需要通过图像软件编辑图像,相对就更复杂点了,这里暂且略去。

          本技巧转自电脑爱好者~更多实用小技巧关注星梦社区哦!

最新评论

返回顶部