我有一个应用程序,我已经为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
}
答案 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());
}