private fun getSystemLocale(): String {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return LocaleList.getDefault().get(0).getLanguage();
} else {
return Locale.getDefault.getLanguage();
}
}
如果要使用以下选项获取设备的选定语言:
Locale.getDefault().getDisplayLanguage();
Locale.getDefault().getLanguage() ---> en
Locale.getDefault().getISO3Language() ---> eng
Locale.getDefault().getCountry() ---> US
Locale.getDefault().getISO3Country() ---> USA
Locale.getDefault().getDisplayCountry() ---> United States
Locale.getDefault().getDisplayName() ---> English (United States)
Locale.getDefault().toString() ---> en_US
Locale.getDefault().getDisplayLanguage()---> English
Locale.getDefault().toLanguageTag() ---> en-US
val language = ArrayList<String>()
val llc = ConfigurationCompat.getLocales(Resources.getSystem().configuration)
for (i in 0 until llc.size()) {
language.add(llc[i].displayLanguage.substring(0,1).uppercase(Locale.getDefault()) + llc[i].displayLanguage.substring(1)
}
val set: Set<String> = HashSet(language)
language.clear()
language.addAll(set)
language.sort()
# 1 楼答案
对于用户选择的语言-
如果要使用以下选项获取设备的选定语言:
# 2 楼答案
下面是获取设备所有可用区域设置的API
公共静态区域设置[]getAvailableLocales() 有关更多信息,请查看此公共链接:http://developer.android.com/reference/java/util/Locale.html#getAvailableLocales()
# 3 楼答案
这与版本具有向后兼容性。和
llc
将由用户选择所有语言如果您想要支持的语言的完整列表,您将使用
Locale
获得它# 4 楼答案
科特林版本。这与(Shubham Agarwal Bhewanewala)的建议几乎相同。只有排序和第一个大写字母
结果会是这样的:英语、法语、俄语、乌克兰语等等
# 5 楼答案
在Android 7.0(API级别24)及更高版本上,您应该调用^{} 。在早期版本的Android上,只有选择一种语言的选项,您可以通过
Locale.getDefault()
获得