6

I have a requirement to change my application language from english to Chinese.I am able to do so in many devices except Google Pixel which has Android 8.0.0. I am using the below code for this

public static void changeLocaleTo(String locale){

            Resources res = App.getContext().getResources();
            DisplayMetrics dm = res.getDisplayMetrics();
            android.content.res.Configuration conf = res.getConfiguration();
            conf.setLocale(new Locale(locale.toLowerCase())); // API 17+ only.
            conf.locale = (new Locale(locale.toLowerCase()));
            res.updateConfiguration(conf, dm);
            //for Build>=25
            //res.createConfiguration(conf, dm); 
}

I have tried many things using the below links

How to programmatically change language?

https://gunhansancar.com/change-language-programmatically-in-android/

but none are able to change the language in my Pixel phone.

Please Note: However, if I change my device language from device settings, my app changes to Chinese version in Pixel too.

I have 'values-zh' folder in res having the Chinese strings.

nishith kumar
  • 981
  • 7
  • 20

0 Answers0