更改翻译应用的区域设置

时间:2017-07-23 09:58:02

标签: java android

我有一个应用程序,我已经为es_ES和en_US翻译了@strings。事情是我不希望他们考虑到位置而改变。我的意思是:如果手机的区域设置是" es-AR"或者" cat_ES",我希望它是西班牙语,在这种情况下,语言环境不是" es_XX"或者" xx_ES",我希望它是英文的。为了注意这些情况,我有这个布尔值:

 countryES =("ES".equals(Locale.getDefault().getCountry())|| "es".equals(Locale.getDefault().getLanguage()));

如果应用必须以西班牙语显示,则此变量为true,如果应为英语,则为false。正如我使用"编辑器中的区域设置"对于Android工作室,我想知道如何改变这样的本地:

if(countryES)
{
    //Change local to es_ES
} 
else
{
     //Change local to en_US
}

1 个答案:

答案 0 :(得分:0)

最后,对我有用的是以下内容(尽管可能还有其他选择):

if(countryES)
{
    //Change local to es_ES
   Locale localeEs = new Locale("es");
                Locale.setDefault(localeEs);
                Configuration configEs = new Configuration();
                configEs.locale = localeEs;
                getBaseContext().getResources().updateConfiguration(configEs, getBaseContext().getResources().getDisplayMetrics());
} 
else
{
     //Change local to en_US
   Locale localeEs = new Locale("en");
                Locale.setDefault(localeEs);
                Configuration configEs = new Configuration();
                configEs.locale = localeEs;
                getBaseContext().getResources().updateConfiguration(configEs, getBaseContext().getResources().getDisplayMetrics());
}