Android应用内部实现多语言,一键切换语言,国际化适配


1.首先提供多语言对应的string值  如en对应英语, fr对应法语

 

 

 两个文件中包含同样的key, 对应不同的语言的value

2.java代码相应用户切换语言动作

 private static void setAppLanguage(Context context, Locale locale) {
        Resources resources = context.getResources();
        DisplayMetrics metrics = resources.getDisplayMetrics();
        Configuration configuration = resources.getConfiguration();
//Android 7.0以上的方法
        if (VERSION.SDK_INT >= 24) {
            configuration.setLocale(locale);
            configuration.setLocales(new LocaleList(locale));
            context.createConfigurationContext(configuration);
//实测,updateConfiguration这个方法虽然很多博主说是版本不适用
//但是我的生产环境androidX+Android Q环境下,必须加上这一句,才可以通过重启App来切换语言
            resources.updateConfiguration(configuration, metrics);

        } else if (VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN_MR1) {
//Android 4.1 以上方法
            configuration.setLocale(locale);
            resources.updateConfiguration(configuration, metrics);
        } else {
            configuration.locale = locale;
            resources.updateConfiguration(configuration, metrics);
        }
    }

3. 将用户选择保持到SharedPrefrence中, 通过在BaseActivity中来设置切换的动作

需要注意:在手动触发切换动作后, 需要退出所有的Activity, 重新启动,才会生效

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM