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代码示例