Многоязычный Не работает для устройства выбора даты Android - PullRequest
1 голос
/ 22 мая 2019

У нас есть некоторые проблемы с выбором даты при изменении локали приложения Android. любой может помочь мне.

Когда мы меняем язык Device Francia (Canada), приложение отлично работает с этим кодом

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        Locale.setDefault(resources.configuration.locales.get(0))
    }else{
        Locale.setDefault(resources.configuration.locale)
    }

, но если мы изменим язык приложения без изменения языка устройства из-за установки неверного результата.

var locale=Locale(SharedPreferencesManager.getStringPreference(Constants.LOCALE, ""))
    Locale.setDefault(locale)
    val resources = resources
    val configuration = resources.configuration
    val displayMetrics = resources.displayMetrics

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        configuration.setLocale(locale)
        createConfigurationContext(configuration)
    } else {
        configuration.locale=locale
        resources.updateConfiguration(configuration, displayMetrics)
    }

Правильный просмотр

Неправильный просмотр (кнопка «Отмена» и «ОК» не меняются в зависимости от локали приложения)

1 Ответ

0 голосов
/ 22 мая 2019

Согласно отчету об ошибке http://code.google.com/p/android/issues/detail?id=25107 на платформе Android, средство выбора даты не использует массив String сокращенного месяца Context приложения.Вместо этого он использует системный языковой стандарт.

Вы можете использовать AppLocaleDatePickerDialog.java , написанный Гилбертватом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...