Android Studio 中对Android进行国际化

Android Studio 中对Android进行国际化

国际化要求App能够根据Android系统设置的语言类型或者用户的设定返回对应语言的界面。 英文为internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符。

通常一种语言的表示,采用“语言_地区”的形式,例如:
* zh_cn 简体中文
* zh_hk 繁体中文(中国香港)
* zh_tw 繁体中文(中国台湾地区)
* en_us 英语(美国)

在Android中国际化包括两种方式:

  • 方式一:Android系统语言可以在系统设置中进行设置,APP的语言随着Android系统语言的改变而改变;

  • 方式二:通过代码中设置APP的语言,此种方式仅仅对本APP的语言进行设置,Android系统设置中更改语言设置不会改变此APP的语言。

方式一

res目录中生成针对不同语言的values:

1.在Android中,通常把字符串存放在工程资源目录中的strings.xml文件中,工程结构切换到Android模式下,打开res/values目录下有string.xml文件,如图:

这里写图片描述

2.鼠标右键单击values文件夹,弹出菜单中选择“New->Values resource file”,弹出“New Resource File”对话框,如图所示:

这里写图片描述

3.输入文件名为strings,并且Available qualifiers中选择Locale,根据APP国际化的语言要求,分别在Language和Specific Region Only中选择对应的语言和地区,如图所示:

这里写图片描述

4.点击OK生成相应语言的values文件夹,并且values文件夹中生成strings.xml,将该strings.xml文件中字符串改为相应语言文字,这样就实现了对这种语言的支持。例如我们想让APP支持简体中文、繁体中文(台湾)、英语(美国),那么我们的values文件夹和strings.xml分别如下:

简体中文values文件夹为values-zh-rCN,strings.xml内容为:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="content">我是中国人</string>
</resources>

繁体中文(台湾)values文件夹为values-zh-rTW,strings.xml内容为:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="content">我是中國人</string>
</resources>

英语(美国)values文件夹为values-en-rUS,strings.xml内容为:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="content">I am a Chinese</string>
</resources>

我们让TextView中显示“content”字符串。

我们运行demo测试可以发现,当我们在Android系统的系统设置中分别设置语言为简体中文、繁体中文(台湾)、英语(美国),页面显示文字也相应的切换为了对应语言的文字。

方式二

在按照第一种方式生成所需语言的values文件夹和strings.xml文件后,在APP代码中设置指定语言:

//获得res资源对象
Resources resources =getResources();

//获得设置对象
Configuration config = resources.getConfiguration();

//获得屏幕参数:主要是分辨率,像素等。
DisplayMetrics dm = resources.getDisplayMetrics();

//英语(美国)
//config.locale = Locale.US; 

//繁体中文(台湾)
//config.locale = Locale.TAIWAN; 

//简体中文
config.locale = Locale.CHINA; 

resources.updateConfiguration(config, dm);

建议上面代码填写在setContentView方法前,否则需要重新Activity才能生效。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值