android 多语言的实现

本文介绍了Android项目中实现多语言版本的方法,包括创建不同语言的资源文件夹,如values-zh-rCN,values-en等,调整strings.xml文件以设置不同语言的字符串。通过更改Configuration的locale属性,可以在代码中动态切换语言。Android SDK 1.5及以上版本无需额外代码即可支持多语言。
摘要由CSDN通过智能技术生成
               

Android:多语言对应

我们建好一个android 的项目后,默认的res下面 有layout、values、drawable等目录

这些都是程序默认的资源文件目录,如果要实现多语言版本的话,我们就要添加要实现语言的对应的资源文件。

首先我们点击添加Android Xml File按钮,会出现下面的界面:

image

输入文件名:string.xml,选中Values单选框,并把下面左列表中的Region添加到左边的列表里面,并在Region输入框里输入cn,如下图

 

image

这时,上面的消息提示:如果用Region的话,需要使用语言项,和Region一样,我们把Language也添加到右面的列表里面,填入zh,如下图

image

 

 

 

点击Finish按钮,资源文件就会建好了,目录:res\values-zh-rCN(其实上面一大堆操作,就是为生成这个目录

image

默认生成的string.xml的代码:

<?xml version="1.0" encoding="utf-8"?><resources><string name="hello">Hello World, Test!</string><string name="app_name">Test-Multilingual</string></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:英文

imageimage

zh-cn:中国大陆

imageimageimage

zh-tw:台湾

imageimageimage

 

因为设置了region为CN,所以zh-tw的时候,没有找到res\values-zh-rTW的目录,加载了默认的res\values目录下的string.xml

 

这里只用了Values做例子,其余的Resource都可以,图片了,布局了等等

这里只是简单的介绍了一下多语言对应,剩下的大家自己深入研究吧!

 

原创,欢迎转载,请注明出处和作者:www.cnblogs.com/wuyunan Ready Wu


nternationalization (国际化)简称 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);



Android sdk从1.5开始,不在需要在程序里边单独设置多语言代码,您只需简单的修改基本res配置,就可以实现多语言版本.

首先在res/valuse/strings.xml中如下设置英文:
<string name="PIM_SETTING_REG_CHA"> Register</string>
<string name="PIM_SETTING_LOGIN_CHA"> Login</string>
<string name="PIM_SETTINGS_CHA"> Settings</string>


然后在res/values-zh-rCN/string.xml中如下设置中文:

<string name="PIM_SETTING_REG_CHA"> 注册</string>
<string name="PIM_SETTING_LOGIN_CHA"> 登陆</string>
<string name="PIM_SETTINGS_CHA"> 设置</string>

最后教你调用这些字符串的方法:

这样子:getString(R.string.PIM_SETTING_REG_CHA).toString();

下面是例子:
map.put("title", getString(R.string.PIM_SETTING_REG_CHA).toString());


其他的日文啊,法文啊,如法炮制,呵呵!

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值