Android-语言的国际化

国际化步骤

①项目在project结构下,点击res ->new resource directory --local--点击>>后会出现语言列表
②在语言列表中选择语言,文件名称会自动生成
③把我们要国际化的文字写入各自语言的string.xml中

国际话思路

①需求是我们能进行语言切换
②当我们选择中一种语言后,当我们退出应用后,在进入的时候要保持我们先前选择的语言。

实现步骤

①需求①核心代码
  //国际化核心设置的代码
 public  void switchLanguage(Activity mContext, String language, boolean isFinish) {
    Resources resources = mContext.getResources();
    Configuration config = resources.getConfiguration();
    DisplayMetrics dm = resources.getDisplayMetrics();
    switch (language) {
        case "zh":
            config.locale = Locale.CHINA;
            resources.updateConfiguration(config, dm);

            break;
        case "en":
            config.locale = Locale.US;
            resources.updateConfiguration(config, dm);

            break;

    }
    MySharedPreferences.saveData("system_language", language);
    if (isFinish) {
        Intent intent = new Intent(mContext, LoginActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
        mContext.startActivity(intent);
    }
  }
注意:这里已经把我们的选择的语种进行保存。
②需求②核心代码:就是在我们进入主页时,在setContentView()之前进行调用如下核心代码
 protected void initLanguage() {
    if (MySharedPreferences.getString("system_language", "").equals("")) {

    } else if (MySharedPreferences.getString("system_language", "").equals("en")) {
        Resources resources = this.getResources();
        Configuration config = resources.getConfiguration();
        DisplayMetrics dm = resources.getDisplayMetrics();
        config.locale = Locale.US;
        resources.updateConfiguration(config, dm);
    } else if (MySharedPreferences.getString("system_language", "").equals("zh")) {
        Resources resources = this.getResources();
        Configuration config = resources.getConfiguration();
        DisplayMetrics dm = resources.getDisplayMetrics();
        config.locale = Locale.CHINA;
        resources.updateConfiguration(config, dm);
    }
}

ap第一次下载国际化问题

①既然做国际化,就是有多个国家,多种语言,所以默认哪一个国家语言都不太友好,所 
以 最好的方式就是获取手机当前系统的语言,设置为默认语言。
②获取手机当前系统的语言代码如下:

  Locale locale = this.getResources().getConfiguration().locale;
  String localLanguage = locale.toString();
通过判断localLanguage 设置对应语言既可以完成。

以上就完成了语言国际化,我项目中因为集成了谷歌地图,这样切换是不能改变谷歌地图中地理信息的国际化,因为是谷歌地图语言的国际化是根据手机系统本身语言环境适配的。在app中没有更改系统功能的权限。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容