首页 > 移动平台 > 详细

Android应用程序国际化

时间:2019-03-22 14:27:12      阅读:135      评论:0      收藏:0      [点我收藏+]

前情提要

  在Android应用程序中, 可以轻松更改语言, 以适应国际化标准

  一些用户拥有多种语言习惯, 因此, 应用程序不能依赖设备默认语言环境, 必须提供更改显示语言的程序功能

  本文章探寻持久化语言

相关类

  - JDK类

     java.util.Local 

  - Android SDK类 

     android.content.res.Resources 

     android.content.res.Configuration 

操作步骤

  首先我们知道values下的strings.xml是通用字符串, 如果你的应用程序流向没有提供本地化支持的国家, 那么这可能就是这些国家用户看到的字符串了, 通常是English

  其它本地化支持命名规则为 values-语言代号-r区域代号, 如

    * 日语 values-ja-rJP, 对应 Locale.JAPAN

    * 繁体中文 values-zh-rTW, 对应 Locale.TRADITIONAL_CHINESE

 技术分享图片

  接下来使用 Resources 对象的 updateConfiguration() 方法更新本地语言

public class App extends Application {
    public static Context app = null;
    public static Locale dflocale = null;

    @Override
    public void onCreate() {
        super.onCreate();
        app = this;
        locale();
    }

    // 更改本地化語言
    private void locale() {
        Resources res = getResources();
        Configuration cf = res.getConfiguration();
        dflocale = Locale.getDefault();
        Log.e("默認語言", dflocale.toString());  


        cf.locale = Locale.TRADITIONAL_CHINESE; // 台灣中文
        res.updateConfiguration(cf, res.getDisplayMetrics());
    }
}

 

public class Test {
    public static void test() {
        Resources rs = App.app.getResources();
        Configuration config = rs.getConfiguration();

        config.locale = App.dflocale;
        rs.updateConfiguration(config, rs.getDisplayMetrics());
        String s = rs.getString(R.string.app_name);
        Log.e("默認語言", s);

        config.locale = Locale.JAPAN;
        rs.updateConfiguration(config, rs.getDisplayMetrics());
        s = rs.getString(R.string.app_name);
        Log.e("日語", s);
    }
}

技术分享图片

 技术分享图片

 

参考:  Android App 多语言切换

Android应用程序国际化

原文:https://www.cnblogs.com/develon/p/10577850.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!