Почему I18n не работает, когда в Android 5.0.2? - PullRequest
0 голосов
/ 04 сентября 2018

Я хочу изменить язык на английский, но он не работает, когда это телефон Android 5.0.2. И это нормально, когда это Android 7.1.1. Вот мой код:

 public static void applyLanguage(Context context, String newLanguage) {
        if (StringUtil.isEmpty(newLanguage)) {
            return;
        }
        Resources resources = context.getResources();
        Configuration configuration = resources.getConfiguration();
        Locale locale = SupportLanguageUtil.getSupportLanguage(newLanguage);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            configuration.setLocale(locale);
            createConfigurationResources(context, newLanguage);
        } else {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
                configuration.setLocale(locale);
            }else {
                configuration.locale = locale;
            }
            DisplayMetrics dm = resources.getDisplayMetrics();
            resources.updateConfiguration(configuration, dm);
        }
    }

Однако в английской языковой среде по умолчанию я обычно меняю ее на китайский. Это очень странно. Кто-нибудь сталкивался с этой проблемой?

1 Ответ

0 голосов
/ 04 сентября 2018

Я решил это, изменив Locale.ENGLISH на Locale.US, указав языковые ресурсы US.

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