zoukankan      html  css  js  c++  java
  • 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 多语言切换

  • 相关阅读:
    [ SDOI 2006 ] 保安站岗
    [ TJOI 2012 ] 防御
    [ ZJOI 2012 ] 灾难
    [ HNOI 2008 ] 玩具装箱
    「UER#2」信息的交换
    「UR#5」怎样跑得更快
    「UR#6」懒癌
    清华集训2014 做题记录
    「UR#5」怎样更有力气
    弦图及区间图学习笔记
  • 原文地址:https://www.cnblogs.com/develon/p/10577850.html
Copyright © 2011-2022 走看看