如何在Android设备中选择当前语言?
当前回答
您可以从当前区域“提取”语言。你可以通过标准的Java API或者使用Android Context来提取语言环境。例如,下面这两行是等价的:
String locale = context.getResources().getConfiguration().locale.getDisplayName();
String locale = java.util.Locale.getDefault().getDisplayName();
其他回答
以上答案没有区分简体中文和繁体中文。 Locale.getDefault(). tostring()工作,返回“zh_CN”,“zh_TW”,“en_US”等。
参考:https://developer.android.com/reference/java/util/Locale.html, ISO 639-1是旧的。
这个解决方案对我很有效。这将返回android设备的语言(不是应用程序的本地语言)
String locale = getApplicationContext().getResources().getConfiguration().locale.getLanguage();
这将返回"en"或"de"或"fr"或任何你的设备语言设置。
您可以使用此代码找出键盘电流
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
InputMethodSubtype ims = imm.getCurrentInputMethodSubtype();
String locale = ims.getLocale();
Locale.getDefault().getLanguage()是虚拟机语言
Locale.getDefault().getLanguage()
它是当前运行应用程序的虚拟机实例的语言。它由java类(如DateFormat等)使用。如果您使用某些java类,则在更改应用程序区域设置时可能需要修改此选项。如果你在改变你的App语言环境时修改了这个,它与android的语言是不一样的。
context.getConfiguration().locale.getLanguage()是活动语言
context.getConfiguration().locale.getLanguage()
这是您活动中设置的语言。 在最新的SDK版本中,以下是可取的
context.getConfiguration().getLocales().get(0).getLanguage()
Resources.getSystem().getConfiguration().getLocales()给出用户在系统级添加的所有地区
这将为您提供用户在系统级别设置的第一个区域设置。
Resources.getSystem().getConfiguration().getLocales().get(0).getLanguage()
大量的用户是多语言的,所以你可能想要循环使用locale。
如果你想检查当前语言,请使用@Sarpe (@Thorbear)的答案:
val language = ConfigurationCompat.getLocales(Resources.getSystem().configuration)?.get(0)?.language
// Check here the language.
val format = if (language == "ru") "d MMMM yyyy г." else "d MMMM yyyy"
val longDateFormat = SimpleDateFormat(format, Locale.getDefault())
推荐文章
- 如何隐藏动作栏之前的活动被创建,然后再显示它?
- 是否有一种方法以编程方式滚动滚动视图到特定的编辑文本?
- 在Android中将字符串转换为Uri
- 如何在NestedScrollView内使用RecyclerView ?
- 移动到另一个EditText时,软键盘下一步点击Android
- Android应用中的GridView VS GridLayout
- Activity和FragmentActivity的区别
- 右对齐文本在android TextView
- 权限拒绝:start前台需要android.permission.FOREGROUND_SERVICE
- 如何更改android操作栏的标题和图标
- Android Split字符串
- 让一个链接在安卓浏览器启动我的应用程序?
- 如何在Android工作室的外部库中添加一个jar ?
- GridLayout(不是GridView)如何均匀地拉伸所有子元素
- 如何让一个片段删除自己,即它的等效完成()?