Есть ли способ переопределить strings.xml в res / values? - PullRequest
5 голосов
/ 07 декабря 2011

Допустим, у меня есть два strings.xml файла - один для английского и один для датского.

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

Есть ли способ переопределить выбор строковых ресурсов в Android по умолчанию?Мне бы хотелось иметь параметр, который позволял бы пользователям игнорировать любые строковые ресурсы для конкретного языка и просто по умолчанию возвращался на английский.

Ответы [ 2 ]

5 голосов
/ 07 декабря 2011

Установите значение по умолчанию Locale на English:

public class MyApplication extends Application
{
    private Locale locale = null;

    @Override
    public void onConfigurationChanged(Configuration newConfig)
    {
        super.onConfigurationChanged(newConfig);
        if (locale != null)
        {
            newConfig.locale = locale;
            Locale.setDefault(locale);
            getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());
        }
    }

    @Override
    public void onCreate()
    {
        super.onCreate();

        Configuration config = getBaseContext().getResources().getConfiguration();

        locale = new Locale("en-US");
        Locale.setDefault(locale);
        config.locale = locale;
        getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());

    }
}
1 голос
/ 07 декабря 2011

Один из вариантов - изменить локаль в вашем приложении

Изменение локали в самом приложении

Locale appLoc = new Locale("en");
Locale.setDefault(appLoc);
Configuration appConfig = new Configuration();
appConfig.locale = appLoc;
getBaseContext().getResources().updateConfiguration(appConfig,
         getBaseContext().getResources().getDisplayMetrics());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...