0. Locale方法
Locale locale = Locale.forLanguageTag("zh-Hans-CN");
执行如下方法返回字符串如下:
方法 | 英文下执行 | 中文下执行 | 备注 |
---|---|---|---|
getLanguage() | zh | zh | |
getCountry() | CN | CN | |
getDisplayLanguage() | zh | 中文 | |
getDisplayCountry() | CN | 中国 | |
getDisplayName() | zh (Hans,CN) | 中文 (简体中文,中国) | |
getISO3Language() | zho | zho | 传入不支持的字符串会发生Exception |
getISO3Country() | CHN | CHN | |
getDisplayScript() | Hans | 简体中文 | |
getDisplayVariant() | |||
getScript() | Hans | Hans | |
getVariant() | |||
toLanguageTag() | zh-Hans-CN | zh-Hans-CN | |
toString() | zh_CN_#Hans | zh_CN_#Hans |
1.数据库字段
Setting数据库字段:system_locales
Setting数据库取值:zh-Hans-CN 或者 zh-Hans-CN,en-US,chr-US,th-TH,dje-NE
说明:为一个值是代表当前值,多个值的时候如下如所示,代表可选语言(当前添加了5种,第一个值为当前语言,还可以点击添加语言继续添加)
2.获取当前语言:
|
3 获取支持的语言
配置:frameworks/base/core/res/res/values/locale_config.xml
|
4.更新语言
|
添加权限
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
说明:
setLanguage("zh") OK, 原生设置中显示中文
setLanguageTest("zh") OK, 原生设置中显示中文
setLanguage("zh-CN") OK, 原生设置中显示中文(中国)
setLanguageTest("zh-CN") Failed, 原生设置中显示und
setLanguage("zh-Hans-CN") OK, 原生设置中显示简体中文(中国)
setLanguageTest("zh-Hans-CN") Failed, 原生设置中显示und
5. 支持的语言配置
overlay/frameworks/base/core/res/res/values/locale_config.xml
|
makefile
|
PRODUCT_LOCALES
用于编译时确定哪些语言资源会被打包到 APK 中, locale_config.xml
用于运行时确定应用支持的语言。
两个配置都对应着应用在不同阶段所支持的语言,但起作用的时机不同。