Как получить язык для Австрии, Швейцарии, - PullRequest
0 голосов
/ 14 мая 2011

У меня есть следующий код:

if (Locale.getDefault().equals(Locale.GERMANY) ||
    Locale.getDefault().equals(Locale.GERMAN)) {
        tp.setIs24HourView(true);
    }

Это работает для языковой настройки "Германия". Но есть и другие языки на выбор: Австрия (немецкий), Швейцария (немецкий) и т. Д. Для этих языков я также хочу, чтобы выражение if получило "true".

Так, например, Австрия это "de_AT" Locale.GERMANY дает de_DE Locale.GERMAN дает только де

если я сделаю

if (Locale.getDefault().equals("de_AT") 

возвращает false

Я не могу понять, как получить значение для других немецкоязычных стран.

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Вы можете проверить язык системы следующим образом:

Locale.getDefault().getDisplayLanguage();

Будет возвращено «Deutsch» (строка) для всех пользователей, которые установили немецкий в качестве языка пользовательского интерфейса (для меню телефона).и т.д.) независимо от того, находятся ли они в Германии, Австрии или Австралии ^^

1 голос
/ 14 мая 2011

Android уже предоставляет вам способ узнать, какой часовой формат выбран пользователем.Важно использовать этот параметр, потому что пользователь может переопределить опцию локали в настройках телефона.В любом случае, это то, что вы должны использовать:

 tp.setIs24HourView(android.text.format.DateFormat.is24HourFormat());

См. Документы здесь .

...