thisiscrazy4
thisiscrazy4

Reputation: 1965

Some strings are not translated when changing system language without restarting app

I'm having a problem where if I open my android app and then go into the system settings to change the language and then open the app again, some strings in the app won't be translated unless the app is force quit and relaunched. Any idea why this happens? I don't have android:configChanges set to "locale" anywhere in my AndroidManifest, so doesn't this mean all activities should be restarted on their own?

Upvotes: 2

Views: 2236

Answers (2)

thisiscrazy4
thisiscrazy4

Reputation: 1965

Finally figured out the problem. The strings that weren't being translated were being populated within a static class. So because this class was only being instantiated once, the strings weren't getting re-populated again with the proper translations.

Upvotes: 1

Ankit Aggarwal
Ankit Aggarwal

Reputation: 2405

I also had this issue.I used the code below which was posted in some StackOverflow answer and then it changed the language without refreshing the activity

public void setLocale(String lang) {

    myLocale = new Locale(lang);
    Resources res = getResources();
    DisplayMetrics dm = res.getDisplayMetrics();
    Configuration conf = res.getConfiguration();
    conf.locale = myLocale;
    res.updateConfiguration(conf, dm);
    onConfigurationChanged(conf);

}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    // refresh your views here
    lblLang.setText(R.string.langselection);
    super.onConfigurationChanged(newConfig);
}

I hope it would help you.......

Upvotes: 2

Related Questions