14-1.java国际化.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
14-1.java国际化

14-1.国际化 先来说说这个单词I18N。他是internationalization的简写,I表示第一个字母,18表示表示中间省略的字母个数,N表示最后一个字母。非常戏剧的一种命名方式,外国人的确有才。 1:java中实现国际化 首先java不可能支持所有的国家的语言,如果需要获得所支持的的语言和国家,可以调用Locale(语言环境)类的getAvailableLocales()方法获得。看代码: /** * 打印java支持的语言 */ void printLanguage() { //java.util.Locale 对应一个特定的国家/区域、语言环境 Locale[] list = Locale.getAvailableLocales(); for (int i = 0; i list.length; i++) { System.out.println((i+1)+:+list[i].getDisplayCountry() + = +list[i].getCountry() + + list[i].getDisplayLanguage()+ = +list[i].getLanguage()); } } 这个函数将输出java所支持的国家/地区的语言。 2:完成国际化 要完成国际化,我们就得自己定义语言的配置文件properties。先来定义两个配置文件 Msg_en_US.properties(中文)和Msg_zh_CN.properties(英文) Msg_en_US.properties: HelloWorld=Hello World\! Msg_zh_CN.properties HelloWorld=\u4F60\u597D\uFF0C\u4E16\u754C\uFF01 两个配置文件分别定义了不同语言时输出的信息 来看这个方法: /** * 不同语言环境输出不同的信息 * @param myLocale 语言环境 */ void myI18N(Locale myLocale) { //根据指定语言环境加载资源文件 ResourceBundle bundle = ResourceBundle.getBundle(Msg,myLocale); //输出资源文件中的消息 System.out.println(bundle.getString(HelloWorld)); } myI18N(Locale.US);将会输出:Hello World! 在调用myI18N(Locale.CHINA)或者myI18N(Locale.getDefault()) 将会输出:你好,世界! 说明:Locale.getDefault()获得当前计算机的操作系统语言 通过这些就能简单的实现一个国际化了 3:格式化输出占位符消息 我们来看看这种资源文件定义方式: Msg_en_US.properties: Greetings = Hello {0} ,Today is {1} Msg_zh_CN.properties Greetings=你好 {0},今天是{1} 再看函数: /** * 使用MessageFormat处理带有占位符的消息 * @param myLocale 语言环境 * @param name 格式时所需的参数1 * @param d 格式时所需的参数2 */ void myI18NFormat(Locale myLocale,String name,Object d) { //根据指定语言环境加载资源文件 ResourceBundle bundle = ResourceBundle.getBundle(Msg,myLocale); //输出资源文件中的消息 String msg = bundle.getString(Greetings); System.out.println(MessageFormat.format(msg, name,d)); } myI18NFormat(Locale.US,LiQingQing,new java.util.Date()); myI18NFormat(Locale.CHINA,LiQingQing,一个非常好的天气!); Hello LiQingQing ,Today is 10-12-22 上午11:42 你好 LiQingQing,今天是一个非常好的天气! 4:使用类文件替换属性文件 如果你不喜欢写属性文件properties,也没关系。你可以使用类文件来进行配置,当然这个类文件是有要求的: 1:必需继承ListResourceBund

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档