以前就知道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里面的Style(样式)和主题(Theme)资源
  2. 从零学Android(四)、适配不同的Android设备
  3. Android(安卓)aapt实现资源分区(补充携程aapt源码)
  4. Android修改Eclipse 中的Default debug keystore路径,以及修改and
  5. Android中文翻译组 - 简介
  6. Android中图片实现按钮点击效果
  7. Android修改Eclipse 中的Default debug keystore路径,以及修改and
  8. Android的多语言实现
  9. Android(安卓)SDK 1.5中文版 (Application基础—1)

随机推荐

  1. Android获取用户已安装app列表
  2. Android(安卓)平台上,界面元素在定时器的
  3. 【Arcgis for android】相关教程收集自网
  4. android五种布局模式
  5. Android(安卓)Service AIDL 远程调用服务
  6. Android开发AsyncTask异步处理任务
  7. Android(安卓)为【apk】文件签名,增加修改
  8. 打开Android开发软件eclipse时出现parseS
  9. Android文本输入框EditText属性和方法说
  10. Android如何下抓取tcp数据包