SharedPreferences 数据与 App 语言的关系 - RebornQ/Plugin-Locale-Kotlin GitHub Wiki
SharePreferences
中language
字段的value
与 App 语言的对应关系如下:
V1.0.10 之前的版本
"0" -> 跟随系统
"1" -> English
"2" -> 简体中文
"3" -> 繁体中文
V1.0.10+
新版本兼容获取旧版本的值,但是设置的时候会重新set
新的值,放心,绝对平稳过渡。
新版本对应关系需要自己定义(必须做这一步!!!),这样就可以自己定义支持什么语言了,举例:
private fun getLocale(which : String): Locale {
return when (which) {
"0" -> Locale.ROOT // 跟随系统
"1" -> Locale.ENGLISH
"2" -> Locale.SIMPLIFIED_CHINESE
"3" -> Locale.TRADITIONAL_CHINESE
else -> Locale.SIMPLIFIED_CHINESE
}
}
然后再一句代码调用切换语言:
// 应用切换的语言
LocaleHelper.getInstance()
.language(getLocale(which.toString()))
.apply(this)
说明:通常,
which
为语言列表的第几项。当然,你也可以不定义0/1/2/3
,你可以定义auto/en/zh_cn/zh_tw
。注意:若要做跟随系统
,此项对应关系的value
必须为Locale.ROOT