java Local 的使用

Locale 对象表示了特定的地理、政治和文化地区。
需要 Locale 来执行其任务的操作称为语言环境敏感的操作.它使用 Locale 为用户量身定制信息。例如,显示一个数值就是语言环境敏感的操作,应该根据用户的国家、地区或文化的风俗/传统来格式化该数值。

 

Locale(String language, String country, String variant)

 

语言参数是一个有效的 ISO 语言代码。这些代码是由 ISO-639 定义的小写两字母代码。在许多网站上都可以找到这些代码的完整列表,如:
http://www.loc.gov/standards/iso639-2/englangn.html

 

 

Sample Language Codes

Language Code

Description

de

German

en

English

fr

French

ja

Japanese

jw

Javanese

ko

Korean

zh

Chinese

 

 

国家/地区参数是一个有效的 ISO 国家/地区代码。这些代码是由 ISO-3166 定义的大写两字母代码。在许多网站上都可以找到这些代码的完整列表,如:
http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html 。

 

 

Sample Country Codes

Country Code

Description

CN

China

DE

Germany

FR

France

IN

India

US

United States

 

变量参数是特定于供应商或浏览器的代码。例如,用 WIN 代表 Windows、MAC 代表 Macintosh 和 POSIX 代表 POSIX。有两个变量时,把它们用下划线区分开来,把最重要的放在前面。例如,一个传统的西班牙排序规则可能用下列语言、国家/地区和变量参数来构造一个语言环境:"es"、"ES"、"Traditional_WIN"。

 

如果想了解特定的资源在您构造的 Locale 中是否可用,则必须查询那些资源。例如,使用 getAvailableLocales 方法询问 NumberFormat 所支持的语言环境。

 

public class Available {
    static public void main(String[] args) {
	Locale list[] = DateFormat.getAvailableLocales();
	for (Locale aLocale : list) {
	    System.out.println(aLocale.toString());
	}
    }
}

 

 如果你想扩展你的Local, 并创建新的Local, 有一下接口可供参考

 

 

java.util.spi

java.text.spi

  • CurrencyNameProvider
  • LocaleServiceProvider
  • TimeZoneNameProvider
  • BreakIteratorProvider
  • CollatorProvider
  • DateFormatProvider
  • DateFormatSymbolsProvider
  • DecimalFormatSymbolsProvider
  • NumberFormatProvider

 

 

 如果你想提供 NumberFormat 对象 包含一个 新的 Local, 你可以实现implement the java.text.spi.NumberFormatProvider calss

 

 Locale loc = new Locale("da", "DK");
NumberFormat nf = NumberFormatProvider.getNumberInstance(loc);

 

 

注意:这个方法检查Java runtime environment 是否支持所请求的request local, 如果支持,则启用,不支持,则调用getAvailableLOcales()方法设置 Local

 

总结
因为一个 Locale 对象就是一个地区的标识符,所以构造一个 Locale 时不执行有效性检查。如果想了解特定的资源在您构造的 Locale 中是否可用,则必须查询那些资源。例如,使用 getAvailableLocales 方法询问 NumberFormat 所支持的语言环境。

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值