Search code examples
androidlocale

multi language android application?


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.


Solution

  • 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.