Наше приложение обеспечивает определенную локалью независимо от настроек устройства. Это временное решение, пока строки не будут переведены правильно.
Configuration config = sContext.getResources().getConfiguration();
if (!sDefaultLocale.equals(config.locale)) {
Locale.setDefault(sDefaultLocale);
config.locale = sDefaultLocale;
sContext.getResources().updateConfiguration(config,
sContext.getResources().getDisplayMetrics());
}
К сожалению, форсирование локали не работает с виджетами приложения, виджет все еще использует локаль устройства. Я ищу способ сделать виджет приложения одним и тем же языком.
После изменения языка вам необходимо обновить виджеты приложений. И важная часть является то, что при создании новых RemoteViews, вам необходимо установить все строки программно, используя remoteViews.setTextViewText(..).
если строковые ресурсы виджета приложений определены в XML (android: text = "@string/...") - они не будут изменены после установки новой локали.