I have to make my Android application in 3 languages ie German, English and dutch. i have made three folders in my android application names values-de
and values-nl
within the res directory.
now when the user selects a specific language i perform the following code:
Resources res = getResources();
Configuration newConfig = new Configuration(res.getConfiguration());
newConfig.locale = Locale.ENGLISH;
res.updateConfiguration(newConfig, null);
all the strings in the different values folders have the same name, i.e a string with name add_site in the values folder has the same name in the values-de
folder but with a different value.
My application is not loading the German value when i set the locale to German? what could be the problem?
thank you for you help.
Try putting this in onCreate()
just after the call to super.onCreate
:
Locale locale = new Locale("de");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
EDIT: Here's another approach. It seems to be very flexible, but there seems to be some disagreement in the comments whether it works on all Android versions.