岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> Java >> 其他技术 >> Java正文
J2SE 6 在国际化方面的增强
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-7-23 9:51:44
e.append(".root");
    }
    // Now append the basename to the fully qualified package.
    localizedBundle.append("." + baseName);
    return localizedBundle.toString();
  }
}

    下面的代码演示了如何来调用上面子定义的 getBundle 方法:

String bundleName = "com.sun.demo.intl.res.Warnings";
SubdirControl control = new SubdirControl();
Locale locale = new Locale("fr", "FR");
ResourceBundle bundle = ResourceBundle.getBundle(bundleName, locale, control);

    假如缺省的 locale 是 en_US ,那么 getBundle 方法就用 Control 类去搜索侯选项并返回
如下列出的那些包名
com.sun.demo.intl.res.fr_FR.Warnings
com.sun.demo.intl.res.fr.Warnings
com.sun.demo.intl.res.en_US.Warnings
com.sun.demo.intl.res.en.Warnings
com.sun.demo.intl.res.root.Warnings


  缓存 Control 对象的实例
--------------------------
    装载资源绑定的时候,默认地就会对每个“绑定”检查,判断它是否已经被装载过。我们也可以对此方式作点改变。假如,想在加载一个绑定前,简单地清除掉缓存,可以调用 ResourceBundle类的 clearCache 方法来实现。

ResourceBundle.clearCache();
ResourceBundle myBundle = ResourceBundle.getBundle("com.sun.demo.intl.res.Warnings");

    甚至能为缓存设置一个“过期”数值来控制缓存的“生存周期”。在 Control 的子类里覆盖方法getTimeToLive ,这个方法返回以毫秒值代表的“生命周期”。缺省情况下,这个方法返回的是预定义的两个值中的一个,这两个值是:TTL_DONT_CACHE 和 TTL_NO_EXPIRATION_CONTROL

    Control 缺省情况时返回 TTL_NO_EXPIRATION_CONTROL,这个值表示:缓存永不过期。而 TTL_DONT_CACHE 表示:根本就不对绑定进行缓存。假如,想让“绑定”每过4个小时就要进行更新,而且不是重新启动程序的话,那么需要像如下代码那样来覆盖 getTimeToLive 方法:
public long getTimeToLive() {
return 4L*60*60*1000; // 14,400,000 milliseconds is four hours.
}

    Control 对象里有很多方法来为绑定的搜索和控制进行细致地设置。本文仅列举了其中的一些,其他的,如下所列的方法也可通过覆盖来实现定制:
* getCandidateLocales
* getFallbackLocale
* newBundle
* needsReload

    请参阅详细的文档中对这些方法的说明(http://java.sun.com/javase/6/docs/api/java/util/ResourceBundle.Control.html)

上一页  [1] [2] [3] [4] 下一页  



  针对locale的服务
----------------
    在 java.text 和 java.util 包里支持超过100个的 locale。这些locale 可以为世界上大多数地区的人所使用,然而对某些地区的支持仍然未被支持。为了让JAVA支持这些 locale,需要做很多调查工作,比如说研究和确定数字和日期的格式,国家名称的翻译,排列的次序。某些情形下,设置是政治上的冲突都会影响到locale的内容。事实上,JAVA平台上的locale做不到“与时具进”。

    有一种解决办法就是提供新的编程接口(API)让编程人员使用任意的 locale 数据。Java SE 6 里提供给编程人员一个新的接口,可让定制的 locale 插到应用程序上或者是关联到服务。幸运的是,当前正在进行的一个项目 Common Locale Data Repository (CLDR通用区域数据仓库)正在努力地跟踪研究现今世界上所有的区域数据并且维护这些数据。Unicode 组织主持这个项目。借助新的“区域相关的服务提供接口”,就可让应用程序
使用任意的与区域相关的数据。

    为了使用区域相关的数据和服务,先要确定应用程序需要什么样的功能。可以为以下列出的类应用与区域相关的数据:
* java.text.BreakIterator
* java.text.Collator
* java.text.DateFormat
* java.text.DateFormatSymbols
* java.text.DecimalFormatSymbols
* java.text.NumberFormat
* java.util.Currency
* java.util.Locale
* java.util.TimeZone

   

上一页  [1] [2] [3] [4] [5] [6] [7] 下一页


  • 上一个Java:
  • 下一个Java:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:Admin@Syue.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    传世私服 传奇世界私服 天龙八部私服 bet365 传世私服 天龙八部私服 热血江湖私服 英雄合击传奇私服 热血江湖私服 bet365 bet365