更改翻译应用程序的区域设置



我有一个应用程序,我已经翻译了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 studio 的"编辑器中的区域设置"完成翻译时,我想知道如何像这样更改本地:

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

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

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

最新更新