创建日志资源束和消息文件

您可将写到内部 WebSphere® Application Server 日志的消息转发到其他进程以进行显示。对于在与服务器进程不同的位置上运行的管理控制台上显示的消息,可使用迟绑定进程来本地化。迟绑定意味着当记录消息时,WebSphere Application Server 不对它们进行本地化,而是将本地化延迟到显示消息的进程。

关于此任务

每个接受消息的方法都本地化那些消息。用于提供本地化消息的机制是 IBM® Developer Kit, Java™ Technology Edition 提供的资源束支持。如果您不熟悉由开发者工具箱实现的资源束,您可从各种文本获取更多信息,或通过读 java.util.ResourceBundle、java.util.ListResourceBundle 和 java.util.PropertyResourceBundle 类以及 java.text.MessageFormat 类的 API 文档来获取。

PropertyResourceBundle 类是要使用的首选机制。

要正确地本地化消息,显示进程必须具有对存储消息文本的资源束的访问权。您必须将资源束与应用程序分开来封装,并将它安装在查看进程可访问它的位置。

缺省情况下,WebSphere Application Server 运行时将在所有消息记录后对它们进行本地化。此本地化移除将 .jar 文件传递到应用程序中的需要,除非您需要在另一个位置本地化。但是,可以使用先前的绑定技术在记录消息时对它们进行本地化。使用先前绑定的应用程序必须在记录消息之前对它进行本地化。应用程序在资源束中查找本地化的文本并对消息进行格式化。使用先前的绑定技术将应用程序资源束与应用程序打包在一起。

要创建资源束,执行以下步骤:

过程

  1. 创建列示消息键和相应消息的文本属性文件。 属性文件必须具有以下特征:
    • 文件中的每个属性以行终止字符终止。
    • 如果行仅包含空白,或如果行的首个非空白字符是磅标记符号 (#) 或感叹号 (!),那么忽略此行。#! 字符因此可用于将注释放到文件中。
    • 文件中的每行(除非它是注释或仅包括空白)表示单个属性。反斜杠 (\) 被视为行连续字符。
    • 属性文件的语法由键、分隔符和元素组成。有效的分隔符包括等号 (=)、冒号 (:) 和空白 ( )。
    • 键由行上从首个非空白字符到首个分隔符的所有字符组成。通过用反斜杠 (\) 对分隔字符进行转义而将它们包括在键中,但建议不要做此处理,因为转义字符易于出错和导致混淆。相反,使用没有显示在属性文件中的任何键中的有效分隔字符。
    • 会忽略键和分隔符之后的空白,直到遇到首个非空白字符为止。在行终止字符之前剩余的所有字符定义了元素。

    请参阅 java.util.Properties 类的 Java 文档,以获取属性文件的语法和构造的完整描述。

  2. 将文件翻译成具有语言特定文件名的本地化版本文件。例如,名为 DefaultMessages.properties 的文件可以翻译为德语的 DefaultMessages_de.properties 和日语的 DefaultMessages_ja.properties
  3. 当已翻译的资源束可用时,将该束放到作为应用程序类路径一部分的目录中。
  4. 从记录管理器获取了消息记录器时,配置它以使用特定的资源束。使用记录器 API 记录的消息在消息本地化执行时使用此资源束。 在运行时,用户语言环境设置确定从中抽取由消息密钥指定的消息的属性文件,确保以正确的语言发送消息。
  5. 如果调用消息记录器 msg 方法,那么必须明确提供资源束名。

示例

可以用几种方法来创建资源束。最好最简便的方法是创建支持属性资源束的属性文件。此示例显示如何创建这样的属性文件。

对于此样本,提供了四个可本地化的消息。创建了属性文件并且插入了键-值对。所有普通属性文件约定和规则都适用于此文件。此外,创建者必须知道 Java MessageFormat 类对各值强加的其他限制。例如,必须对撇号进行“转义”,否则它们将引起问题。避免使用不可移植的字符。WebSphere Application Server 不支持使用 MessageFormat 类支持的扩展格式化约定,如 {1, date} 或 {0,number, integer}。

假设使用此资源束的应用程序的基本目录是 baseDir,并且此目录在类路径中。假设属性文件存储在不在类路径中的 baseDir 的子目录中(例如,baseDir/subDir1/subDir2/resources)。为了能够解析消息文件,使用了 subDir1.subDir2.resources.DefaultMessage 名称来标识属性资源束并将它传递至消息记录器。

对于此样本,将属性文件命名为 DefaultMessages.properties

# Contents of the DefaultMessages.properties file 
MSG_KEY_00=A message with no substitution parameters. 
MSG_KEY_01=A message with one substitution parameter: parm1={0} 
MSG_KEY_02=A message with two substitution parameters: parm1={0}, parm2 = {1} 
MSG_KEY_03=A message with three parameter: parm1={0}, parm2 = {1}, parm3={2} 

当创建 DefaultMessages.properties 文件时,可将该文件发送至生成本地化版本的翻译中心。

下一步做什么

应用程序根据相对于类路径中任何目录的文件位置定位资源束。例如,如果 DefaultMessages.properties 属性资源束位于 baseDir/subDir1/subDir2/resources 目录,并且 baseDir 在类路径中,那么名称 subdir1.subdir2.resources.DefaultMessage 传递到消息记录器以标识资源束。

指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=ttrb_logresourcebun
文件名:ttrb_logresourcebun.html