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。
image
添加不同区域语言的字符串值到相应的文件就可以了。
(2).UI显示字符串用代码提取: 生成对应的string文件不用每个都改,这样很麻烦,教大家一个简单方法如下:
image
这样直接就