如何在Android上检测语言是否为英语(所有变体)?

时间:2011-06-16 07:00:02

标签: android locale

我想只为英语用户显示一个按钮,有没有办法检测语言设置?

我知道如何获取当前的Locale,但我不知道将它与Locale.English进行比较是否足够,因为必须有很多英文变体等。

有人经历过吗?

8 个答案:

答案 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
}