本地化 API 支持
com.ibm.websphere.i18n.localizabletext 包包含用于本地化文本的类和接口。
- java.util.Locale
- java.util.TimeZone
- java.util.ResourceBundle
- java.text.MessageFormat
更多有关标准 Java API 的信息,请参阅 全球化:学习资源。
本地化文本程序包合并 Java 支持并将其扩展为分布式环境中简单有效的使用。由应用程序员使用的主类是 LocalizableTextFormatter。该类的实例通常是在服务器程序中创建的,但客户机程序也能创建它们。Formatter 实例是为特定的资源束名称和键创建的。接收 LocalizableTextFormatter 实例的客户机程序调用其格式方法。 此方法使用客户机应用程序的语言环境来检索相应的资源束和组成基于键的特定语言环境消息。
例如,假设分布式应用程序支持法语和英语两种语言环境;服务器使用英语语言环境,客户机使用法语语言环境。 服务器将创建两个资源束,一个是英语的,另一个是法语的。当客户机发出触发消息的请求时,服务器将创建一个包含资源束的名称和消息密钥的 LocalizableTextFormatter 实例,并将此实例传递回客户机。
当客户机接收到 LocalizableTextFormatter 实例,它将调用对象的格式化方法。 通过语言环境和资源束的名称,格式化方法确定支持法语语言环境的资源束的名称,并从法语资源束中接收对应于键的消息。 消息的格式化对客户机是透明的。
- 客户机应用程序通过明确地传递或通过使用缺省值来设置 LocalizableTextFormatter 中的时区和语言环境值。
- 调用 LocalizableTextFormatterEJBFinder 以获取对格式化程序 Bean 的引用。
- 将 LocalizableTextFormatter 实例中的信息(包括客户机的时区和语言环境)发送到格式化 bean。
- 格式化 Bean 使用资源束的名称、消息密钥、时区和语言环境来组成特定于语言的消息。
- 格式化程序 Bean 将已格式化的消息返回给客户机。
- 已格式化的消息将插入到 LocalizableTextFormatter 实例中,并由格式化方法返回。
调用格式化方法至多需要一个远程调用,以联系格式化程序 bean。或者,LocalizableTextFormatter 实例可以高速缓存格式化的消息,以消除后续使用时的远程调用。另外,您可以设置后退字符串,以使应用程序即使无法访问相应的消息目录也可返回可读字符串。
资源束也可本地存储。可本地化文本包提供了一个静态变量,它表明束是在本地 (LocalizableConfiguration.LOCAL) 存储还是在远程(LocalizableConfiguration.REMOTE) 存储。但是,此变量的设置适用运行在同一 Java 虚拟机的所有应用程序。