Android应用程序国际化

前情提要

  在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     !注意  Locale.JAPANESE (x)

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

 

  接下来使用 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 多语言切换

转载于:https://www.cnblogs.com/develon/p/10577850.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值