Locale类:Java本地化 Java

Quibbler 2020-3-24 1572

Locale类:Java本地化


        Android提供了丰富的国家化API支持APP的国际化。Java中也有用于转换和划分地区的国际化Locale类位于包java.lang中,国际化在程序中设置语言和时间等时非常有用。


1、Locale类


1.1、构造Locale

        ①Locale getDefault():返回当前JVM虚拟机默认的地区语言环境值

        ②Locale(String language):构造函数,传入语言码

        ③Locale(String language, String country):传入语言和地区码

    public Locale(String language, String country) {
        this(language, country, "");
    }

        ④Locale(String language, String country, String variant):语言码、国家码及用于指示语言环境变化的任意值。

例:

    //默认Locale
    Locale currentLocale = Locale.getDefault();
    
    //指定语言和国家地区
    Locale locale = new Locale("zh", "CN");


1.2、Locale字段

       Locale类中提供很多现成的国家Locale实例,可以直接引用使用。

    static public final Locale ENGLISH = createConstant("en", "");
    static public final Locale FRENCH = createConstant("fr", "");
    static public final Locale GERMAN = createConstant("de", "");
    static public final Locale ITALIAN = createConstant("it", "");
    static public final Locale JAPANESE = createConstant("ja", "");
    static public final Locale KOREAN = createConstant("ko", "");
    static public final Locale CHINESE = createConstant("zh", "");
    static public final Locale SIMPLIFIED_CHINESE = createConstant("zh", "CN");
    static public final Locale TRADITIONAL_CHINESE = createConstant("zh", "TW");
    static public final Locale FRANCE = createConstant("fr", "FR");
    static public final Locale GERMANY = createConstant("de", "DE");
    static public final Locale ITALY = createConstant("it", "IT");
    static public final Locale JAPAN = createConstant("ja", "JP");
    static public final Locale KOREA = createConstant("ko", "KR");
    static public final Locale CHINA = SIMPLIFIED_CHINESE;
    static public final Locale PRC = SIMPLIFIED_CHINESE;
    static public final Locale TAIWAN = TRADITIONAL_CHINESE;
    static public final Locale UK = createConstant("en", "GB");
    static public final Locale US = createConstant("en", "US");
    static public final Locale CANADA = createConstant("en", "CA");
    static public final Locale CANADA_FRENCH = createConstant("fr", "CA");

例:

    Locale china = Locale.CHINA;


2、Locale方法

        

2.1、getAvailableLocales()

        获取Locale支持的全部区域的Locale[]数组,在我电脑上Java 1.8.0_201上运行,支持的Locale共有683之多。

    Locale[] locales = Locale.getAvailableLocales();
    for (Locale locale : locales) {
        Log.e("QUIBBLER", locale.getCountry());
    }

        (打印Log发现AndroidStudio中如果Log内容为空可能就自动过滤掉)。


2.2、getCountry()

        获取Locale对象中的国家地区码


2.3、getLanguage()

        返回国家的语言码


2.4、其它方法

        Locale类中的其它方法,如下。

	Object             clone()
	boolean            equals(Object object)
	static Locale[]    getAvailableLocales()
	static Locale      getDefault()
	String             getDisplayCountry(Locale locale)
	final  String      getDisplayCountry()                 //返回适合向用户显示的国家信息
	final  String      getDisplayLanguage()                //返回适合向用户展示的语言信息
	String             getDisplayLanguage(Locale locale)
	String             getDisplayName(Locale locale)
	final  String      getDisplayName()                    //返回适合向用户展示的语言环境名
	final  String      getDisplayVariant()
	String             getDisplayVariant(Locale locale)
	String             getISO3Country()
	String             getISO3Language()
	static String[]    getISOCountries()
	static String[]    getISOLanguages()
	String             getVariant()
	synchronized int   hashCode()
	final  String      toString()
	synchronized static void   setDefault(Locale locale)


参考博客:

       详解Java中用于国际化的locale类

        Java的Locale类

       sun.util.locale.BaseLocale的Java代码示例


不忘初心的阿甘
最新回复 (0)
    • 安卓笔记本
      2
        登录 注册 QQ
返回
仅供学习交流,切勿用于商业用途。如有错误欢迎指出:fluent0418@gmail.com