android中类 Locale的使用
来源:互联网 发布:mac os x 10.10虚拟机 编辑:程序博客网 时间:2024/06/06 02:51
public final class Locale
- extends Object
- implements Cloneable, Serializable
Locale
对象表示了特定的地理、政治和文化地区。需要 Locale
来执行其任务的操作称为语言环境敏感的 操作,它使用Locale
为用户量身定制信息。例如,显示一个数值就是语言环境敏感的操作,应该根据用户的国家、地区或文化的风俗/传统来格式化该数值。
使用此类中的构造方法来创建 Locale
:
语言参数是一个有效的 ISO 语言代码。这些代码是由 ISO-639 定义的小写两字母代码。在许多网站上都可以找到这些代码的完整列表,如:Locale(String language) Locale(String language, String country) Locale(String language, String country, String variant)
http://www.loc.gov/standards/iso639-2/englangn.html。
国家/地区参数是一个有效的 ISO 国家/地区代码。这些代码是由 ISO-3166 定义的大写两字母代码。在许多网站上都可以找到这些代码的完整列表,如:http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html。
变量参数是特定于供应商或浏览器的代码。例如,用 WIN 代表 Windows、MAC 代表 Macintosh 和 POSIX 代表 POSIX。有两个变量时,把它们用下划线区分开来,把最重要的放在前面。例如,一个传统的西班牙排序规则可能用下列语言、国家/地区和变量参数来构造一个语言环境:"es"、"ES"、"Traditional_WIN"。
因为一个 Locale
对象就是一个地区的标识符,所以构造一个 Locale
时不执行有效性检查。如果想了解特定的资源在您构造的Locale
中是否可用,则必须查询那些资源。例如,使用 getAvailableLocales
方法询问 NumberFormat
所支持的语言环境。
注:查询一个特定语言环境的资源时,得到的是最佳的可用匹配,没必要精确地按要求提供资源。有关更多信息,请参见 ResourceBundle
。
Locale
类提供了一些方便的常量,可用这些常量为常用的语言环境创建 Locale
对象。例如,下面的内容为美国创建了一个Locale
对象:
Locale.US
创建完 Locale
后,就可以查询有关其自身的信息。使用 getCountry
可获取 ISO 国家/地区代码,使用getLanguage
则获取 ISO 语言代码。可用使用 getDisplayCountry
来获取适合向用户显示的国家/地区名。同样,可用使用getDisplayLanguage
来获取适合向用户显示的语言名。有趣的是,getDisplayXXX
方法本身是语言环境敏感的,它有两个版本:一个使用默认的语言环境作为参数,另一个则使用指定的语言环境作为参数。
Java 平台提供了多个可执行语言环境敏感操作的类:例如,NumberFormat
类以语言环境敏感的方式格式化数值、货币或百分比。像NumberFormat
这样的类则有多种创建该类型默认对象的便捷方法。例如,NumberFormat
类提供了三个便捷的方法,用于创建默认的NumberFormat
对象:
这些方法有两个变量;一个有明确的语言环境而另一个则没有;后者使用默认语言环境。NumberFormat.getInstance() NumberFormat.getCurrencyInstance() NumberFormat.getPercentInstance()
NumberFormat.getInstance(myLocale) NumberFormat.getCurrencyInstance(myLocale) NumberFormat.getPercentInstance(myLocale)
Locale
是一种标识所要获取的对象种类 (NumberFormat
) 的机制。但 locale 只是一种标识对象的机制,不是对象本身的容器。- 从以下版本开始:
- 1.1
- 另请参见:
ResourceBundle
,Format
,NumberFormat
,Collator
, 序列化表格
static Locale
CANADA
用于表示国家/地区的有用常量。
static Locale
CANADA_FRENCH
用于表示国家/地区的有用常量。
static Locale
CHINA
用于表示国家/地区的有用常量。
static Locale
CHINESE
用于表示语言的有用常量。
static Locale
ENGLISH
用于表示语言的有用常量。
static Locale
FRANCE
用于表示国家/地区的有用常量。
static Locale
FRENCH
用于表示语言的有用常量。
static Locale
GERMAN
用于表示语言的有用常量。
static Locale
GERMANY
用于表示国家/地区的有用常量。
static Locale
ITALIAN
用于表示语言的有用常量。
static Locale
ITALY
用于表示国家/地区的有用常量。
static Locale
JAPAN
用于表示国家/地区的有用常量。
static Locale
JAPANESE
用于表示语言的有用常量。
static Locale
KOREA
用于表示国家/地区的有用常量。
static Locale
KOREAN
用于表示语言的有用常量。
static Locale
PRC
用于表示国家/地区的有用常量。
static Locale
ROOT
用于表示根语言环境的有用常量。
static Locale
SIMPLIFIED_CHINESE
用于表示语言的有用常量。
static Locale
TAIWAN
用于表示国家/地区的有用常量。
static Locale
TRADITIONAL_CHINESE
用于表示语言的有用常量。
static Locale
UK
用于表示国家/地区的有用常量。
static Locale
US
用于表示国家/地区的有用常量。
Locale(String language)
根据语言代码构造一个语言环境。
Locale(String language,String country)
根据语言和国家/地区构造一个语言环境。
Locale(String language,String country, String variant)
根据语言、国家/地区和变量构造一个语言环境。
Object
clone()
重写 Cloneable。
boolean
equals(Object obj)
如果该 Locale 等于另一个对象,则返回 true。
static Locale[]
getAvailableLocales()
返回所有已安装语言环境的数组。
String
getCountry()
返回此语言环境的国家/地区代码,将为空字符串或大写的 ISO 3166 两字母代码。
static Locale
getDefault()
获得此 Java 虚拟机实例的当前默认语言环境值。
String
getDisplayCountry()
返回适合向用户显示的语言环境国家/地区名。
String
getDisplayCountry(Locale inLocale)
返回适合向用户显示的语言环境国家/地区名。
String
getDisplayLanguage()
返回适合向用户显示的语言环境语言名。
String
getDisplayLanguage(Locale inLocale)
返回适合向用户显示的语言环境语言名。
String
getDisplayName()
返回适合向用户显示的语言环境名。
String
getDisplayName(Locale inLocale)
返回适合向用户显示的语言环境名。
String
getDisplayVariant()
返回适合向用户显示的语言环境变量代码名。
String
getDisplayVariant(Locale inLocale)
返回适合向用户显示的语言环境变量代码名。
String
getISO3Country()
返回此语言环境国家/地区的三字母缩写。
String
getISO3Language()
返回此语言环境语言的三字母缩写。
static String[]
getISOCountries()
返回 ISO 3166 中所定义的所有两字母国家/地区代码。
static String[]
getISOLanguages()
返回 ISO 639 中所定义的所有两字母语言代码。
String
getLanguage()
返回此语言环境的语言代码,可以是空字符串或小写的 ISO 639 代码。
String
getVariant()
返回此语言环境的变量代码。
int
hashCode()
重写 hashCode。
static void
setDefault(Locale newLocale)
为此 Java 虚拟机实例设置默认语言环境。
String
toString()
使用由下划线分隔的语言、国家/地区和变量来获取整个语言环境的编程名称。
finalize, getClass, notify,notifyAll, wait, wait, wait
ENGLISH
public static final Locale ENGLISH
- 用于表示语言的有用常量。
FRENCH
public static final Locale FRENCH
- 用于表示语言的有用常量。
GERMAN
public static final Locale GERMAN
- 用于表示语言的有用常量。
ITALIAN
public static final Locale ITALIAN
- 用于表示语言的有用常量。
JAPANESE
public static final Locale JAPANESE
- 用于表示语言的有用常量。
KOREAN
public static final Locale KOREAN
- 用于表示语言的有用常量。
CHINESE
public static final Locale CHINESE
- 用于表示语言的有用常量。
SIMPLIFIED_CHINESE
public static final Locale SIMPLIFIED_CHINESE
- 用于表示语言的有用常量。
TRADITIONAL_CHINESE
public static final Locale TRADITIONAL_CHINESE
- 用于表示语言的有用常量。
FRANCE
public static final Locale FRANCE
- 用于表示国家/地区的有用常量。
GERMANY
public static final Locale GERMANY
- 用于表示国家/地区的有用常量。
ITALY
public static final Locale ITALY
- 用于表示国家/地区的有用常量。
JAPAN
public static final Locale JAPAN
- 用于表示国家/地区的有用常量。
KOREA
public static final Locale KOREA
- 用于表示国家/地区的有用常量。
CHINA
public static final Locale CHINA
- 用于表示国家/地区的有用常量。
PRC
public static final Locale PRC
- 用于表示国家/地区的有用常量。
TAIWAN
public static final Locale TAIWAN
- 用于表示国家/地区的有用常量。
UK
public static final Locale UK
- 用于表示国家/地区的有用常量。
US
public static final Locale US
- 用于表示国家/地区的有用常量。
CANADA
public static final Locale CANADA
- 用于表示国家/地区的有用常量。
CANADA_FRENCH
public static final Locale CANADA_FRENCH
- 用于表示国家/地区的有用常量。
ROOT
public static final Locale ROOT
- 用于表示根语言环境的有用常量。根语言环境是指其语言、国家、变量是空("")字符串的语言环境。它被视为所有语言环境的基础语言环境,并且用作语言环境敏感操作的语言/国家的非特定语言环境。
- 从以下版本开始:
- 1.6
Locale
public Locale(String language, String country, String variant)
- 根据语言、国家/地区和变量构造一个语言环境。注:ISO 639 并非是一个不变的标准;它所定义的某些语言代码(特别是 iw、ji 和 in)已经发生了变化。此构造方法接受旧代码(iw、ji 和 in)和新代码(he、yi 和 id),但是 Locale 中的所有其他 API 将只返回旧代码。
- 参数:
language
- 小写的两字母 ISO-639 代码。country
- 大写的两字母 ISO-3166 代码。variant
- 特定于供应商和浏览器的代码。参见类描述。- 抛出:
NullPointerException
- 如果任意参数为 null。
Locale
public Locale(String language, String country)
- 根据语言和国家/地区构造一个语言环境。注:ISO 639 并非是一个不变的标准;它所定义的某些语言代码(特别是 iw、ji 和 in)已经发生了变化。此构造方法接受旧代码(iw、ji 和 in)和新代码(he、yi 和 id),但是 Locale 中的所有其他 API 将只返回旧代码。
- 参数:
language
- 小写的两字母 ISO-639 代码。country
- 大写的两字母 ISO-3166 代码。- 抛出:
NullPointerException
- 如果任意参数为 null。
Locale
public Locale(String language)
- 根据语言代码构造一个语言环境。注:ISO 639 并非是一个不变的标准;它所定义的某些语言代码(特别是 iw、ji 和 in)已经发生了变化。此构造方法接受旧代码(iw、ji 和 in)和新代码(he、yi 和 id),但是 Locale 中的所有其他 API 将只返回旧代码。
- 参数:
language
- 小写的两字母 ISO-639 代码。- 抛出:
NullPointerException
- 如果参数为 null。- 从以下版本开始:
- 1.4
getDefault
public static Locale getDefault()
- 获得此 Java 虚拟机实例的当前默认语言环境值。
Java 虚拟机根据主机的环境在启动期间设置默认语言环境。如果没有明确地指定语言环境,则很多语言环境敏感的方法都使用该方法。可使用
setDefault
方法更改该值。 - 返回:
- 此 Java 虚拟机实例的默认语言环境。
setDefault
public static void setDefault(Locale newLocale)
- 为此 Java 虚拟机实例设置默认语言环境。这不会影响主机的语言环境。
如果有安全管理器,则在更改默认语言环境前使用
PropertyPermission("user.language", "write")
权限调用其checkPermission
方法。Java 虚拟机根据主机的环境在启动期间设置默认语言环境。如果没有明确地指定语言环境,则很多语言环境敏感的方法都使用该方法。
由于更改默认的语言环境可能影响功能的很多方面,所以应该仅在调用者准备重新初始化在同一 Java 虚拟机内所运行的语言环境敏感代码时才使用此方法。
- 参数:
newLocale
- 新的默认语言环境。- 抛出:
SecurityException
- 如果安全管理器存在并且其checkPermission
方法不允许该操作。NullPointerException
- 如果newLocale
为 null。- 另请参见:
SecurityManager.checkPermission(java.security.Permission)
,PropertyPermission
getAvailableLocales
public static Locale[] getAvailableLocales()
- 返回所有已安装语言环境的数组。 返回的数组表示由 Java 运行时环境和已安装的
LocaleServiceProvider
所支持的语言环境的联合。它必须至少包含一个等于Locale.US
的Locale
实例。 - 返回:
- 已安装语言环境的数组。
getISOCountries
public static String[] getISOCountries()
- 返回 ISO 3166 中所定义的所有两字母国家/地区代码。可用于创建 Locale。
getISOLanguages
public static String[] getISOLanguages()
- 返回 ISO 639 中所定义的所有两字母语言代码。可用于创建 Locale。[注:ISO 639 并非是一个不变的标准,某些语言代码已经改变。此功能所返回的列表包括了代码已改变的语言的新代码和旧代码。]
getLanguage
public String getLanguage()
- 返回此语言环境的语言代码,可以是空字符串或小写的 ISO 639 代码。
注:ISO 639 并非是一个不变的标准,某些语言代码已经改变。Locale 的构造方法可识别代码已改变的语言的新代码和旧代码,但是此功能总是返回旧代码。如果想检查代码已改变的特定语言,不要执行
if (locale.getLanguage().equals("he")) ...
Instead, doif (locale.getLanguage().equals(new Locale("he", "", "").getLanguage())) ...
- 另请参见:
getDisplayLanguage()
getCountry
public String getCountry()
- 返回此语言环境的国家/地区代码,将为空字符串或大写的 ISO 3166 两字母代码。
- 另请参见:
getDisplayCountry()
getVariant
public String getVariant()
- 返回此语言环境的变量代码。
- 另请参见:
getDisplayVariant()
toString
public final String toString()
- 使用由下划线分隔的语言、国家/地区和变量来获取整个语言环境的编程名称。语言总是小写,国家/地区总是大写。如果没有语言,则字符串用一个下划线开头。如果语言和国家/地区字段都丢失了,则此功能将返回空字符串,即使变量字段中填有内容也如此(不能只用变量来创建一个语言环境,变量必须随附在有效的语言或国家/地区代码上)。示例:"en"、"de_DE"、"_GB"、"en_US_WIN"、"de__POSIX"、"fr__MAC"。
- 覆盖:
- 类
Object
中的toString
- 返回:
- 该对象的字符串表示形式。
- 另请参见:
getDisplayName()
getISO3Language
public String getISO3Language() throws MissingResourceException
- 返回此语言环境语言的三字母缩写。如果此语言环境未指定语言,那么这将是一个空字符串。否则,将返回小写的 ISO 639-2/T 语言代码。可在
http://www.loc.gov/standards/iso639-2/englangn.html
. 找到 ISO 639-2 语言代码。 - 抛出:
MissingResourceException
- 如果三字母语言缩写不可用于此语言环境,则抛出 MissingResourceException。
getISO3Country
public String getISO3Country() throws MissingResourceException
- 返回此语言环境国家/地区的三字母缩写。如果此语言环境未指定国家/地区,那么这将是一个空字符串。否则将返回大写的 ISO 3166 三字母国家/地区代码。可在
http://www.davros.org/misc/iso3166.txt
. 找到 ISO 3166-2 国家/地区代码。 - 抛出:
MissingResourceException
- 如果三字母国家/地区缩写不可用于此语言环境,则抛出 MissingResourceException。
getDisplayLanguage
public final String getDisplayLanguage()
- 返回适合向用户显示的语言环境语言名。如有可能,将为默认的语言环境对返回的名称进行本地化。例如,如果语言环境是 fr_FR 并且默认的语言环境是 en_US,则 getDisplayLanguage() 将返回 "French";如果语言环境是 en_US 并且默认的语言环境是 fr_FR,则 getDisplayLanguage() 将返回 "anglais"。如果无法为默认的语言环境本地化返回的名称(比方说没有 Croatian 的日本名称),则该功能将依赖英文名,并使用 ISO 代码作为最终的值。如果该语言环境未指定语言,则此功能返回空字符串。
getDisplayLanguage
public String getDisplayLanguage(Locale inLocale)
- 返回适合向用户显示的语言环境语言名。如有可能,将根据 inLocale 对返回的名称进行本地化。例如,如果语言环境是 fr_FR 并且 inLocale 是 en_US,则 getDisplayLanguage() 将返回 "French";如果语言环境是 en_US 并且 inLocale 是 fr_FR,则 getDisplayLanguage() 将返回 "anglais"。如果无法根据 inLocale 对返回的名称进行本地化(比方说没有 Croatian 的日本名称),则该功能将依赖英文名,并使用 ISO 代码作为最终的值。如果该语言环境未指定语言,则此功能返回空字符串。
- 抛出:
NullPointerException
- 如果inLocale
为null
getDisplayCountry
public final String getDisplayCountry()
- 返回适合向用户显示的语言环境国家/地区名。如有可能,将为默认的语言环境对返回的名称进行本地化。例如,如果语言环境是 fr_FR 并且默认的语言环境是 en_US,则 getDisplayCountry() 将返回 "France";如果语言环境是 en_US 并且默认的语言环境是 fr_FR,则 getDisplayCountry() 将返回 "Etats-Unis"。如果无法为默认的语言环境本地化返回的名称(比方说没有 Croatia 的日本名称),则该功能将依赖英文名,并使用 ISO 代码作为最终的值。如果该语言环境未指定国家/地区,则此功能返回空字符串。
getDisplayCountry
public String getDisplayCountry(Locale inLocale)
- 返回适合向用户显示的语言环境国家/地区名。如有可能,将根据 inLocale 对返回的名称进行本地化。例如,如果语言环境是 fr_FR 并且 inLocale 是 en_US,则 getDisplayCountry() 将返回 "France";如果语言环境是 en_US 并且 inLocale 是 fr_FR,则 getDisplayCountry() 将返回 "Etats-Unis"。如果无法根据 inLocale 对返回的名称进行本地化(比方说没有 Croatia 的日本名称),则该功能将依赖英文名,并使用 ISO 代码作为最终的值。如果该语言环境未指定国家/地区,则此功能返回空字符串。
- 抛出:
NullPointerException
- 如果inLocale
为null
getDisplayVariant
public final String getDisplayVariant()
- 返回适合向用户显示的语言环境变量代码名。如有可能,将为默认的语言环境对返回的名称进行本地化。如果该语言环境未指定变量代码,则此功能返回空字符串。
getDisplayVariant
public String getDisplayVariant(Locale inLocale)
- 返回适合向用户显示的语言环境变量代码名。如有可能,将根据 inLocale 对名称进行本地化。如果该语言环境未指定变量代码,则此功能返回空字符串。
- 抛出:
NullPointerException
- 如果inLocale
为null
getDisplayName
public final String getDisplayName()
- 返回适合向用户显示的语言环境名。这将把 getDisplayLanguage()、getDisplayCountry() 和 getDisplayVariant() 返回的值组合到单个字符串中。显示的名称具有下列形式之一:
语言(国家/地区,变量)
这取决于语言环境中指定了哪些字段。如果语言、国家/地区和变量字段都为空,则该功能将返回空字符串。语言(国家/地区)
语言(变量)
国家/地区(变量)
语言
国家/地区
变量
getDisplayName
public String getDisplayName(Locale inLocale)
- 返回适合向用户显示的语言环境名。这将把 getDisplayLanguage()、getDisplayCountry() 和 getDisplayVariant() 返回的值组合到单个字符串中。显示的名称具有下列形式之一:
语言(国家/地区,变量)
这取决于语言环境中指定了哪些字段。如果语言、国家/地区和变量字段都为空,则该功能将返回空字符串。语言(国家/地区)
语言(变量)
国家/地区(变量)
语言
国家/地区
变量
- 抛出:
NullPointerException
- 如果inLocale
为null
clone
public Object clone()
- 重写 Cloneable。
- 覆盖:
- 类
Object
中的clone
- 返回:
- 此实例的一个副本。
- 另请参见:
Cloneable
hashCode
public int hashCode()
- 重写 hashCode。由于 Locale 经常用于哈希表中,所以缓存该值可提高速度。
- 覆盖:
- 类
Object
中的hashCode
- 返回:
- 此对象的一个哈希码值。
- 另请参见:
Object.equals(java.lang.Object)
,Hashtable
equals
public boolean equals(Object obj)
- 如果该 Locale 等于另一个对象,则返回 true。一个 Locale 与另一个 Locale 具有相同的语言、国家/地区和变量时,则认为它们相等;并与所有其他对象都不相等。
- 覆盖:
- 类
Object
中的equals
- 参数:
obj
- 要与之比较的引用对象。- 返回:
- 如果此 Locale 等于指定的对象,则返回 true。
- 另请参见:
Object.hashCode()
,Hashtable
String language = Locale.getDefault().getLanguage();if (language.equals("zh")) {return "cn";} else if (language.equals("en")) {return "en";} else {return "en";}
- android中类 Locale的使用
- Android Locale.getDefault()使用时的坑
- Java中Locale的使用例子
- locale的使用总结
- java的Locale类
- ResourceBundle 与locale的使用
- 使用 Boost 的Locale 進行字碼轉換
- 使用 Boost 的Locale 進行字碼轉換
- 强制 Android 应用使用某个 Locale
- 国际化的locale类详解
- 国际化的locale类详解
- Android如何接收locale改变的消息
- android 获取手机支持的locale信息
- Android 语言环境设置Locale的设置
- android的locale支持之undefined reference
- Ubuntu/Debian中locale的配置教程
- 在自己的应用中设置Locale
- C++中std::locale的设置
- android 将log保存到文本
- 【转】__attribute__ 之weak,alias属性
- CloseHandle(),TerminateThread(),ExitThread()的区别
- iOS开发缓存机制之—内存缓存机制
- LocalActivityManager
- android中类 Locale的使用
- ubuntu使用tap/tun
- postgreSQL触发器控制更新字段
- 索引介绍
- javascript内置对象
- Python的global语句
- 互联网开放平台应用综述
- 解决android连接第三方lib文件rand函数未找到问题
- android中 Button 安装监听的三种形式