有些机型可以设置语言和地域,有些只能设置语言。以汉语为例,有香港繁体、台湾繁体、简体等几种语言。
若只需要APP根据当前语言来适配(此时和地域无关),比如只要手机系统设置了繁体(不管地域选择的是中国、中国香港、中国台湾),APP就显示繁体,系统设置了简体(不管地域选择的是中国、中国香港、中国台湾),APP显示英文。
此时就要使用Locale的languageTag字段
Locale locale = context.getResources().getConfiguration().locale;
String languageTag = locale.toLanguageTag();
Log.d("tag", "languageTag: " + languageTag);
注意,此时minSdkVersion不小于21.
当手机的系统语言为繁体时:
香港繁体 | 台湾繁体 | 澳门繁体 | |
languageTag | zh-HK 或 zh-Hant-HK | zh-TW 或 zh-Hant-TW | zh-MO 或 zh-Hant-MO |
if(!TextUtils.isEmpty(languageTag)
&&("zh-TW".equals(languageTag)
|| "zh-HK".equals(languageTag)
|| "zh-MO".equals(languageTag)
|| languageTag.contains("Hant"))){
return "zh-tw";
}