если локаль приложения отличается от локали системы, как получить локаль системы? - PullRequest
0 голосов
/ 25 июня 2018

Я устанавливаю свой язык приложения, отличный от языка системы (устройства). пример : Локаль приложения установлена ​​на китайском языке. Системный языковой стандарт установлен на английском языке.

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

Ниже API, я пытался, но не работал:

  • mcontext.getResources () getConfiguration () локали;..

  • Locale.getDefault () GetLanguage ();.

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Программно ли вы меняете локаль в своем приложении? в этом случае вы можете попробовать объект ресурсов системы:

Resources.getSystem().getConfiguration().locale;

и на устройствах с Android N и более поздними версиями:

Resources.getSystem().getConfiguration().getLocales().get(0);
0 голосов
/ 25 июня 2018

Здесь я положил получить код текущей локали.

Locale getCurrentLocale(Context context){
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){
        return context.getResources().getConfiguration().getLocales().get(0);
    } else{
        //noinspection deprecation
        return context.getResources().getConfiguration().locale;
    }
}
...