是否可以在 Android 上获取用户在系统设置中选择的语言列表?
Is it possible on Android to get the list of languages chosen by the user in the system settings?
在较新的 Android 版本的系统设置中,用户可以:
- 定义一种默认语言
- 指定用户理解的其他语言
这种多语言偏好与现代网络浏览器的多语言设置非常相似。
在 Android 应用程序中,Locale.getDefault().language
可以使用默认语言。
设备上安装的所有区域设置的列表可通过 Locale.getAvailableLocales()
访问。
但是还有一种方法可以获取上面屏幕上显示的首选语言列表吗?
我觉得应该可以:
LocalList locals = getResources().getConfiguration().getLocales ()
for(int i=0; i<locals.size(); i++){
Log.d("tag",locals.get(i).getDisplayLanguage())
}
了解更多信息
https://developer.android.com/reference/android/content/res/Configuration.html#getLocales()
https://developer.android.com/reference/java/util/Locale.html
您可以使用
LocaleList locales = LocaleList.getDefault();
或为了与 API 之前的 24
兼容
LocaleListCompat locales = LocaleListCompat.getDefault();
然后
for( int i = 0; i < locales.size(); i++ ) {
Locale loc = locales.get(i);
Log.d("lang", loc.getDisplayLanguage(loc) + " (" + loc.getDisplayCountry(loc) + ")");
}
在较新的 Android 版本的系统设置中,用户可以:
- 定义一种默认语言
- 指定用户理解的其他语言
这种多语言偏好与现代网络浏览器的多语言设置非常相似。
在 Android 应用程序中,Locale.getDefault().language
可以使用默认语言。
设备上安装的所有区域设置的列表可通过 Locale.getAvailableLocales()
访问。
但是还有一种方法可以获取上面屏幕上显示的首选语言列表吗?
我觉得应该可以:
LocalList locals = getResources().getConfiguration().getLocales ()
for(int i=0; i<locals.size(); i++){
Log.d("tag",locals.get(i).getDisplayLanguage())
}
了解更多信息
https://developer.android.com/reference/android/content/res/Configuration.html#getLocales() https://developer.android.com/reference/java/util/Locale.html
您可以使用
LocaleList locales = LocaleList.getDefault();
或为了与 API 之前的 24
兼容LocaleListCompat locales = LocaleListCompat.getDefault();
然后
for( int i = 0; i < locales.size(); i++ ) {
Locale loc = locales.get(i);
Log.d("lang", loc.getDisplayLanguage(loc) + " (" + loc.getDisplayCountry(loc) + ")");
}