JAVA国际化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA国际化
国际化英文单词为:Internationalization,又称I18N,I为因为单词的第一个字母,18为这个单词的长度,而N代表这个单词的最后一个字母。国际化又称本地化(Localization,L10N)。
国际化相关的Java类
Java国际化主要通过如下3个类完成
•java.util.ResourceBundle:用于加载一个资源包
•java.util.Locale:对应一个特定的国家/区域、语言环境。
•java.text.MessageFormat:用于将消息格式化
国际化资源文件
为实现程序的国际化,必须提供程序所需要的资源文件。资源文件的内容由
key-value对组成。
资源文件的命名可以有3种格式:
•basename_language_country.properties
•basename_language.properties
•basename_properties
若资源文件包含非西方字符,则需要用JDK自带的工具来处理:native2ascii,这个工具的语法格式如下:
native2ascii 资源文件名目标资源文件名
如:
native2ascii mess_zh_XXX.proerties mess_zh_CN.proerties
Locale类可获取各国区域环境(如:Locale.ENGLISH、Locale.CHINESE,这些常量返回一个Locale实例),也可以获取当前系统所使用的区域语言环境。ResourceBundle类可根据指定参数获取相应的资源,常用方法如下
ResourceBundle.getBundle(basename)//获取当前系统所使用的
区域环境获得指定资源文件
ResourceBundle.getBundle(basename,locale)//根据指定的区
域获取对应的资源文件
语言环境
在Java 语言中,语言环境(locale)仅仅是一个标识符,而不是一组本地化的属性。java.util.Locale 类的一个实例表示一个特定的地理政治区域,使用表示语言、区域以及国家或地区的参数创建。每个与语言环境相关的类都维护着它自己的一组本地化属性,并且确定如何对含有Locale 参数的方法请求做出响应。
Java支持的语言和国家
若要获取Java所支持的语言和国家,可调用Locale类的getAvailableLocale方法获取,该方法返回一个Locale数组,该数组里包含了java所支持的语言和国家。
java代码如下:
Locale[] localeList = Locale.getAvailableLocales();
for(int i=0; i System.out.println(localeList[i].getDisplayCountry()+"="+loca leList[i].getCounrtry() + " " + localeList[i].getDisplayLanguage() + "=" +localeList[i].getLanguage()); } } 程序运行结果如下: Japan=JP Japanese=ja Peru=PE Spanish=es = English=en Japan=JP Japanese=ja Panama=PA Spanish=es Bosnia and Herzegovina=BA Serbian=sr = Macedonian=mk Guatemala=GT Spanish=es United Arab Emirates=AE Arabic=ar Norway=NO Norwegian=no Albania=AL Albanian=sq = Bulgarian=bg Iraq=IQ Arabic=ar Yemen=YE Arabic=ar = Hungarian=hu Portugal=PT Portuguese=pt Cyprus=CY Greek=el Qatar=QA Arabic=ar Macedonia=MK Macedonian=mk = Swedish=sv Switzerland=CH German=de United States=US English=en Finland=FI Finnish=fi = Icelandic=is = Czech=cs Malta=MT English=en Slovenia=SI Slovenian=sl Slovakia=SK Slovak=sk = Italian=it Turkey=TR Turkish=tr = Chinese=zh = Thai=th Saudi Arabia=SA Arabic=ar = Norwegian=no United Kingdom=GB English=en Serbia and Montenegro=CS Serbian=sr = Lithuanian=lt = Romanian=ro New Zealand=NZ English=en Norway=NO Norwegian=no Lithuania=LT Lithuanian=lt Nicaragua=NI Spanish=es = Dutch=nl Ireland=IE Irish=ga Belgium=BE French=fr Spain=ES Spanish=es Lebanon=LB Arabic=ar = Korean=ko Canada=CA French=fr Estonia=EE Estonian=et Kuwait=KW Arabic=ar Serbia=RS Serbian=sr United States=US Spanish=es Mexico=MX Spanish=es Sudan=SD Arabic=ar Indonesia=ID Indonesian=in = Russian=ru