Android 的多语言和国际化网上文章比较多, 我也就不重新写了, 这里主要收录两个比较好的,供技术积累和参考。
1.转载:http://blog.csdn.net/fenghome/article/details/5769446
2. 转载:http://www.cnblogs.com/wuyunan/archive/2009/09/16/1567960.html 截图说明
3 转载, 程序中实时切换语言:http://www.cnblogs.com/ctou45/archive/2011/09/07/2169522.html 附源码
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.转载:http://blog.csdn.net/fenghome/article/details/5769446
Internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化 ),简称L10n。
一般用 语言_地区的形式表示一种语言,如 zh_CN, zh_TW.
各国语言缩写http://www.loc.gov/standards/iso639-2/php/code_list.php
国家和地区简写http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
在Android工程的res目录下,通过定义特殊的文件夹名称就可以实现多语言支持。比如我们的程序兼容 简体中文、日文、英文、法文和德文,在values文件夹中建立默认strings.xml,再建立 values-zh-rCN(zh表示中文rCN表示简体,类似还有美式英语,奥式英语)、values-ja、values、values-fr和values-de文件夹。(可以用开发工具建:见http://www.cnblogs.com/wuyunan/archive/2009/09/16/1567960.html)
在每个文件夹里放置一个strings.xml,strings.xml里是各种语言字符串。如果涉及到参数配置类xml文件夹也要改成xml-zh、xml-ja、xml、xml-fr和xml-de。这样在android的系统中进行语言切换,所开发的程序也会跟着切换语言。
在代码中切换语言:
Resources resources = getResources();//获得res资源对象
Configuration config = resources.getConfiguration();//获得设置对象
DisplayMetrics dm =resources.getDisplayMetrics();//获得屏幕参数:主要是分辨率,像素等。
config.locale = Locale.SIMPLIFIED_CHINESE; //简体中文
resources.updateConfiguration(config, dm);
2. 转载:http://www.cnblogs.com/wuyunan/archive/2009/09/16/1567960.html
我们建好一个android 的项目后,默认的res下面 有layout、values、drawable等目录
这些都是程序默认的资源文件目录,如果要实现多语言版本的话,我们就要添加要实现语言的对应的资源文件。
首先我们点击添加Android Xml File按钮,会出现下面的界面:
输入文件名:string.xml,选中Values单选框,并把下面左列表中的Region添加到左边的列表里面,并在Region输入框里输入cn,如下图
这时,上面的消息提示:如果用Region的话,需要使用语言项,和Region一样,我们把Language也添加到右面的列表里面,填入zh,如下图
点击Finish按钮,资源文件就会建好了,目录:res\values-zh-rCN(其实上面一大堆操作,就是为生成这个目录)
默认生成的string.xml的代码:
xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Test!string>
<string name="app_name">Test-Multilingualstring>
resources>
修改刚刚生成的res\values-zh-rCN目录下的string.xml:
xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">测试多语言string>
<string name="hello">你好 多语言测试string>
resources>
运行结果:
en-us:英文
zh-cn:中国大陆
zh-tw:台湾
因为设置了region为CN,所以zh-tw的时候,没有找到res\values-zh-rTW的目录,加载了默认的res\values目录下的string.xml
这里只用了Values做例子,其余的Resource都可以,图片了,布局了等等
这里只是简单的介绍了一下多语言对应,剩下的大家自己深入研究吧!
3 转载, 程序中实时切换语言:http://www.cnblogs.com/ctou45/archive/2011/09/07/2169522.html 附源码