Android应用多语言适配工作
2013-03-20 21:53 wiikii# 阅读(2047) 评论(0) 编辑 收藏 举报为了使我们所设计出来的应用能够让更多地区的朋友用上,就需要为应用适配各种当地语言,这就是我们所说的多语言适配。
对于Android平台来说(本文涉及到的知识都是基于Android4.0及其以上平台),其多语言适配已经做了大部分工作,对各种语言包的管理及切换工作都不需要自己在代码中做修发,只要应用程序按照Android规范来,基本上适配工作不需要多少时间。
在你的项目目录下,有一个 values目录(这个目录是获取相关字符,数据的默认目录,也就是当找不到最适合的资源时,就会使用这个目录下的资源),如下图所示:
这个目录下面的strings.xml,arrays.xml等是以XML文件格式将程序中用到的所有字符串保存起来的文件。该文件夹下的字串基本上是以英文保存,当然也可以使用其它语种。
当我们要适配一种语言时以简体中文(zh-rCN)为例,我们首先需要建立一个文件夹,其命名规则是values-##-r**,其中##表示语言代号(language codes),**表示国家代号(country codes),也可以只有语言代号。Android的一些开发环境(以Intellij IDEA为例)提供了方便的创建此类文件夹的方法:
- 在res上右键新建选择Android resource directory(也可以选择直接创建资源文件)
- 在弹出的对话框中resource type选择values,将Language添加到右边,输入"zh",由于中文是分简体中文跟繁体中文,是分地区的,所以也需要将Region添加到右边,输入"cn"
- 建好后,会在res目录下生成一个values-zh-rCN的文件夹。
- 接着在这个文件夹下新建相关的XML文件(如strings.xml,arrays.xml等),其中strings.xml中的string项要跟values目录下的string项名字一样,只是字符串不一样(values==>strings.xml中字串是英文,而values-zh-rCN==>strings.xml中字串则是简体中文)这就初步完成一个简体中文的资源布署工作。
当然,我们这样建文件夹麻烦点,我们也可以直接建个文件夹,文夹名字取对就行。
到目前,运行程序,可以看到在切换语到到简体中文时,我们看到的界面上的文字是显示简体中文的;切换语言到其它语言,我们看到应用的界面是默认语言英文。
对于Language Code可以查看http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes文档。
对于Country Code可以查看http://en.wikipedia.org/wiki/ISO_3166-1文档。
适配过程基本上就上面的步骤。最大的问题还是在翻译上面。
一些语言翻译出来可以会比原来的长,这就需要布局中的控件做好调整或者将翻译精简些。
一些特殊的从右至左的语言如阿拉伯语,基本上在布局文件上面下工夫就行,因为Android的TextView跟EditView都是会根据当前的语言来选择显示方式的,适配过程中不需区别对待。
后续补充完善,仅供参考。