LocalizableTextFormatter 类
在 com.ibm.websphere.i18n.localizabletext 包中找到的 LocalizableTextFormatter 类是使用可本地化文本包的主要编程接口。该类的实例包含创建键和资源束的特定语言字符串所需的信息。
- java.io.Serializable
- com.ibm.websphere.i18n.localizabletext.LocalizableText
- com.ibm.websphere.i18n.localizabletext.LocalizableTextL
- com.ibm.websphere.i18n.localizabletext.LocalizableTextTZ
- com.ibm.websphere.i18n.localizabletext.LocalizableTextLTZ
创建和初始化类实例
- LocalizableTextFormatter()
- LocalizableTextFormatter(String resourceBundleName, String patternKey, String appName)
- LocalizableTextFormatter(String resourceBundleName, String patternKey, String appName, Object[] args)
- setResourceBundleName(String resourceBundleName)
- setPatternKey(String patternKey)
- setApplicationName(String appName)
可以使用第四种方法 setArguments(Object[] args),以在完成构造后设置可选的本地化值。请参阅主题底部的特定于应用程序的值的处理。有关用法示例,请参阅组成复杂字符串。
格式化文本的 API
- LocalizableText.format()
- LocalizableTextL.format(java.util.Locale locale)
- LocalizableTextTZ.format(java.util.TimeZone timeZone)
- LocalizableTextLTZ.format(java.util.Locale locale, java.util.TimeZone timeZone)
不带自变量的格式方法使用设置为 Java™ 虚拟机缺省值的语言环境和时区值。所有这四种方法将根据需要给出 LocalizableException 对象。
消息目录和 appName 值的位置
与可本地化文本包一起写的应用程序能本地或远程访问消息目录。在分布式环境中,使用远程、集中式定位的消息目录是适当的。所有客户机可使用相同的目录,这样简化了目录的维护。本地格式化在测试环境下是有用的,且在某些情形下是适当的。要支持本地或远程格式化,LocalizableTextFormatter 实例必须表明格式化应用程序的名称。
例如,当应用程序通过使用远程目录格式化消息时,该消息实际上是用服务器上的企业 Bean 格式化的。 尽管可本地化文本包包含代码,以自动查找格式化程序 Bean 并向它发出调用,应用程序需要知道格式化程序 Bean 的名称。LocalizableTextFormatter 类中的几个方法都使用描述为 appName(指格式化应用程序的名称)的值。 不必在其中设置值的应用程序的名称。
消息的高速缓存
LocalizableTextFormatter 实例可以可选地高速缓存已格式化的消息,因此当再次需要这些消息时不需要重新格式化。缺省情况下,没有启用高速缓存,但是您可以使用 LocalizableTextFormatter.setCacheSetting(true) 调用来启用高速缓存。当启用了高速缓存并且调用了格式化方法时,该方法确定消息是否已经被格式化。 如果已格式化,将返回高速缓存的消息。如果在高速缓存中未找到消息,那么将格式化消息并返回给调用者,并且将高速缓存消息的副本以供下次使用。
- setResourceBundleName(String resourceBundleName)
- setPatternKey(String patternKey)
- setApplicationName(String appName)
- setArguments(Object[] args)
提供撤退信息的 API
- setFallBackString(String message)
- setFallBackLocale(Locale locale)
- setFallBackTimeZone(TimeZone timeZone)
有关用法示例,请参阅生成本地化的文本。
特定于应用程序的值的处理
可本地化文本包对基于时区和语言环境的本地化提供本机支持,但是您也可以在其他值的基础上构造消息。 如果需要考虑格式化本地化的文本中除语言环境和时区外的其他变量,那么写您自己的 formatter 类。
- LocalizableTextLTZ
- LocalizableTextL
- LocalizableTextTZ
- LocalizableText
作为一个示例,可本地化文本包提供了一个报告时间和日期的类 (LocalizableTextDateTimeArgument)。 在那个类中,将依照以下三个值本地化日期和时间:语言环境、时区和样式。