Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I change language of my application?

Tags:

android

In my application I have a option of language selection.

There are three languages: English, German & Spanish. When I select an option, the entire application language should be changed.

How can I make this possible?

like image 204
Hrishik Avatar asked Jun 04 '11 09:06

Hrishik


1 Answers

Do you mean that you want to use another language than the default language in the phone? I have that in one application, and this is what I had to do.

Add this to your activity declaration in the AndroidManifest.xml

<activity
    android:name=".ui.SomeActivity"
    android:configChanges="locale"
    :
    :
</activity>

And then invoke a method like this from onCreate in your activity:

public static void setLanguage(Context context, String languageToLoad) {
    Log.d(TAG, "setting language");
    Locale locale = new Locale(languageToLoad); //e.g "sv"
    Locale systemLocale = SystemLocale.getInstance().getCurrentLocale(context);
    if (systemLocale != null && systemLocale.equals(locale)) {
       Log.d(TAG, "Already correct language set");
       return;
    }
    Locale.setDefault(locale);
    android.content.res.Configuration config = new android.content.res.Configuration();
    config.locale = locale;
    context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
    Log.d(TAG, "Language set");
}
like image 68
Kaj Avatar answered Oct 13 '22 11:10

Kaj