android 动态改变语言,Android-国际化(多语言)切换详解及实例

本文详细介绍了Android应用实现国际化的过程,包括手动和一键国际化的方法。通过创建不同语言的values目录,存储对应语言的strings.xml文件,然后在代码中使用ContextWrapper动态切换语言。此外,还提供了一个实用的AndroidLocalizationer插件,简化一键国际化操作。最后,给出了一个封装的ContextWrapper示例,用于在运行时动态改变应用的语言环境。
摘要由CSDN通过智能技术生成

internationalization(国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化),简称L10n。

一.原理:

Android中实现国际化相对来说还是简单的,因为Android有很独特的资源管理方式。代码可以不和资源发生关系,我们通常通过 R 文件提供的索引来间接的引用某一个资源。

把显示的字符串都转换成文件资源,再用代码代码提取,也就是把字符串存储在对应的values目录下。

二.实现步骤:

国际化切换可以手动国际化,也可以一键国际化。

1.手动国际化 为支持多国语言,在res/中创建一个额外的values目录以连字符和ISO国家代码结尾命名,比如values-es/是为语言代码为"es"的区域设置的简单的资源文件的目录。Android会在运行时根据设备的区域设置,加载相应的资源。 以中英文切换为例: 如果默认是中文就不用建立相应的values文件了,因为系统找不到对应的资源直接会走默认的。 (1).首先建立一个values资源文件values-en/放进对应的strings.xml。

17f3453b5bc9

image

添加不同区域语言的字符串值到相应的文件就可以了。

(2).UI显示字符串用代码提取: 生成对应的string文件不用每个都改,这样很麻烦,教大家一个简单方法如下:

17f3453b5bc9

image

这样直接就

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值