软件一般都会有多语言的适配,安卓中也有多语言的配置方案,主要是通过Configuration类中的Locale进行多语言的适配。
1.什么是Locale
Locale是JavaSE中一个类,用以表示本地语言的类型,可用于日历、数字和字符串的本地化。
可点击此处查看Java中的Locale类说明。
Locale由下面五个部分组成。
字段 | 含义 | 格式 | 示例 |
---|---|---|---|
language | 国际现有的语言表示 | 2或3个字母,皆小写 | zh-中文(拼音缩写),en-english |
script | 区分语言或其方言书写形式的脚本 | 4个字母,首字母大写其余小写 | Hans-简体中文,Hant-繁体中文,Latn-拉丁文 |
country(region) | 国家或地区 | 国家2个字母(大写),区域3数字 | CN-中国,US-美国,030-Eastern Asia(东亚) |
variant | 其他可用子标签未涵盖的语言或其方言的语言变体 | 字母开头至少5位,数字开头至少4位 | pinyin-须有前缀zh-Latn |
extensions | 从单个字符键到字符串值的映射扩展 | 2-8字母或数字 | ca-japanese(Japanese Calendar) |
点击此网站可以查看所有的language,region(country)等的所有列表,需要查询对应类型。
创建Locale的两种方式:
- 通过构造函数
//传入语言生成Locale,country与variant为空
Locale(String language)
//语言+国家,variant为空
Locale(String language, String country)
//语言+国家+variant
Locale(String language, String country, String variant)
- 通过Builder构建
//通过设置各个字段来构建Locale,这种方式比构造函数要精确,并且会判断传入的值是否符合Locale类定义的语法要求
Locale aLocale = new Builder().setLanguage("zh").setScript("Hans").setRegion("CN").build();
可用下面代码遍历系统中存在的所有Locale
Loca