以前就知道Android的多语言实现很简单,可以在不同的语言环境下使用不同的资源什么的,但是一直没有实际使用过。 最近公司的项目要用到多语言于,是就研究了一下——果然很简单啊。

要使用多语言,首先肯定要有为不同语言准备的资源。

只需要按照Android提供的规范,对不同语言下的资源文件夹进行对应的命名即可。
比如我们知道/valus是Android的默认简单资源(字符串、数值、颜色等)的文件夹,那么对不同语言下提供的values文件夹命名方式就形如:

/values-zh
/values-zh-rCN
/values-zh-rTW

  • 其中values保持不变;
  • 后缀的zh表示语言;
  • 后缀的rCN、rTW其中‘r’是一个标记,表示后面跟着的CN、TW是国家或地区标志。
所以以上三个资源文件夹表示所对应的语言环境分别为:

中文
中文-中国 (即中文简体)
中文-台湾 (即中文繁体)

默认情况下,Android会根据系统的语言地区设置,自动选择对应的资源。

会首先尝试语言地区全匹配,如果没有权匹配的资源包,则会尝试匹配语言,最后则会取默认的。
比如如果Android系统的语言地区是中文简体,则首先会尝试从/values-zh-rCN中获取资源,如果没有此文件夹或者文件夹中没有响应的资源,则会尝试/values-zh,都获取不到的情况下即从/values中获取。
/values是必须存在的,否则不能通过编译

当然,也可以在代码中手动进行控制,指定所选择的语言:

   Configuration config = getResources().getConfiguration();//获取系统的配置   config.locale = Locale.TRADITIONAL_CHINESE;//将语言更改为繁体中文   getResources().updateConfiguration(config, getResources().getDisplayMetrics());//更新配置


这里是一个很简单的DEMO:http://download.csdn.net/detail/barryhappy/7176709
一个多语言版的Hello world,默认根据系统语言选择,并可以手动切换。



参考:

  • 语言缩写
  • 国家地区缩写
  • Providing Resources | Android Developers
  • String Resources | Android Developers
  • Localizing with Resources | Android Developers

同步发表在 http://www.barryzhang.com/archives/174

广告一下我的新博客,欢迎访问哈~:BarryZhang.com  


更多相关文章

  1. Android中图片实现按钮点击效果
  2. Android修改Eclipse 中的Default debug keystore路径,以及修改and
  3. Android(安卓)中文API (61) —— ViewSwitcher
  4. Android中文API(134) —— Account
  5. Android(安卓)aapt 工具介绍
  6. Android中文API(132) —— GpsSatellite
  7. Android中文API(136) —— Bitmap
  8. Android中文API(136) —— GeoCoder
  9. ANDROID 开发资源网站列表(2008年1月14日)

随机推荐

  1. MySql批量插入优化Sql执行效率实例详解
  2. 总结的一些android公共库
  3. android 双击事件
  4. Android(安卓)尺寸单位转换和屏幕适配相
  5. Android(安卓)异步加载解决方案
  6. J2ME to android之学习笔记
  7. Zxing 竖屏切换 android
  8. Android(安卓)SDK+Eclipse开发环境搭建
  9. [Android] 旋转照片/图片
  10. Android小白成长之初级篇:NDK配置