美文网首页
Android:应用多语言切换,国际化实现

Android:应用多语言切换,国际化实现

作者: yangSmallXing | 来源:发表于2018-10-30 17:36 被阅读0次

    多语言切换原理:

    生成多种语言的string.xml,里面放置对应的语言,修改配置(Configuration),重启之后就会加载对应语言的string.xml。

    实现步骤:

    1:在res目录下,生成对应的语言包,比如英语:


    image.png

    在res目录下生成了可看到生成了:


    image.png
    2:在对应string.xml内,需要使用相同的name的string;比如
    中文简体:

    <string name="hello">你好</string>
    英语:
    <string name="hello">hello</string>
    之后就可以使用getResource.getString(R.string.hello),这个字符串会加载相对应的配置的语言。
    3:修改语言配置

    Resources resources = context.getResources();
    DisplayMetrics dm = resources.getDisplayMetrics();
    Configuration config = resources.getConfiguration();
    //简体中文
    config.locale = Locale.SIMPLIFIED_CHINESE;
    //or 繁体中文
    config.locale = Locale.TRADITIONAL_CHINESE;
    // or 英文
    config.locale = Locale.ENGLISH;
    
    //更新语言配置
    resources.updateConfiguration(config, dm);
    //重启到主页
    Intent intent = new Intent(context, HomeActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    context.startActivity(intent);
     // 杀掉进程
    android.os.Process.killProcess(android.os.Process.myPid());
    System.exit(0);
    

    修改语言配置后,需要重新启动进程,并且杀死进程。

    多语言切换细节

    1:有些手机是可以在设置里直接切换语言的,这个也就是Configuration改变。用户重新设置系统语言导致应用的语言也会重新设置。Configuration改变,如果在Manifest中不设置android:configChanges忽略掉配置改变,Activity会重新创建,那么我们就可以在Activity的onCreate中,重新修改语言配置。
    2:切换语言后,退出应用,重新进来,你会发现又是系统设置的语言。所以需要在Application开启时,需要再次切换语言配置。

    相关文章

      网友评论

          本文标题:Android:应用多语言切换,国际化实现

          本文链接:https://www.haomeiwen.com/subject/zhagtqtx.html