我想只为英语用户显示一个按钮,有没有办法检测语言设置?
我知道如何获取当前的Locale
,但我不知道将它与Locale.English
进行比较是否足够,因为必须有很多英文变体等。
有人经历过吗?
答案 0 :(得分:23)
来自Locale
docs:
语言代码是ISO 639-1定义的双字母小写ISO语言代码(例如“en”)。国家/地区代码是ISO 3166-1定义的双字母大写ISO国家/地区代码(例如“美国”)。
这意味着
Locale.getDefault().getLanguage().equals("en")
应为true
。我会谨慎地隐藏/显示UI,但默认情况下Locale
。许多国家/地区可能有许多用户喜欢其他语言,但英语流利。
答案 1 :(得分:14)
Locale.getDefault().getDisplayLanguage() will give your default language of your device
System.out.println("My locale::"+Locale.getDefault().getDisplayLanguage());
我的语言环境::英语
答案 2 :(得分:4)
如何使用Java的startsWith()函数检查当前语言环境是否为英语版本。
Locale.getDefault().getLanguage().startsWith("en")
答案 3 :(得分:2)
另一种解决方案是创建表单的本地化英语版本。有关详细信息,请参阅http://developer.android.com/guide/topics/resources/localization.html。
答案 4 :(得分:2)
正确的方法可能是:
{{1}}
答案 5 :(得分:1)
我所能说的语言就是:
1-为了获得应用程序本身的当前语言,您应该使用
String CurrentLang = getResources()。getConfiguration()。locale.getLanguage();
2-以获取您应该使用的设备的当前语言
String CurrentLang = Locale.getDefault()。getLanguage();
答案 6 :(得分:0)
要知道默认语言是英语版本(en_GB或en_AU还是en_IN或en_US),请尝试使用
if (Locale.getDefault().getLanguage().equals(new Locale("en").getLanguage())) {
Log.d(TAG, "Language is English");
}
答案 7 :(得分:0)
Locale.getDefault().getDisplayLanguage();
if(Locale.getDefault().getDisplayLanguage().equals("English")){
//do something
}