Подтвердить что ты не робот

Как определить, является ли язык английским (все варианты) на Android?

Я хочу показать кнопку только для пользователей на английском языке, есть ли способ определить языковые настройки?

Я знаю, как получить текущий Locale, но я не знаю, достаточно ли сравнить его с Locale.English, так как должно быть много английских вариаций и т.д.

Кто-нибудь это делает?

4b9b3361

Ответ 1

Locale.getDefault().getDisplayLanguage() will give your default language of your device

Пример

System.out.println("My locale::"+Locale.getDefault().getDisplayLanguage());

Результат

Моя локаль:: English

Ответ 2

Из Locale docs:

Коды языков представляют собой двухбуквенные коды языка ISO (например, "en" ), как определено в ISO 639-1. Коды стран представляют собой двухбуквенные коды стран с наименьшим кодом страны (такие как "США" ), как определено в стандарте ISO 3166-1.

Это означает, что

Locale.getDefault().getLanguage().equals("en")

должен быть true. Я бы осторожно скрывал/показывал интерфейс только по умолчанию Locale. Во многих странах может быть много пользователей, которые предпочитают другой язык, но отлично владеют английским языком.

Ответ 3

Как использовать функцию Java startsWith(), чтобы проверить, является ли текущая локаль английским вариантом или нет.

Locale.getDefault().getLanguage().startsWith("en")

Ответ 5

Правильный способ:

boolean def_english = Locale.getDefault().getISO3Language().equals(Locale.ENGLISH.getISO3Language());

Ответ 6

Все, что я могу сказать о языке, это то, что:

1-, чтобы получить текущий язык приложения, вы должны использовать

Строка CurrentLang = getResources(). getConfiguration(). locale.getLanguage();

2-, чтобы получить текущий язык устройства, которое вы должны использовать

Строка CurrentLang = Locale.getDefault(). getLanguage();

Ответ 7

Чтобы узнать, является ли язык по умолчанию английским вариантом (en_GB или en_AU или en_IN или en_US), попробуйте это

if (Locale.getDefault().getLanguage().equals(new Locale("en").getLanguage())) {
    Log.d(TAG, "Language is English");
}

Ответ 8

Locale.getDefault().getDisplayLanguage();

if(Locale.getDefault().getDisplayLanguage().equals("English")){

    //do something
}