ANDROID:简体中文和繁体中文|应用内的语言变化

时间:2016-03-07 11:16:57

标签: android localization

我正在开发支持三种语言的应用程序

  1. 简体中文
  2. 繁体中文

    为此我在res文件夹中创建了两个额外的文件夹:

    • values-zh-rCH(简体中文)
    • values-zh-rTW(繁体中文)
    • 默认为英语语言的值
  3. 我正在使用以下功能来更改语言     `

        public void setLocale(String lang) {
           Locale myLocale = new Locale(lang);
    
           Resources res = getResources();
    
            DisplayMetrics dm = res.getDisplayMetrics();
    
           Configuration conf = res.getConfiguration();
    
            conf.locale = myLocale;
    
            res.updateConfiguration(conf, dm);
    
            Intent refresh = new Intent(this, StartMenuActivity.class);
    
           finish();
    
           startActivity(refresh);`
    
        }
    

    我将以下值传递给函数

    • EN
    • zh_CN的
    • zh_TW的

    我也试过以下值

    • EN
    • zh_rCN
    • zh_rTW

    但它不起作用。问题是什么?任何人都可以建议我吗?

    出于测试目的,我创建了 values-zh 文件夹并将 zh 传递给      的的setLocale 在这种情况下,语言正在改变。

    这与传统和简体中文无关?

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码来解决您的问题

 public void setLocale(String lang) {
    Locale myLocale;
    if (lang.equals("zh_CN")) {
        myLocale = Locale.SIMPLIFIED_CHINESE;
    } else if (lang.equals("zh_TW")) {
        myLocale = Locale.TRADITIONAL_CHINESE;
    } else {
        myLocale = new Locale(lang);
    }

    Locale.setDefault(myLocale);
    Resources res = getResources();
    DisplayMetrics dm = res.getDisplayMetrics();
    Configuration conf = res.getConfiguration();
    conf.locale = myLocale;
    res.updateConfiguration(conf, dm);
}