是否有一种方法来覆盖res/values中的strings.xml



假设我有两个strings.xml文件-一个用于英语,一个用于丹麦语。

虽然大多数用户可能会对丹麦语翻译感到满意,但也有一些用户更喜欢英语翻译。

是否有一种方法来覆盖Android的默认选择的字符串资源?我希望有一个设置,使用户能够忽略任何特定于语言的字符串资源,只是默认返回到英语。

设置默认的LocaleEnglish:

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());
    }
}

一种选择是在应用程序中更改区域设置

在应用程序内部更改区域设置

Locale appLoc = new Locale("en");
Locale.setDefault(appLoc);
Configuration appConfig = new Configuration();
appConfig.locale = appLoc;
getBaseContext().getResources().updateConfiguration(appConfig,
         getBaseContext().getResources().getDisplayMetrics());

最新更新