Изменить локаль на уровне приложения в моем случае - PullRequest
1 голос
/ 27 марта 2012

Я хотел бы изменить язык приложения на уровне приложения.У меня есть values-fr/string.xml, values-cn/string.xml и values-en/string.xml.

. В моем Java-коде приложения у меня есть диалог , который показывает список языковых опций, и я пытаюсь использоватьследующий код для изменения языка моего приложения:

//user select a language from the dialog list
language_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {


             String language="";
             switch (position) {
                case 0:
                    language="fr";
                    break;
                case 1:
                    language="cn";
                    break;
                case 2:
                    language="en";
                    break;
             }

             Locale locale= new Locale(language);
             Locale.setDefault(locale);

             Configuration config= new Configuration();
             config.locale=locale;
             context.getResources().updateConfiguration(config,context.getResources().getDisplayMetrics()); 

             dissmissDialog();
        }
    });

Я думаю, с помощью приведенного выше кода, после того, как пользователь выбрал язык, диалоговое окно закрывается, приложение должно загрузить строку в соответствии с выбранным языковым стандартом (например, значения-fr / strings.xml).Но моя строка приложения не меняется после закрытия диалога.

Полагаю, мой Java-код должен сообщить приложению о необходимости перезагрузить конфигурацию и выполнить обновление, но я не знаю, как это сделать в Android.

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

...