[jboss-cvs] JBossAS SVN: r102761 - projects/docs/enterprise/5.0/Administration_And_Configuration_Guide/zh-CN.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Mar 23 02:05:22 EDT 2010


Author: xhuang at jboss.com
Date: 2010-03-23 02:05:22 -0400 (Tue, 23 Mar 2010)
New Revision: 102761

Modified:
   projects/docs/enterprise/5.0/Administration_And_Configuration_Guide/zh-CN/Clustering_Guide_JBoss_Cache_JGroups.po
   projects/docs/enterprise/5.0/Administration_And_Configuration_Guide/zh-CN/EJB3.po
Log:
update

Modified: projects/docs/enterprise/5.0/Administration_And_Configuration_Guide/zh-CN/Clustering_Guide_JBoss_Cache_JGroups.po
===================================================================
--- projects/docs/enterprise/5.0/Administration_And_Configuration_Guide/zh-CN/Clustering_Guide_JBoss_Cache_JGroups.po	2010-03-23 06:02:56 UTC (rev 102760)
+++ projects/docs/enterprise/5.0/Administration_And_Configuration_Guide/zh-CN/Clustering_Guide_JBoss_Cache_JGroups.po	2010-03-23 06:05:22 UTC (rev 102761)
@@ -8,8 +8,8 @@
 "Project-Id-Version: Clustering_Guide_JNDI\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2010-03-09T00:18:00\n"
-"PO-Revision-Date: 2009-02-02 20:07+1000\n"
-"Last-Translator: Xi HUANG\n"
+"PO-Revision-Date: 2010-03-23 15:37+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -22,33 +22,14 @@
 msgstr "JBossCache 和 JGroups 服务"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<indexterm><primary>Clustering</primary><secondary>JBossCache and JGroups "
-"Services</secondary></indexterm> JGroups and JBossCache provide the "
-"underlying communication, node replication and caching services, for JBoss "
-"Enterprise Application Platform clusters. Those services are configured as "
-"MBeans. There is a set of JBossCache and JGroups MBeans for each type of "
-"clustering applications (e.g., the Stateful Session EJBs, HTTP session "
-"replication etc.)."
-msgstr ""
-"JGroups 和 JBossCache 为 JBoss AS 群集提供底层的通信,节点复制和缓存服务。这"
-"些服务都配置为 MBean。对于每一个类型的群集应用程序(如 Stateful Session "
-"EJBs, distributed entity EJBs 等),都有一个 JBossCache 和 JGroups 的 "
-"MBeans 的集合。"
+#, no-c-format
+msgid "<indexterm><primary>Clustering</primary><secondary>JBossCache and JGroups Services</secondary></indexterm> JGroups and JBossCache provide the underlying communication, node replication and caching services, for JBoss Enterprise Application Platform clusters. Those services are configured as MBeans. There is a set of JBossCache and JGroups MBeans for each type of clustering applications (e.g., the Stateful Session EJBs, HTTP session replication etc.)."
+msgstr "<indexterm><primary>Clustering</primary><secondary>JBossCache and JGroups Services</secondary></indexterm> JGroups 和 JBossCache 为 JBoss AS 群集提供底层的通信,节点复制和缓存服务。这些服务都配置为 MBean。对于每一个类型的群集应用程序(如 Stateful Session EJBs,HTTP 会话复制等),都有一个 JBossCache 和 JGroups 的 MBeans 的集合。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The JBoss Enterprise Application Platform ships with a reasonable set of "
-"default JGroups and JBossCache MBean configurations. Most applications just "
-"work out of the box with the default MBean configurations. You only need to "
-"tweak them when you are deploying an application that has special network or "
-"performance requirements."
-msgstr ""
-"JBoss AS 带有缺省的 JGroups 和 JBossCache 的配置集。大部分应用程序使用这些缺"
-"省的配置就够了。只是在部署有特殊网络或性能要求的应用程序时,你才需要做更多的"
-"配置。"
+#, no-c-format
+msgid "The JBoss Enterprise Application Platform ships with a reasonable set of default JGroups and JBossCache MBean configurations. Most applications just work out of the box with the default MBean configurations. You only need to tweak them when you are deploying an application that has special network or performance requirements."
+msgstr "JBoss 企业级应用程序平台带有缺省的 JGroups 和 JBossCache 的配置集。大部分应用程序使用这些缺省的配置就够了。只是在部署有特殊网络或性能要求的应用程序时,你才需要做更多的配置。 "
 
 #. Tag: title
 #, no-c-format
@@ -56,19 +37,9 @@
 msgstr "JGroups Configuration"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The JGroups framework provides services to enable peer-to-peer "
-"communications between nodes in a cluster. It is built on top a stack of "
-"network communication protocols that provide transport, discovery, "
-"reliability and failure detection, and cluster membership management "
-"services. <xref linkend=\"jbosscache-JGroupsStack.fig\" /> shows the "
-"protocol stack in JGroups."
-msgstr ""
-"JGroups 框架提供了启用群集系统里节点间到对点通信的服务。它建立在网络通信协议"
-"栈的顶层,它提供传输,发现(discovery),可靠性(reliability)和故障"
-"(failure)检测,以及群集成员资格管理服务。<xref linkend=\"jbosscache-"
-"JGroupsStack.fig\"/> 展示了 JGroups 的协议栈。"
+#, no-c-format
+msgid "The JGroups framework provides services to enable peer-to-peer communications between nodes in a cluster. It is built on top a stack of network communication protocols that provide transport, discovery, reliability and failure detection, and cluster membership management services. <xref linkend=\"jbosscache-JGroupsStack.fig\" /> shows the protocol stack in JGroups."
+msgstr "JGroups 框架提供了启用群集系统里节点间到对点通信的服务。它建立在网络通信协议栈的顶层,它提供传输,发现(discovery),可靠性(reliability)和故障(failure)检测,以及群集成员资格管理服务。<xref linkend=\"jbosscache-JGroupsStack.fig\"/> 展示了 JGroups 的协议栈。 "
 
 #. Tag: title
 #, no-c-format
@@ -77,40 +48,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"JGroups configurations often appear as a nested attribute in cluster related "
-"MBean services, such as the <literal>PartitionConfig</literal> attribute in "
-"the <literal>ClusterPartition</literal> MBean or the <literal>ClusterConfig</"
-"literal> attribute in the <literal>TreeCache</literal> MBean. You can "
-"configure the behavior and properties of each protocol in JGroups via those "
-"MBean attributes. Below is an example JGroups configuration in the "
-"<literal>ClusterPartition</literal> MBean."
-msgstr ""
-"JGroups 配置经常以和群集相关的 MBean 服务的嵌套属性的面目出现,例如  "
-"<literal>ClusterPartition</literal> MBean 的<literal>PartitionConfig</"
-"literal> 属性或 <literal>TreeCache</literal> MBean 的  "
-"<literal>ClusterConfig</literal> 属性。你可以通过这些 MBean 属性来配置 "
-"JGroups 每一个协议的行为和属性(properties)。下面是一个 "
-"<literal>ClusterPartition</literal> MBean 里的 JGroups 配置的例子。"
+msgid "JGroups configurations often appear as a nested attribute in cluster related MBean services, such as the <literal>PartitionConfig</literal> attribute in the <literal>ClusterPartition</literal> MBean or the <literal>ClusterConfig</literal> attribute in the <literal>TreeCache</literal> MBean. You can configure the behavior and properties of each protocol in JGroups via those MBean attributes. Below is an example JGroups configuration in the <literal>ClusterPartition</literal> MBean."
+msgstr "JGroups 配置经常以和群集相关的 MBean 服务的嵌套属性的面目出现,例如  <literal>ClusterPartition</literal> MBean 的<literal>PartitionConfig</literal> 属性或 <literal>TreeCache</literal> MBean 的  <literal>ClusterConfig</literal> 属性。你可以通过这些 MBean 属性来配置 JGroups 每一个协议的行为和属性(properties)。下面是一个 <literal>ClusterPartition</literal> MBean 里的 JGroups 配置的例子。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"All the JGroups configuration data is contained in the &lt;Config&gt; "
-"element under the JGroups config MBean attribute. This information is used "
-"to configure a JGroups Channel; the Channel is conceptually similar to a "
-"socket, and manages communication between peers in a cluster. Each element "
-"inside the &lt;Config&gt; element defines a particular JGroups Protocol; "
-"each Protocol performs one function, and the combination of those functions "
-"is what defines the characteristics of the overall Channel. In the next "
-"several sections, we will dig into the commonly used protocols and their "
-"options and explain exactly what they mean."
-msgstr ""
-"JGroups config MBean 属性下的 &lt;Config&gt; 元素包含了所有的 JGroups 配置数"
-"据。这些信息被用来配置 JGroups 频道。频道(Channel)从概念上来说和套接字类"
-"似,它管理群集里点对点的通信。&lt;Config&gt; 元素里的每个元素都定义了一个 "
-"JGroups 协议。每个协议都执行一种功能,这些功能的组合就定义了  overall频道的特"
-"征。在下面的章节里,我们将讨论常用的协议及选项并解释其意义。"
+msgid "All the JGroups configuration data is contained in the &lt;Config&gt; element under the JGroups config MBean attribute. This information is used to configure a JGroups Channel; the Channel is conceptually similar to a socket, and manages communication between peers in a cluster. Each element inside the &lt;Config&gt; element defines a particular JGroups Protocol; each Protocol performs one function, and the combination of those functions is what defines the characteristics of the overall Channel. In the next several sections, we will dig into the commonly used protocols and their options and explain exactly what they mean."
+msgstr "JGroups config MBean 属性下的 &lt;Config&gt; 元素包含了所有的 JGroups 配置数据。这些信息被用来配置 JGroups 频道。频道(Channel)从概念上来说和套接字类似,它管理群集里点对点的通信。&lt;Config&gt; 元素里的每个元素都定义了一个 JGroups 协议。每个协议都执行一种功能,这些功能的组合就定义了  overall频道的特征。在下面的章节里,我们将讨论常用的协议及选项并解释其意义。"
 
 #. Tag: title
 #, no-c-format
@@ -119,50 +63,23 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The following common properties are exposed by all of the JGroups protocols "
-"discussed below:"
+msgid "The following common properties are exposed by all of the JGroups protocols discussed below:"
 msgstr "下面的常用属性是所有的 JGroups 协议都开放的:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>down_thread</literal> whether the protocol should create an "
-"internal queue and a queue processing thread (aka the down_thread) for "
-"messages passed down from higher layers. The higher layer could be another "
-"protocol higher in the stack, or the application itself, if the protocol is "
-"the top one on the stack. If true (the default), when a message is passed "
-"down from a higher layer, the calling thread places the message in the "
-"protocol's queue, and then returns immediately. The protocol's down_thread "
-"is responsible for reading messages off the queue, doing whatever protocol-"
-"specific processing is required, and passing the message on to the next "
-"protocol in the stack."
-msgstr ""
-"<literal>down_thread</literal>:协议是否应该为从更高层传递下来的消息创建一个"
-"内部队列和队列处理线程(也称为 down_thread)。更高层可以是栈里的另外一个协"
-"议,或者是应用程序本身(如果这个协议已是栈里的顶层)。它如果为 true(缺省"
-"值),当消息从更高层传递下来时,调用线程把这个消息放入协议的队列里,然后立即"
-"返回。协议的 down_thread 负责从队列里读取消息,完成协议专有的处理,然后把消息"
-"传递给栈里下一个协议。"
+msgid "<literal>down_thread</literal> whether the protocol should create an internal queue and a queue processing thread (aka the down_thread) for messages passed down from higher layers. The higher layer could be another protocol higher in the stack, or the application itself, if the protocol is the top one on the stack. If true (the default), when a message is passed down from a higher layer, the calling thread places the message in the protocol's queue, and then returns immediately. The protocol's down_thread is responsible for reading messages off the queue, doing whatever protocol-specific processing is required, and passing the message on to the next protocol in the stack."
+msgstr "<literal>down_thread</literal>:协议是否应该为从更高层传递下来的消息创建一个内部队列和队列处理线程(也称为 down_thread)。更高层可以是栈里的另外一个协议,或者是应用程序本身(如果这个协议已是栈里的顶层)。它如果为 true(缺省值),当消息从更高层传递下来时,调用线程把这个消息放入协议的队列里,然后立即返回。协议的 down_thread 负责从队列里读取消息,完成协议专有的处理,然后把消息传递给栈里下一个协议。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>up_thread</literal> is conceptually similar to down_thread, but "
-"here the queue and thread are for messages received from lower layers in the "
-"protocol stack."
-msgstr ""
-"<literal>up_thread</literal> 从概念上来说类似于 down_thread,但它的队列和线程"
-"用于从更低层传递上来的消息。"
+msgid "<literal>up_thread</literal> is conceptually similar to down_thread, but here the queue and thread are for messages received from lower layers in the protocol stack."
+msgstr "<literal>up_thread</literal> 从概念上来说类似于 down_thread,但它的队列和线程用于从更低层传递上来的消息。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Generally speaking, <literal>up_thread</literal> and <literal>down_thread</"
-"literal> should be set to false."
-msgstr ""
-"通常来说,<literal>up_thread</literal> 和 <literal>down_thread</literal> 都应"
-"该设置为 false。"
+msgid "Generally speaking, <literal>up_thread</literal> and <literal>down_thread</literal> should be set to false."
+msgstr "通常来说,<literal>up_thread</literal> 和 <literal>down_thread</literal> 都应该设置为 false。"
 
 #. Tag: title
 #, no-c-format
@@ -171,25 +88,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The transport protocols send messages from one cluster node to another "
-"(unicast) or from cluster node to all other nodes in the cluster (mcast). "
-"JGroups supports UDP, TCP, and TUNNEL as transport protocols."
-msgstr ""
-"传输协议(transport protocols)从一个群集节点发送信息到另外一个节点(单播 "
-"unicast)或发送到群集里所有其他节点(mcast)。JGroups 支持 UDP,TCP 和 "
-"TUNNEL 等传输协议。"
+msgid "The transport protocols send messages from one cluster node to another (unicast) or from cluster node to all other nodes in the cluster (mcast). JGroups supports UDP, TCP, and TUNNEL as transport protocols."
+msgstr "传输协议(transport protocols)从一个群集节点发送信息到另外一个节点(单播 unicast)或发送到群集里所有其他节点(mcast)。JGroups 支持 UDP,TCP 和 TUNNEL 等传输协议。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>UDP</literal>, <literal>TCP</literal>, and <literal>TUNNEL</"
-"literal> elements are mutually exclusive. You can only have one transport "
-"protocol in each JGroups <literal>Config</literal> element"
-msgstr ""
-"<literal>UDP</literal>,<literal>TCP</literal> 和 <literal>TUNNEL</literal> "
-"元素是相互排斥的。你只能在每个 JGroups <literal>Config</literal> 元素里使用一"
-"个传输协议。"
+msgid "The <literal>UDP</literal>, <literal>TCP</literal>, and <literal>TUNNEL</literal> elements are mutually exclusive. You can only have one transport protocol in each JGroups <literal>Config</literal> element"
+msgstr "<literal>UDP</literal>,<literal>TCP</literal> 和 <literal>TUNNEL</literal> 元素是相互排斥的。你只能在每个 JGroups <literal>Config</literal> 元素里使用一个传输协议。"
 
 #. Tag: title
 #, no-c-format
@@ -198,226 +103,93 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"UDP is the preferred protocol for JGroups. UDP uses multicast or multiple "
-"unicasts to send and receive messages. If you choose UDP as the transport "
-"protocol for your cluster service, you need to configure it in the "
-"<literal>UDP</literal> sub-element in the JGroups <literal>Config</literal> "
-"element. Here is an example."
-msgstr ""
-"UDP 是 JGroups 的首选协议。UDP 使用多点传送(multicast )或多个单播"
-"(unicast)来发送和接收信息。如果你选择 UDP 作为你的群集服务的传输协议,你需"
-"要在 JGroups <literal>Config</literal> 元素的 <literal>UDP</literal> 子元素里"
-"配置它。下面是一个示例。"
+msgid "UDP is the preferred protocol for JGroups. UDP uses multicast or multiple unicasts to send and receive messages. If you choose UDP as the transport protocol for your cluster service, you need to configure it in the <literal>UDP</literal> sub-element in the JGroups <literal>Config</literal> element. Here is an example."
+msgstr "UDP 是 JGroups 的首选协议。UDP 使用多点传送(multicast )或多个单播(unicast)来发送和接收信息。如果你选择 UDP 作为你的群集服务的传输协议,你需要在 JGroups <literal>Config</literal> 元素的 <literal>UDP</literal> 子元素里配置它。下面是一个示例。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The available attributes in the above JGroups configuration are listed below."
+msgid "The available attributes in the above JGroups configuration are listed below."
 msgstr "下列是在上述 JGroups 配置里的可用属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">ip_mcast</emphasis> specifies whether or not to use "
-"IP multicasting. The default is <literal>true</literal>. If set to false, it "
-"will send n unicast packets rather than 1 multicast packet. Either way, "
-"packets are UDP datagrams."
-msgstr ""
-"<emphasis role=\"bold\">ip_mcast</emphasis> 指定是否使用 IP 多点传送"
-"(multicasting)。它的缺省值是 <literal>true</literal>。如果为 false,它将发"
-"送 n 个单播数据包而不是一个多点传送数据包。这两种情况都是 UDP 数据包。"
+msgid "<emphasis role=\"bold\">ip_mcast</emphasis> specifies whether or not to use IP multicasting. The default is <literal>true</literal>. If set to false, it will send n unicast packets rather than 1 multicast packet. Either way, packets are UDP datagrams."
+msgstr "<emphasis role=\"bold\">ip_mcast</emphasis> 指定是否使用 IP 多点传送(multicasting)。它的缺省值是 <literal>true</literal>。如果为 false,它将发送 n 个单播数据包而不是一个多点传送数据包。这两种情况都是 UDP 数据包。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">mcast_addr</emphasis> specifies the multicast "
-"address (class D) for joining a group (i.e., the cluster). If omitted, the "
-"default is <literal>228.8.8.8 </literal>."
-msgstr ""
-"<emphasis role=\"bold\">mcast_addr</emphasis> 指定加入到组(就是群集)里的多"
-"点传送地址(class D)。它的缺省值是 <literal>228.8.8.8</literal>。 "
+msgid "<emphasis role=\"bold\">mcast_addr</emphasis> specifies the multicast address (class D) for joining a group (i.e., the cluster). If omitted, the default is <literal>228.8.8.8 </literal>."
+msgstr "<emphasis role=\"bold\">mcast_addr</emphasis> 指定加入到组(就是群集)里的多点传送地址(class D)。它的缺省值是 <literal>228.8.8.8</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">mcast_port</emphasis> specifies the multicast port "
-"number. If omitted, the default is <literal>45566</literal>."
-msgstr ""
-"<emphasis role=\"bold\">mcast_port</emphasis> 指定多点传送端口号码。它的缺省"
-"值是 <literal>45566</literal>。"
+msgid "<emphasis role=\"bold\">mcast_port</emphasis> specifies the multicast port number. If omitted, the default is <literal>45566</literal>."
+msgstr "<emphasis role=\"bold\">mcast_port</emphasis> 指定多点传送端口号码。它的缺省值是 <literal>45566</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">bind_addr</emphasis> specifies the interface on "
-"which to receive and send multicasts (uses the <literal>-Djgroups."
-"bind_address</literal> system property, if present). If you have a "
-"multihomed machine, set the <literal>bind_addr</literal> attribute or system "
-"property to the appropriate NIC IP address. By default, system property "
-"setting takes priority over XML attribute unless -Djgroups.ignore.bind_addr "
-"system property is set."
-msgstr ""
-"<emphasis role=\"bold\">bind_addr</emphasis> 指定接收和发送多点传送的接口(如"
-"果可用,使用 <literal>-Djgroups.bind_address</literal> 系统属性)。如果你有一"
-"个多宿主主机,把 <literal>bind_addr</literal> 属性设置为合适的 NIC IP 地址。"
-"在缺省情况下,除非设置了 -Djgroups.ignore.bind_addr 系统属性,系统属性将比 "
-"XML 属性具有更高的优先级。"
+msgid "<emphasis role=\"bold\">bind_addr</emphasis> specifies the interface on which to receive and send multicasts (uses the <literal>-Djgroups.bind_address</literal> system property, if present). If you have a multihomed machine, set the <literal>bind_addr</literal> attribute or system property to the appropriate NIC IP address. By default, system property setting takes priority over XML attribute unless -Djgroups.ignore.bind_addr system property is set."
+msgstr "<emphasis role=\"bold\">bind_addr</emphasis> 指定接收和发送多点传送的接口(如果可用,使用 <literal>-Djgroups.bind_address</literal> 系统属性)。如果你有一个多宿主主机,把 <literal>bind_addr</literal> 属性设置为合适的 NIC IP 地址。在缺省情况下,除非设置了 -Djgroups.ignore.bind_addr 系统属性,系统属性将比 XML 属性具有更高的优先级。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">receive_on_all_interfaces </emphasis> specifies "
-"whether this node should listen on all interfaces for multicasts. The "
-"default is <literal>false</literal>. It overrides the <literal>bind_addr</"
-"literal> property for receiving multicasts. However, <literal>bind_addr</"
-"literal> (if set) is still used to send multicasts."
-msgstr ""
-"<emphasis role=\"bold\">receive_on_all_interfaces </emphasis> 指定是否这个节"
-"点应该为多点传送侦听所有的接口。它的缺省值是 <literal>false</literal>。它覆盖"
-"了接收多点传送的 <literal>bind_addr</literal> 属性。然而,"
-"<literal>bind_addr</literal>(如果设置了)仍会用来发送多点传送信息。 "
+msgid "<emphasis role=\"bold\">receive_on_all_interfaces </emphasis> specifies whether this node should listen on all interfaces for multicasts. The default is <literal>false</literal>. It overrides the <literal>bind_addr</literal> property for receiving multicasts. However, <literal>bind_addr</literal> (if set) is still used to send multicasts."
+msgstr "<emphasis role=\"bold\">receive_on_all_interfaces </emphasis> 指定是否这个节点应该为多点传送侦听所有的接口。它的缺省值是 <literal>false</literal>。它覆盖了接收多点传送的 <literal>bind_addr</literal> 属性。然而,<literal>bind_addr</literal>(如果设置了)仍会用来发送多点传送信息。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">send_on_all_interfaces</emphasis> specifies whether "
-"this node send UDP packets via all the NICs if you have a multi NIC machine. "
-"This means that the same multicast message is sent N times, so use with care."
-msgstr ""
-"<emphasis role=\"bold\">send_on_all_interfaces</emphasis> 指定是否这个节点通"
-"过所有的网卡(如果有)发送 UDP 数据包。这表示相同的多点传送消息将被发送 N "
-"次,所以请小心使用。"
+msgid "<emphasis role=\"bold\">send_on_all_interfaces</emphasis> specifies whether this node send UDP packets via all the NICs if you have a multi NIC machine. This means that the same multicast message is sent N times, so use with care."
+msgstr "<emphasis role=\"bold\">send_on_all_interfaces</emphasis> 指定是否这个节点通过所有的网卡(如果有)发送 UDP 数据包。这表示相同的多点传送消息将被发送 N 次,所以请小心使用。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">receive_interfaces</emphasis> specifies a list of of "
-"interfaces to receive multicasts on. The multicast receive socket will "
-"listen on all of these interfaces. This is a comma-separated list of IP "
-"addresses or interface names. E.g. \"<literal>192.168.5.1,eth1,127.0.0.1</"
-"literal>\"."
-msgstr ""
-"<emphasis role=\"bold\">receive_interfaces</emphasis> 指定接收多点传送消息的"
-"接口列表。多点传送接收套接字将侦听所有这些接口。这是一个用逗号隔开的 IP 地址"
-"或接口名称的列表。例如:\"<literal>192.168.5.1,eth1,127.0.0.1</literal>\"。"
+msgid "<emphasis role=\"bold\">receive_interfaces</emphasis> specifies a list of of interfaces to receive multicasts on. The multicast receive socket will listen on all of these interfaces. This is a comma-separated list of IP addresses or interface names. E.g. \"<literal>192.168.5.1,eth1,127.0.0.1</literal>\"."
+msgstr "<emphasis role=\"bold\">receive_interfaces</emphasis> 指定接收多点传送消息的接口列表。多点传送接收套接字将侦听所有这些接口。这是一个用逗号隔开的 IP 地址或接口名称的列表。例如:\"<literal>192.168.5.1,eth1,127.0.0.1</literal>\"。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">ip_ttl</emphasis> specifies time-to-live for IP "
-"Multicast packets. TTL is the commonly used term in multicast networking, "
-"but is actually something of a misnomer, since the value here refers to how "
-"many network hops a packet will be allowed to travel before networking "
-"equipment will drop it."
-msgstr ""
-"<emphasis role=\"bold\">ip_ttl</emphasis> 指定 IP 多点传送数据包的 time-to-"
-"live。在多点传送网络里,TTL 是一个常用的术语,但实际上算是取名不当,因为这里"
-"指的是在网络设备取消数据包之前可以允许的网络 hop 的次数。"
+msgid "<emphasis role=\"bold\">ip_ttl</emphasis> specifies time-to-live for IP Multicast packets. TTL is the commonly used term in multicast networking, but is actually something of a misnomer, since the value here refers to how many network hops a packet will be allowed to travel before networking equipment will drop it."
+msgstr "<emphasis role=\"bold\">ip_ttl</emphasis> 指定 IP 多点传送数据包的 time-to-live。在多点传送网络里,TTL 是一个常用的术语,但实际上算是取名不当,因为这里指的是在网络设备取消数据包之前可以允许的网络 hop 的次数。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">use_incoming_packet_handler</emphasis> specifies "
-"whether to use a separate thread to process incoming messages. Sometimes "
-"receivers are overloaded (they have to handle de-serialization etc). Packet "
-"handler is a separate thread taking care of de-serialization, receiver thread"
-"(s) simply put packet in queue and return immediately. Setting this to true "
-"adds one more thread. The default is <literal>true</literal>."
-msgstr ""
-"<emphasis role=\"bold\">use_incoming_packet_handler</emphasis> 指定是否使用独"
-"立的线程来处理转入消息。有时候接收者会超载(它们得处理解序列化等)。数据包处"
-"理程序是一个独立的线程,它处理解序列化,接收者线程则只需简单地把数据包放入队"
-"列并马上返回。把它设置为 true 将增加一个线程。它的缺省值为 <literal>true</"
-"literal>。"
+msgid "<emphasis role=\"bold\">use_incoming_packet_handler</emphasis> specifies whether to use a separate thread to process incoming messages. Sometimes receivers are overloaded (they have to handle de-serialization etc). Packet handler is a separate thread taking care of de-serialization, receiver thread(s) simply put packet in queue and return immediately. Setting this to true adds one more thread. The default is <literal>true</literal>."
+msgstr "<emphasis role=\"bold\">use_incoming_packet_handler</emphasis> 指定是否使用独立的线程来处理转入消息。有时候接收者会超载(它们得处理解序列化等)。数据包处理程序是一个独立的线程,它处理解序列化,接收者线程则只需简单地把数据包放入队列并马上返回。把它设置为 true 将增加一个线程。它的缺省值为 <literal>true</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">use_outgoing_packet_handler</emphasis> specifies "
-"whether to use a separate thread to process outgoing messages. The default "
-"is false."
-msgstr ""
-"<emphasis role=\"bold\">use_outgoing_packet_handler</emphasis> 指定是否使用单"
-"独的线程来处理转出消息。缺省值为 false。"
+msgid "<emphasis role=\"bold\">use_outgoing_packet_handler</emphasis> specifies whether to use a separate thread to process outgoing messages. The default is false."
+msgstr "<emphasis role=\"bold\">use_outgoing_packet_handler</emphasis> 指定是否使用单独的线程来处理转出消息。缺省值为 false。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">enable_bundling</emphasis> specifies whether to "
-"enable message bundling. If it is <literal>true</literal>, the node would "
-"queue outgoing messages until <literal>max_bundle_size</literal> bytes have "
-"accumulated, or <literal>max_bundle_time</literal> milliseconds have "
-"elapsed, whichever occurs first. Then bundle queued messages into a large "
-"message and send it. The messages are unbundled at the receiver. The default "
-"is <literal>false</literal>."
-msgstr ""
-"<emphasis role=\"bold\">enable_bundling</emphasis> 指定是否启用消息捆绑"
-"(bundling)。如果它设为<literal>true</literal>,节点将会把输出的信息排队,一"
-"直到积累了 <literal>max_bundle_size</literal> 个字节,或者是 "
-"<literal>max_bundle_time</literal> 毫秒后,依哪个先发生而定。然后把排队的信息"
-"捆绑成一个大的信息发送出去。这个信息在接收端再解开。它的缺省值是 "
-"<literal>false</literal>。"
+msgid "<emphasis role=\"bold\">enable_bundling</emphasis> specifies whether to enable message bundling. If it is <literal>true</literal>, the node would queue outgoing messages until <literal>max_bundle_size</literal> bytes have accumulated, or <literal>max_bundle_time</literal> milliseconds have elapsed, whichever occurs first. Then bundle queued messages into a large message and send it. The messages are unbundled at the receiver. The default is <literal>false</literal>."
+msgstr "<emphasis role=\"bold\">enable_bundling</emphasis> 指定是否启用消息捆绑(bundling)。如果它设为<literal>true</literal>,节点将会把输出的信息排队,一直到积累了 <literal>max_bundle_size</literal> 个字节,或者是 <literal>max_bundle_time</literal> 毫秒后,依哪个先发生而定。然后把排队的信息捆绑成一个大的信息发送出去。这个信息在接收端再解开。它的缺省值是 <literal>false</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">loopback</emphasis> specifies whether to loop "
-"outgoing message back up the stack. In <literal>unicast</literal> mode, the "
-"messages are sent to self. In <literal>mcast</literal> mode, a copy of the "
-"mcast message is sent. The default is <literal>false</literal>"
-msgstr ""
-"<emphasis role=\"bold\">loopback</emphasis> 指定是否在堆栈里回送(loop back)"
-"输出信息。在单播 <literal>unicast</literal> 模式下,信息都会发送给自己。如果"
-"是 <literal>mcast</literal> 模式,多点传送信息的备份将被发送。它的缺省值是 "
-"<literal>false</literal>。"
+msgid "<emphasis role=\"bold\">loopback</emphasis> specifies whether to loop outgoing message back up the stack. In <literal>unicast</literal> mode, the messages are sent to self. In <literal>mcast</literal> mode, a copy of the mcast message is sent. The default is <literal>false</literal>"
+msgstr "<emphasis role=\"bold\">loopback</emphasis> 指定是否在堆栈里回送(loop back)输出信息。在单播 <literal>unicast</literal> 模式下,信息都会发送给自己。如果是 <literal>mcast</literal> 模式,多点传送信息的备份将被发送。它的缺省值是 <literal>false</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">discard_incompatibe_packets</emphasis> specifies "
-"whether to discard packets from different JGroups versions. Each message in "
-"the cluster is tagged with a JGroups version. When a message from a "
-"different version of JGroups is received, it will be discarded if set to "
-"true, otherwise a warning will be logged. The default is <literal>false</"
-"literal>"
-msgstr ""
-"<emphasis role=\"bold\">discard_incompatibe_packets</emphasis> 指定是否丢弃从"
-"不同版本的 JGroups 过来的数据包。群集里的每个数据包都用 JGroups 版本号来标"
-"记。如果它设置为 true,当接收到一个不同 JGroups 版本的信息时,这个信息将被丢"
-"弃; 否则,将记录一个警告。它的缺省值是 <literal>false</literal>。"
+msgid "<emphasis role=\"bold\">discard_incompatibe_packets</emphasis> specifies whether to discard packets from different JGroups versions. Each message in the cluster is tagged with a JGroups version. When a message from a different version of JGroups is received, it will be discarded if set to true, otherwise a warning will be logged. The default is <literal>false</literal>"
+msgstr "<emphasis role=\"bold\">discard_incompatibe_packets</emphasis> 指定是否丢弃从不同版本的 JGroups 过来的数据包。群集里的每个数据包都用 JGroups 版本号来标记。如果它设置为 true,当接收到一个不同 JGroups 版本的信息时,这个信息将被丢弃; 否则,将记录一个警告。它的缺省值是 <literal>false</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">mcast_send_buf_size, mcast_recv_buf_size, "
-"ucast_send_buf_size, ucast_recv_buf_size</emphasis> define receive and send "
-"buffer sizes. It is good to have a large receiver buffer size, so packets "
-"are less likely to get dropped due to buffer overflow."
-msgstr ""
-"<emphasis role=\"bold\">mcast_send_buf_size,mcast_recv_buf_size,"
-"ucast_send_buf_size,ucast_recv_buf_size</emphasis> 定义接收和发送的缓冲区大"
-"小。设置大的接收缓冲区会比较好,这样数据包就不会因为缓冲区溢出而被丢弃。"
+msgid "<emphasis role=\"bold\">mcast_send_buf_size, mcast_recv_buf_size, ucast_send_buf_size, ucast_recv_buf_size</emphasis> define receive and send buffer sizes. It is good to have a large receiver buffer size, so packets are less likely to get dropped due to buffer overflow."
+msgstr "<emphasis role=\"bold\">mcast_send_buf_size,mcast_recv_buf_size,ucast_send_buf_size,ucast_recv_buf_size</emphasis> 定义接收和发送的缓冲区大小。设置大的接收缓冲区会比较好,这样数据包就不会因为缓冲区溢出而被丢弃。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>tos</literal> specifies traffic class for sending unicast and "
-"multicast datagrams."
-msgstr ""
-"<literal>tos</literal> 指定发送单播和多点传送数据包的流量类型(traffic "
-"class)。"
+msgid "<literal>tos</literal> specifies traffic class for sending unicast and multicast datagrams."
+msgstr "<literal>tos</literal> 指定发送单播和多点传送数据包的流量类型(traffic class)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"On Windows 2000 machines, because of the media sense feature being broken "
-"with multicast (even after disabling media sense), you need to set the UDP "
-"protocol's <literal>loopback</literal> attribute to <literal>true</literal>."
-msgstr ""
-"在安装 Windows 2000 的机器里,由于 media sense 特征与多点传送冲突(即使你关闭"
-"了 media sense),你需要把 UDP 协议的 <literal>loopback</literal> 属性设为 "
-"<literal>true</literal>。"
+msgid "On Windows 2000 machines, because of the media sense feature being broken with multicast (even after disabling media sense), you need to set the UDP protocol's <literal>loopback</literal> attribute to <literal>true</literal>."
+msgstr "在安装 Windows 2000 的机器里,由于 media sense 特征与多点传送冲突(即使你关闭了 media sense),你需要把 UDP 协议的 <literal>loopback</literal> 属性设为 <literal>true</literal>。"
 
 #. Tag: title
 #, no-c-format
@@ -426,184 +198,68 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Alternatively, a JGroups-based cluster can also work over TCP connections. "
-"Compared with UDP, TCP generates more network traffic when the cluster size "
-"increases. TCP is fundamentally a unicast protocol. To send multicast "
-"messages, JGroups uses multiple TCP unicasts. To use TCP as a transport "
-"protocol, you should define a <literal>TCP</literal> element in the JGroups "
-"<literal>Config</literal> element. Here is an example of the <literal>TCP</"
-"literal> element."
-msgstr ""
-"另外,基于 JGroups 的群集系统也可以使用 TCP 连接。和 UDP 相比,当群集规模扩大"
-"时 TCP 会产生更多的网络流量,但是 TCP 更加可靠。TCP 从根本来说是一个单播"
-"(unicast)的协议。为了发送多点传送的信息,JGroups 使用多个 TCP 单播。如要把 "
-"TCP 作为一个传输协议来使用,你应该定义 JGroups <literal>Config</literal> 元素"
-"里的 <literal>TCP</literal> 元素。这是一个 <literal>TCP</literal> 元素的例"
-"子。 "
+msgid "Alternatively, a JGroups-based cluster can also work over TCP connections. Compared with UDP, TCP generates more network traffic when the cluster size increases. TCP is fundamentally a unicast protocol. To send multicast messages, JGroups uses multiple TCP unicasts. To use TCP as a transport protocol, you should define a <literal>TCP</literal> element in the JGroups <literal>Config</literal> element. Here is an example of the <literal>TCP</literal> element."
+msgstr "另外,基于 JGroups 的群集系统也可以使用 TCP 连接。和 UDP 相比,当群集规模扩大时 TCP 会产生更多的网络流量,但是 TCP 更加可靠。TCP 从根本来说是一个单播(unicast)的协议。为了发送多点传送的信息,JGroups 使用多个 TCP 单播。如要把 TCP 作为一个传输协议来使用,你应该定义 JGroups <literal>Config</literal> 元素里的 <literal>TCP</literal> 元素。这是一个 <literal>TCP</literal> 元素的例子。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Below are the attributes available in the <literal>TCP</literal> element."
+msgid "Below are the attributes available in the <literal>TCP</literal> element."
 msgstr "下列是 <literal>TCP</literal> 元素里的可用属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">bind_addr</emphasis> specifies the binding address. "
-"It can also be set with the <literal>-Djgroups.bind_address</literal> "
-"command line option at server startup."
-msgstr ""
-"<emphasis role=\"bold\">bind_addr</emphasis> 指定了绑定的地址。它也可以在服务"
-"器启动时用  <literal>-Dbind.address</literal> 命令行选项来设定。 "
+msgid "<emphasis role=\"bold\">bind_addr</emphasis> specifies the binding address. It can also be set with the <literal>-Djgroups.bind_address</literal> command line option at server startup."
+msgstr "<emphasis role=\"bold\">bind_addr</emphasis> 指定了绑定的地址。它也可以在服务器启动时用  <literal>-Dbind.address</literal> 命令行选项来设定。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">start_port, end_port</emphasis> define the range of "
-"TCP ports the server should bind to. The server socket is bound to the first "
-"available port from <literal>start_port</literal>. If no available port is "
-"found (e.g., because of a firewall) before the <literal>end_port</literal>, "
-"the server throws an exception. If no <literal>end_port</literal> is "
-"provided or <literal>end_port &lt; start_port</literal> then there is no "
-"upper limit on the port range. If <literal>start_port == end_port</literal>, "
-"then we force JGroups to use the given port (start fails if port is not "
-"available). The default is 7800. If set to 0, then the operating system will "
-"pick a port. Please, bear in mind that setting it to 0 will work only if we "
-"use MPING or TCPGOSSIP as discovery protocol because <literal>TCCPING</"
-"literal> requires listing the nodes and their corresponding ports."
-msgstr ""
-"<emphasis role=\"bold\">start_port, end_port</emphasis> 定义了服务器应该绑定"
-"的 TCP 端口的范围。服务器套接字绑定到从 <literal>start_port</literal> 开始的"
-"第一个可用的端口。如果在 <literal>end_port</literal> 之前没有可用的端口(例如"
-"因为防火墙的缘故),服务器将抛出异常。如果没有提供 <literal>end_port</"
-"literal> 或者 <literal>end_port &lt; start_port</literal>,那么端口范围就不作"
-"限制。如果 <literal>start_port == end_port</literal>,那我们将强迫 JGroups 使"
-"用给定的端口(如果端口不可用则会启动失败)。它的缺省值是 7800。如果设置为 0,"
-"那么操作系统将选择一个端口。请记住,只有我们使用把 MPING 或 TCPGOSSIP 作为发"
-"现协议时才能设置它为 0,因为 <literal>TCCPING</literal> 要求列出节点以及对应"
-"的端口。"
+msgid "<emphasis role=\"bold\">start_port, end_port</emphasis> define the range of TCP ports the server should bind to. The server socket is bound to the first available port from <literal>start_port</literal>. If no available port is found (e.g., because of a firewall) before the <literal>end_port</literal>, the server throws an exception. If no <literal>end_port</literal> is provided or <literal>end_port &lt; start_port</literal> then there is no upper limit on the port range. If <literal>start_port == end_port</literal>, then we force JGroups to use the given port (start fails if port is not available). The default is 7800. If set to 0, then the operating system will pick a port. Please, bear in mind that setting it to 0 will work only if we use MPING or TCPGOSSIP as discovery protocol because <literal>TCCPING</literal> requires listing the nodes and their corresponding ports."
+msgstr "<emphasis role=\"bold\">start_port, end_port</emphasis> 定义了服务器应该绑定的 TCP 端口的范围。服务器套接字绑定到从 <literal>start_port</literal> 开始的第一个可用的端口。如果在 <literal>end_port</literal> 之前没有可用的端口(例如因为防火墙的缘故),服务器将抛出异常。如果没有提供 <literal>end_port</literal> 或者 <literal>end_port &lt; start_port</literal>,那么端口范围就不作限制。如果 <literal>start_port == end_port</literal>,那我们将强迫 JGroups 使用给定的端口(如果端口不可用则会启动失败)。它的缺省值是 7800。如果设置为 0,那么操作系统将选择一个端口。请记住,只有我们使用把 MPING 或 TCPGOSSIP 作为发现协议时才能设置它为 0,因为 <literal>TCCPING</literal> 要求列出节点以及对应的端口。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">loopback</emphasis> specifies whether to loop "
-"outgoing message back up the stack. In <literal>unicast</literal> mode, the "
-"messages are sent to self. In <literal>mcast</literal> mode, a copy of the "
-"mcast message is sent. The default is false."
-msgstr ""
-"<emphasis role=\"bold\">loopback</emphasis> 指定是否在堆栈里回送(loop back)"
-"输出信息。在单播 <literal>unicast</literal> 模式下,信息都会发送给自己。如果"
-"是 <literal>mcast</literal> 模式,多点传送信息的备份将被发送。它的缺省值是 "
-"false。"
+msgid "<emphasis role=\"bold\">loopback</emphasis> specifies whether to loop outgoing message back up the stack. In <literal>unicast</literal> mode, the messages are sent to self. In <literal>mcast</literal> mode, a copy of the mcast message is sent. The default is false."
+msgstr "<emphasis role=\"bold\">loopback</emphasis> 指定是否在堆栈里回送(loop back)输出信息。在单播 <literal>unicast</literal> 模式下,信息都会发送给自己。如果是 <literal>mcast</literal> 模式,多点传送信息的备份将被发送。它的缺省值是 false。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">recv_buf_size, send_buf_size</emphasis> define "
-"receive and send buffer sizes. It is good to have a large receiver buffer "
-"size, so packets are less likely to get dropped due to buffer overflow."
-msgstr ""
-"<emphasis role=\"bold\">recv_buf_size, send_buf_size</emphasis> 定义接收和发"
-"送的缓冲区大小。设置大的接收缓冲区会比较好,这样数据包就不会因为缓冲区溢出而"
-"被丢弃。"
+msgid "<emphasis role=\"bold\">recv_buf_size, send_buf_size</emphasis> define receive and send buffer sizes. It is good to have a large receiver buffer size, so packets are less likely to get dropped due to buffer overflow."
+msgstr "<emphasis role=\"bold\">recv_buf_size, send_buf_size</emphasis> 定义接收和发送的缓冲区大小。设置大的接收缓冲区会比较好,这样数据包就不会因为缓冲区溢出而被丢弃。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">conn_expire_time</emphasis> specifies the time (in "
-"milliseconds) after which a connection can be closed by the reaper if no "
-"traffic has been received."
-msgstr ""
-"<emphasis role=\"bold\">conn_expire_time</emphasis> 指定在多久(毫秒数)没有"
-"网络流量后,reaper 可以关闭这个连接。"
+msgid "<emphasis role=\"bold\">conn_expire_time</emphasis> specifies the time (in milliseconds) after which a connection can be closed by the reaper if no traffic has been received."
+msgstr "<emphasis role=\"bold\">conn_expire_time</emphasis> 指定在多久(毫秒数)没有网络流量后,reaper 可以关闭这个连接。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">reaper_interval</emphasis> specifies interval (in "
-"milliseconds) to run the reaper. If both values are 0, no reaping will be "
-"done. If either value is &gt; 0, reaping will be enabled. By default, "
-"reaper_interval is 0, which means no reaper."
-msgstr ""
-"<emphasis role=\"bold\">reaper_interval</emphasis> 指定运行 reaper 的时间(毫"
-"秒)。如果两个值都是 0,reaper 将不会运行。如果其中一个是 &gt; 0,reaper 将被"
-"启用。reaper_interval 缺省为 0,表示不运行 reaper。"
+msgid "<emphasis role=\"bold\">reaper_interval</emphasis> specifies interval (in milliseconds) to run the reaper. If both values are 0, no reaping will be done. If either value is &gt; 0, reaping will be enabled. By default, reaper_interval is 0, which means no reaper."
+msgstr "<emphasis role=\"bold\">reaper_interval</emphasis> 指定运行 reaper 的时间(毫秒)。如果两个值都是 0,reaper 将不会运行。如果其中一个是 &gt; 0,reaper 将被启用。reaper_interval 缺省为 0,表示不运行 reaper。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">sock_conn_timeout</emphasis> specifies max time in "
-"millis for a socket creation. When doing the initial discovery, and a peer "
-"hangs, don't wait forever but go on after the timeout to ping other members. "
-"Reduces chances of *not* finding any members at all. The default is 2000."
-msgstr ""
-"<emphasis role=\"bold\">sock_conn_timeout</emphasis> 指定创建套接字的超时时间"
-"(毫秒)。当进行初始发现时,如果对点挂起了,在超时后将 ping 其他成员。这减少"
-"了找不到任何成员的机会。它的缺省值是 2000。"
+msgid "<emphasis role=\"bold\">sock_conn_timeout</emphasis> specifies max time in millis for a socket creation. When doing the initial discovery, and a peer hangs, don't wait forever but go on after the timeout to ping other members. Reduces chances of *not* finding any members at all. The default is 2000."
+msgstr "<emphasis role=\"bold\">sock_conn_timeout</emphasis> 指定创建套接字的超时时间(毫秒)。当进行初始发现时,如果对点挂起了,在超时后将 ping 其他成员。这减少了找不到任何成员的机会。它的缺省值是 2000。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">use_send_queues</emphasis> specifies whether to use "
-"separate send queues for each connection. This prevents blocking on write if "
-"the peer hangs. The default is true."
-msgstr ""
-"<emphasis role=\"bold\">use_send_queues</emphasis> 指定是否为每个连接使用单独"
-"的发送队列。如果对点挂起,这防止了线程的阻塞。它的缺省值为 true。"
+msgid "<emphasis role=\"bold\">use_send_queues</emphasis> specifies whether to use separate send queues for each connection. This prevents blocking on write if the peer hangs. The default is true."
+msgstr "<emphasis role=\"bold\">use_send_queues</emphasis> 指定是否为每个连接使用单独的发送队列。如果对点挂起,这防止了线程的阻塞。它的缺省值为 true。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">external_addr</emphasis> specifies external IP "
-"address to broadcast to other group members (if different to local address). "
-"This is useful when you have use (Network Address Translation) NAT, e.g. a "
-"node on a private network, behind a firewall, but you can only route to it "
-"via an externally visible address, which is different from the local address "
-"it is bound to. Therefore, the node can be configured to broadcast its "
-"external address, while still able to bind to the local one. This avoids "
-"having to use the TUNNEL protocol, (and hence a requirement for a central "
-"gossip router) because nodes outside the firewall can still route to the "
-"node inside the firewall, but only on its external address. Without setting "
-"the external_addr, the node behind the firewall will broadcast its private "
-"address to the other nodes which will not be able to route to it."
-msgstr ""
-"<emphasis role=\"bold\">external_addr</emphasis> 指定广播到其他组成员(如果和"
-"本地地址不同)时使用的外部 IP 地址。当你使用 NAT(Network Address "
-"Translation)时这很有用,例如,对于私有网络里防火墙后的一个节点,但你只能通过"
-"外部的可见地址进行路由,这个地址和节点的本地地址不同。因此,你可以配置这个节"
-"点来广播其外部地址,同时仍可以绑定本地地址。这避免了使用 TUNNEL 协议(需要中"
-"央路由器),因为防火墙外面的节点仍然可以通过外部地址路由至服务器里面的节点。"
-"如果不使用 external_addr,其他节点不能通过防火墙后面的节点的私有地址对其进行"
-"访问。"
+msgid "<emphasis role=\"bold\">external_addr</emphasis> specifies external IP address to broadcast to other group members (if different to local address). This is useful when you have use (Network Address Translation) NAT, e.g. a node on a private network, behind a firewall, but you can only route to it via an externally visible address, which is different from the local address it is bound to. Therefore, the node can be configured to broadcast its external address, while still able to bind to the local one. This avoids having to use the TUNNEL protocol, (and hence a requirement for a central gossip router) because nodes outside the firewall can still route to the node inside the firewall, but only on its external address. Without setting the external_addr, the node behind the firewall will broadcast its private address to the other nodes which will not be able to route to it."
+msgstr "<emphasis role=\"bold\">external_addr</emphasis> 指定广播到其他组成员(如果和本地地址不同)时使用的外部 IP 地址。当你使用 NAT(Network Address Translation)时这很有用,例如,对于私有网络里防火墙后的一个节点,但你只能通过外部的可见地址进行路由,这个地址和节点的本地地址不同。因此,你可以配置这个节点来广播其外部地址,同时仍可以绑定本地地址。这避免了使用 TUNNEL 协议(需要中央路由器),因为防火墙外面的节点仍然可以通过外部地址路由至服务器里面的节点。如果不使用 external_addr,其他节点不能通过防火墙后面的节点的私有地址对其进行访问。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">skip_suspected_members</emphasis> specifies whether "
-"unicast messages should not be sent to suspected members. The default is "
-"true."
-msgstr ""
-"<emphasis role=\"bold\">skip_suspected_members</emphasis> 指定单播消息是否应"
-"该被发送到可疑成员。它的缺省值是 <literal>true</literal>。"
+msgid "<emphasis role=\"bold\">skip_suspected_members</emphasis> specifies whether unicast messages should not be sent to suspected members. The default is true."
+msgstr "<emphasis role=\"bold\">skip_suspected_members</emphasis> 指定单播消息是否应该被发送到可疑成员。它的缺省值是 <literal>true</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">tcp_nodelay</emphasis> specifies TCP_NODELAY. TCP by "
-"default nagles messages, that is, conceptually, smaller messages are bundled "
-"into larger ones. If we want to invoke synchronous cluster method calls, "
-"then we need to disable nagling in addition to disabling message bundling "
-"(by setting <literal>enable_bundling</literal> to false). Nagling is "
-"disabled by setting <literal>tcp_nodelay</literal> to true. The default is "
-"false."
-msgstr ""
-"<emphasis role=\"bold\">tcp_nodelay</emphasis> 指定 TCP_NODELAY。TCP 缺省使"
-"用 Nagles 算法,也就是把小消息捆绑成更大的消息。如果我们想调用同步的群集方"
-"法,我们需要禁用 Nagles 并禁用消息捆绑(把 <literal>enable_bundling</"
-"literal> 设置为 false)。把 <literal>tcp_nodelay</literal> 设置为 true 可禁"
-"用 Nagling。它缺省为 false。"
+msgid "<emphasis role=\"bold\">tcp_nodelay</emphasis> specifies TCP_NODELAY. TCP by default nagles messages, that is, conceptually, smaller messages are bundled into larger ones. If we want to invoke synchronous cluster method calls, then we need to disable nagling in addition to disabling message bundling (by setting <literal>enable_bundling</literal> to false). Nagling is disabled by setting <literal>tcp_nodelay</literal> to true. The default is false."
+msgstr "<emphasis role=\"bold\">tcp_nodelay</emphasis> 指定 TCP_NODELAY。TCP 缺省使用 Nagles 算法,也就是把小消息捆绑成更大的消息。如果我们想调用同步的群集方法,我们需要禁用 Nagles 并禁用消息捆绑(把 <literal>enable_bundling</literal> 设置为 false)。把 <literal>tcp_nodelay</literal> 设置为 true 可禁用 Nagling。它缺省为 false。"
 
 #. Tag: title
 #, no-c-format
@@ -612,59 +268,28 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The TUNNEL protocol uses an external router to send messages. The external "
-"router is known as a <literal>GossipRouter</literal>. Each node has to "
-"register with the router. All messages are sent to the router and forwarded "
-"on to their destinations. The TUNNEL approach can be used to setup "
-"communication with nodes behind firewalls. A node can establish a TCP "
-"connection to the GossipRouter through the firewall (you can use port 80). "
-"The same connection is used by the router to send messages to nodes behind "
-"the firewall as most firewalls do not permit outside hosts to initiate a TCP "
-"connection to a host inside the firewall. The TUNNEL configuration is "
-"defined in the TUNNEL element in the JGroups Config element. Here is an "
-"example.."
-msgstr ""
-"TUNNEL 协议使用外部的路由器来发送信息。这个外部路由器是 "
-"<literal>GossipRouter</literal>。每个节点都得在这个路由器上注册。所有信息都被"
-"发送到这个路由器并被转发到目的地。TUNNEL 方法可以用来设置与防火墙后面的节点通"
-"信。节点可以穿过防火墙(你可以用 80 端口)和 GossipRouter 建立一个 TCP 连接。"
-"路由器使用同一个连接来发送信息到防火墙后面的节点。TUNNEL 配置在 JGroups "
-"<literal>Config</literal> 元素里的 <literal>TUNNEL</literal> 元素里被定义。下"
-"面是一个例子。 "
+msgid "The TUNNEL protocol uses an external router to send messages. The external router is known as a <literal>GossipRouter</literal>. Each node has to register with the router. All messages are sent to the router and forwarded on to their destinations. The TUNNEL approach can be used to setup communication with nodes behind firewalls. A node can establish a TCP connection to the GossipRouter through the firewall (you can use port 80). The same connection is used by the router to send messages to nodes behind the firewall as most firewalls do not permit outside hosts to initiate a TCP connection to a host inside the firewall. The TUNNEL configuration is defined in the TUNNEL element in the JGroups Config element. Here is an example.."
+msgstr "TUNNEL 协议使用外部的路由器来发送信息。这个外部路由器是 <literal>GossipRouter</literal>。每个节点都得在这个路由器上注册。所有信息都被发送到这个路由器并被转发到目的地。TUNNEL 方法可以用来设置与防火墙后面的节点通信。节点可以穿过防火墙(你可以用 80 端口)和 GossipRouter 建立一个 TCP 连接。路由器使用同一个连接来发送信息到防火墙后面的节点。TUNNEL 配置在 JGroups <literal>Config</literal> 元素里的 <literal>TUNNEL</literal> 元素里被定义。下面是一个例子。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The available attributes in the <literal>TUNNEL</literal> element are listed "
-"below."
+msgid "The available attributes in the <literal>TUNNEL</literal> element are listed below."
 msgstr "下列是 <literal>TUNNEL</literal> 元素里的可用属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">router_host</emphasis> specifies the host on which "
-"the GossipRouter is running."
-msgstr ""
-"<emphasis role=\"bold\">router_host</emphasis> 指定 GossipRouter 运行在哪个主"
-"机上。"
+msgid "<emphasis role=\"bold\">router_host</emphasis> specifies the host on which the GossipRouter is running."
+msgstr "<emphasis role=\"bold\">router_host</emphasis> 指定 GossipRouter 运行在哪个主机上。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">router_port</emphasis> specifies the port on which "
-"the GossipRouter is listening."
-msgstr ""
-"<emphasis role=\"bold\">router_port</emphasis> 指定 GossipRouter 侦听的端口。"
+msgid "<emphasis role=\"bold\">router_port</emphasis> specifies the port on which the GossipRouter is listening."
+msgstr "<emphasis role=\"bold\">router_port</emphasis> 指定 GossipRouter 侦听的端口。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">loopback</emphasis> specifies whether to loop "
-"messages back up the stack. The default is <literal>true</literal>."
-msgstr ""
-"<emphasis role=\"bold\">loopback</emphasis> 是否在堆栈里回送信息。它的缺省值"
-"是 <literal>true</literal>。"
+msgid "<emphasis role=\"bold\">loopback</emphasis> specifies whether to loop messages back up the stack. The default is <literal>true</literal>."
+msgstr "<emphasis role=\"bold\">loopback</emphasis> 是否在堆栈里回送信息。它的缺省值是 <literal>true</literal>。"
 
 #. Tag: title
 #, no-c-format
@@ -672,35 +297,14 @@
 msgstr "发现协议(Discovery Protocols)"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The cluster needs to maintain a list of current member nodes at all times so "
-"that the load balancer and client interceptor know how to route their "
-"requests. Discovery protocols are used to discover active nodes in the "
-"cluster and detect the oldest member of the cluster, which is the "
-"coordinator. All initial nodes are discovered when the cluster starts up. "
-"When a new node joins the cluster later, it is only discovered after the "
-"group membership protocol (GMS, see <xref linkend=\"jbosscache-jgroups-other-"
-"gms\" />) admits it into the group."
-msgstr ""
-"群集系统需要一直维护当前成员节点的列表,这样负载平衡系统(load balancer)和客"
-"户端拦截器(client interceptor)就知道怎样去指引它们的请求。发现协议"
-"(discovery protocols)用来在群集系统里发现活动节点并检测最老的成员节点。当群"
-"集系统启动时将发现所有的初始节点。之后如果有新的节点加入,它只有在组成员协议"
-"(group membership protocol)(GMS,参见 <xref linkend=\"jbosscache-jgroups-"
-"other-gms\"/>)批准后才能被探索(discovered)到。 "
+#, no-c-format
+msgid "The cluster needs to maintain a list of current member nodes at all times so that the load balancer and client interceptor know how to route their requests. Discovery protocols are used to discover active nodes in the cluster and detect the oldest member of the cluster, which is the coordinator. All initial nodes are discovered when the cluster starts up. When a new node joins the cluster later, it is only discovered after the group membership protocol (GMS, see <xref linkend=\"jbosscache-jgroups-other-gms\" />) admits it into the group."
+msgstr "群集系统需要一直维护当前成员节点的列表,这样负载平衡系统(load balancer)和客户端拦截器(client interceptor)就知道怎样去指引它们的请求。发现协议(discovery protocols)用来在群集系统里发现活动节点并检测最老的成员节点。当群集系统启动时将发现所有的初始节点。之后如果有新的节点加入,它只有在组成员协议(group membership protocol)(GMS,参见 <xref linkend=\"jbosscache-jgroups-other-gms\"/>)批准后才能被探索(discovered)到。  "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Since the discovery protocols sit on top of the transport protocol, you can "
-"choose to use different discovery protocols based on your transport "
-"protocol. These are also configured as sub-elements in the JGroups MBean "
-"<literal>Config</literal> element."
-msgstr ""
-"既然发现协议(discovery protocols)处于传输协议之上,你可以根据你的传输协议选"
-"择不同的发现协议。发现协议在 JGroups MBean <literal>Config</literal> 元素里也"
-"被配置成子元素(sub-elements)。 "
+msgid "Since the discovery protocols sit on top of the transport protocol, you can choose to use different discovery protocols based on your transport protocol. These are also configured as sub-elements in the JGroups MBean <literal>Config</literal> element."
+msgstr "既然发现协议(discovery protocols)处于传输协议之上,你可以根据你的传输协议选择不同的发现协议。发现协议在 JGroups MBean <literal>Config</literal> 元素里也被配置成子元素(sub-elements)。 "
 
 #. Tag: title
 #, no-c-format
@@ -709,21 +313,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"PING is a discovery protocol that works by either multicasting PING requests "
-"to an IP multicast address or connecting to a gossip router. As such, PING "
-"normally sits on top of the UDP or TUNNEL transport protocols. Each node "
-"responds with a packet {C, A}, where C=coordinator's address and A=own "
-"address. After timeout milliseconds or num_initial_members replies, the "
-"joiner determines the coordinator from the responses, and sends a JOIN "
-"request to it (handled by). If nobody responds, we assume we are the first "
-"member of a group."
-msgstr ""
-"PING 是一个多点传送 PING 请求给 IP 地址或连接 Gossip 路由器的发现协议。PING "
-"通常处于 UDP 或 TUNNEL 传输协议之上。每个节点的都用数据包 {C, A} 进行响应,这"
-"里的 C 是协调者(coordinator)的地址而 A 是自己的地址。在超时后或 "
-"num_initial_members 个成员进行回复后,Joiner 从响应里决定协调者,并发送 JOIN "
-"请求给它。如果没有节点回应,我们将假设我们是组里的第一个成员。"
+msgid "PING is a discovery protocol that works by either multicasting PING requests to an IP multicast address or connecting to a gossip router. As such, PING normally sits on top of the UDP or TUNNEL transport protocols. Each node responds with a packet {C, A}, where C=coordinator's address and A=own address. After timeout milliseconds or num_initial_members replies, the joiner determines the coordinator from the responses, and sends a JOIN request to it (handled by). If nobody responds, we assume we are the first member of a group."
+msgstr "PING 是一个多点传送 PING 请求给 IP 地址或连接 Gossip 路由器的发现协议。PING 通常处于 UDP 或 TUNNEL 传输协议之上。每个节点的都用数据包 {C, A} 进行响应,这里的 C 是协调者(coordinator)的地址而 A 是自己的地址。在超时后或 num_initial_members 个成员进行回复后,Joiner 从响应里决定协调者,并发送 JOIN 请求给它。如果没有节点回应,我们将假设我们是组里的第一个成员。"
 
 #. Tag: para
 #, no-c-format
@@ -731,106 +322,54 @@
 msgstr "下面是一个用于 IP 多地传送的 PING 配置示例。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Here is another example PING configuration for contacting a Gossip Router. "
-"<programlisting> &lt;PING gossip_host=\"localhost\" gossip_port=\"1234\" "
-"timeout=\"3000\" num_initial_members=\"3\" down_thread=\"false\" up_thread="
-"\"false\"/&gt; </programlisting>"
-msgstr ""
-"<![CDATA[        \n"
-"<PING gossip_host=\"localhost\"\n"
-"      gossip_port=\"1234\"\n"
-"              timeout=\"3000\" \n"
-"              num_initial_members=\"3\"\n"
-"              down_thread=\"false\" up_thread=\"false\"/>]]>"
+#, no-c-format
+msgid "Here is another example PING configuration for contacting a Gossip Router. <programlisting> &lt;PING gossip_host=\"localhost\" gossip_port=\"1234\" timeout=\"3000\" num_initial_members=\"3\" down_thread=\"false\" up_thread=\"false\"/&gt; </programlisting>"
+msgstr "这里是另外一个用于联系 Gossip Router 的 PING 配置。<programlisting> &lt;PING gossip_host=\"localhost\" gossip_port=\"1234\" timeout=\"3000\" num_initial_members=\"3\" down_thread=\"false\" up_thread=\"false\"/&gt; </programlisting>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The available attributes in the <literal>PING</literal> element are listed "
-"below."
+msgid "The available attributes in the <literal>PING</literal> element are listed below."
 msgstr "下列是 <literal>PING</literal> 元素里的可用属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">timeout</emphasis> specifies the maximum number of "
-"milliseconds to wait for any responses. The default is 3000."
-msgstr ""
-"<emphasis role=\"bold\">timeout</emphasis> 指定等待应答的最长时间(毫秒数)。"
-"缺省为 3000。"
+msgid "<emphasis role=\"bold\">timeout</emphasis> specifies the maximum number of milliseconds to wait for any responses. The default is 3000."
+msgstr "<emphasis role=\"bold\">timeout</emphasis> 指定等待应答的最长时间(毫秒数)。缺省为 3000。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">num_initial_members</emphasis> specifies the maximum "
-"number of responses to wait for unless timeout has expired. The default is 2."
-msgstr ""
-"<emphasis role=\"bold\">num_initial_members</emphasis> 指定除非超时,否则等待"
-"的最大的应答数量。缺省为 2。"
+msgid "<emphasis role=\"bold\">num_initial_members</emphasis> specifies the maximum number of responses to wait for unless timeout has expired. The default is 2."
+msgstr "<emphasis role=\"bold\">num_initial_members</emphasis> 指定除非超时,否则等待的最大的应答数量。缺省为 2。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">gossip_host</emphasis> specifies the host on which "
-"the GossipRouter is running."
-msgstr ""
-"<emphasis role=\"bold\">gossip_host</emphasis> 指定 GossipRouter 在哪个主机上"
-"运行。"
+msgid "<emphasis role=\"bold\">gossip_host</emphasis> specifies the host on which the GossipRouter is running."
+msgstr "<emphasis role=\"bold\">gossip_host</emphasis> 指定 GossipRouter 在哪个主机上运行。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">gossip_port</emphasis> specifies the port on which "
-"the GossipRouter is listening on."
-msgstr ""
-"<emphasis role=\"bold\">gossip_port</emphasis> 指定 GossipRouter 所侦听的端"
-"口。"
+msgid "<emphasis role=\"bold\">gossip_port</emphasis> specifies the port on which the GossipRouter is listening on."
+msgstr "<emphasis role=\"bold\">gossip_port</emphasis> 指定 GossipRouter 所侦听的端口。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">gossip_refresh</emphasis> specifies the interval (in "
-"milliseconds) for the lease from the GossipRouter. The default is 20000."
-msgstr ""
-"<emphasis role=\"bold\">gossip_refresh</emphasis> 指定 GossipRouter 的租约"
-"(lease)的时间间隔(毫秒数)。它缺省为 20000。"
+msgid "<emphasis role=\"bold\">gossip_refresh</emphasis> specifies the interval (in milliseconds) for the lease from the GossipRouter. The default is 20000."
+msgstr "<emphasis role=\"bold\">gossip_refresh</emphasis> 指定 GossipRouter 的租约(lease)的时间间隔(毫秒数)。它缺省为 20000。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">initial_hosts</emphasis> is a comma-seperated list "
-"of addresses (e.g., <literal>host1[12345],host2[23456]</literal>), which are "
-"pinged for discovery."
-msgstr ""
-"<emphasis role=\"bold\">initial_hosts</emphasis> 是一个用逗号隔开的地址列表"
-"(如:<literal>host1[12345],host2[23456]</literal>),群集系统会 ping 这个列"
-"表来进行探索(discovery)。"
+msgid "<emphasis role=\"bold\">initial_hosts</emphasis> is a comma-seperated list of addresses (e.g., <literal>host1[12345],host2[23456]</literal>), which are pinged for discovery."
+msgstr "<emphasis role=\"bold\">initial_hosts</emphasis> 是一个用逗号隔开的地址列表(如:<literal>host1[12345],host2[23456]</literal>),群集系统会 ping 这个列表来进行探索(discovery)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If both <literal>gossip_host</literal> and <literal>gossip_port</literal> "
-"are defined, the cluster uses the GossipRouter for the initial discovery. If "
-"the <literal>initial_hosts</literal> is specified, the cluster pings that "
-"static list of addresses for discovery. Otherwise, the cluster uses IP "
-"multicasting for discovery."
-msgstr ""
-"如果<literal>gossip_host</literal> 和 <literal>gossip_port</literal> 都被定义"
-"了,群集系统会使用 GossipRouter 作初始探索(initial discovery)。如果指定了  "
-"<literal>initial_hosts</literal>,群集系统会 ping 这个静态地址列表来进行探"
-"索。否则,群集系统用 IP 多点传送来进行探索。"
+msgid "If both <literal>gossip_host</literal> and <literal>gossip_port</literal> are defined, the cluster uses the GossipRouter for the initial discovery. If the <literal>initial_hosts</literal> is specified, the cluster pings that static list of addresses for discovery. Otherwise, the cluster uses IP multicasting for discovery."
+msgstr "如果<literal>gossip_host</literal> 和 <literal>gossip_port</literal> 都被定义了,群集系统会使用 GossipRouter 作初始探索(initial discovery)。如果指定了  <literal>initial_hosts</literal>,群集系统会 ping 这个静态地址列表来进行探索。否则,群集系统用 IP 多点传送来进行探索。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The discovery phase returns when the <literal>timeout</literal> ms have "
-"elapsed or the <literal>num_initial_members</literal> responses have been "
-"received."
-msgstr ""
-"当已经过了 <literal>timeout</literal> 毫秒后或者已经接收到 "
-"<literal>num_initial_members</literal> 应答后,探索阶段就会返回。"
+msgid "The discovery phase returns when the <literal>timeout</literal> ms have elapsed or the <literal>num_initial_members</literal> responses have been received."
+msgstr "当已经过了 <literal>timeout</literal> 毫秒后或者已经接收到 <literal>num_initial_members</literal> 应答后,探索阶段就会返回。"
 
 #. Tag: title
 #, no-c-format
@@ -839,34 +378,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The TCPGOSSIP protocol only works with a GossipRouter. It works essentially "
-"the same way as the PING protocol configuration with valid "
-"<literal>gossip_host</literal> and <literal>gossip_port</literal> "
-"attributes. It works on top of both UDP and TCP transport protocols. Here is "
-"an example."
-msgstr ""
-"TCPGOSSIP 协议只用于 GossipRouter。它和 PING 协议配置基本上一样,有着有效的 "
-"<literal>gossip_host</literal> 和 <literal>gossip_port</literal> 属性。它处"
-"于 UDP 和 TCP 协议的上面。下面是一个例子。"
+msgid "The TCPGOSSIP protocol only works with a GossipRouter. It works essentially the same way as the PING protocol configuration with valid <literal>gossip_host</literal> and <literal>gossip_port</literal> attributes. It works on top of both UDP and TCP transport protocols. Here is an example."
+msgstr "TCPGOSSIP 协议只用于 GossipRouter。它和 PING 协议配置基本上一样,有着有效的 <literal>gossip_host</literal> 和 <literal>gossip_port</literal> 属性。它处于 UDP 和 TCP 协议的上面。下面是一个例子。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The available attributes in the <literal>TCPGOSSIP</literal> element are "
-"listed below."
+msgid "The available attributes in the <literal>TCPGOSSIP</literal> element are listed below."
 msgstr "下列是 <literal>TCPGOSSIP</literal> 元素里的可用属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">initial_hosts</emphasis> is a comma-seperated list "
-"of addresses (e.g., <literal>host1[12345],host2[23456]</literal>) for "
-"GossipRouters to register with."
-msgstr ""
-"<emphasis role=\"bold\">initial_hosts</emphasis> 是一个 GossipRouters 用来注"
-"册的用逗号隔开的地址列表(如:<literal>host1[12345],host2[23456]</"
-"literal>)。"
+msgid "<emphasis role=\"bold\">initial_hosts</emphasis> is a comma-seperated list of addresses (e.g., <literal>host1[12345],host2[23456]</literal>) for GossipRouters to register with."
+msgstr "<emphasis role=\"bold\">initial_hosts</emphasis> 是一个 GossipRouters 用来注册的用逗号隔开的地址列表(如:<literal>host1[12345],host2[23456]</literal>)。"
 
 #. Tag: title
 #, no-c-format
@@ -875,49 +398,23 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The TCPPING protocol takes a set of known members and ping them for "
-"discovery. This is essentially a static configuration. It works on top of "
-"TCP. Here is an example of the <literal>TCPPING</literal> configuration "
-"element in the JGroups <literal>Config</literal> element."
-msgstr ""
-"TCPPING 协议使用一套知名成员并 ping 它们来进行探索。它基本上是一个静态的配"
-"置。它工作于 TCP 协议的上面。这里是一个 JGroups <literal>Config</literal> 元"
-"素里的 <literal>TCPPING</literal> 配置元素的例子。"
+msgid "The TCPPING protocol takes a set of known members and ping them for discovery. This is essentially a static configuration. It works on top of TCP. Here is an example of the <literal>TCPPING</literal> configuration element in the JGroups <literal>Config</literal> element."
+msgstr "TCPPING 协议使用一套知名成员并 ping 它们来进行探索。它基本上是一个静态的配置。它工作于 TCP 协议的上面。这里是一个 JGroups <literal>Config</literal> 元素里的 <literal>TCPPING</literal> 配置元素的例子。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The available attributes in the <literal>TCPPING</literal> element are "
-"listed below."
+msgid "The available attributes in the <literal>TCPPING</literal> element are listed below."
 msgstr "下列是 <literal>TCPPING</literal> 元素的可用属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">initial_hosts</emphasis> is a comma-seperated list "
-"of addresses (e.g., <literal>host1[12345],host2[23456]</literal>) for "
-"pinging."
-msgstr ""
-"<emphasis role=\"bold\">initial_hosts</emphasis> 是一个用来 pinging 的用逗号"
-"隔开的地址列表(如:<literal>host1[12345],host2[23456]</literal>)。"
+msgid "<emphasis role=\"bold\">initial_hosts</emphasis> is a comma-seperated list of addresses (e.g., <literal>host1[12345],host2[23456]</literal>) for pinging."
+msgstr "<emphasis role=\"bold\">initial_hosts</emphasis> 是一个用来 pinging 的用逗号隔开的地址列表(如:<literal>host1[12345],host2[23456]</literal>)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">port_range</emphasis> specifies the number of "
-"consecutive ports to be probed when getting the initial membership, starting "
-"with the port specified in the initial_hosts parameter. Given the current "
-"values of port_range and initial_hosts above, the TCPPING layer will try to "
-"connect to hosta:2300, hosta:2301, hosta:2302, hostb:3400, hostb:3401, "
-"hostb:3402, hostc:4500, hostc:4501, hostc:4502. The configuration options "
-"allows for multiple nodes on the same host to be pinged."
-msgstr ""
-"<emphasis role=\"bold\">port_range</emphasis> 指定在获得初始成员资格时探测的"
-"连续端口的范围,从参数 initial_hosts 参数开始。给定当前 port_range 和 "
-"initial_hosts 为上面的值,TCPPING 层将连接 hosta:2300、 hosta:2301、"
-"hosta:2302、hostb:3400、hostb:3401、hostb:3402、hostc:4500、hostc:4501 和 "
-"hostc:4502。这个配置选项允许 ping 相同主机上的多个节点。"
+msgid "<emphasis role=\"bold\">port_range</emphasis> specifies the number of consecutive ports to be probed when getting the initial membership, starting with the port specified in the initial_hosts parameter. Given the current values of port_range and initial_hosts above, the TCPPING layer will try to connect to hosta:2300, hosta:2301, hosta:2302, hostb:3400, hostb:3401, hostb:3402, hostc:4500, hostc:4501, hostc:4502. The configuration options allows for multiple nodes on the same host to be pinged."
+msgstr "<emphasis role=\"bold\">port_range</emphasis> 指定在获得初始成员资格时探测的连续端口的范围,从参数 initial_hosts 参数开始。给定当前 port_range 和 initial_hosts 为上面的值,TCPPING 层将连接 hosta:2300、 hosta:2301、hosta:2302、hostb:3400、hostb:3401、hostb:3402、hostc:4500、hostc:4501 和 hostc:4502。这个配置选项允许 ping 相同主机上的多个节点。"
 
 #. Tag: title
 #, no-c-format
@@ -926,64 +423,33 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"MPING uses IP multicast to discover the initial membership. It can be used "
-"with all transports, but usually this is used in combination with TCP. TCP "
-"usually requires TCPPING, which has to list all group members explicitly, "
-"but MPING doesn't have this requirement. The typical use case for this is "
-"when we want TCP as transport, but multicasting for discovery so we don't "
-"have to define a static list of initial hosts in TCPPING or require external "
-"Gossip Router."
-msgstr ""
-"MPING 使用 IP 多点传送来发现初始的成员资格。它可以用于所有的传输协议,但通常"
-"是和 TCP 一起使用。TCP 通常要求 TCPPING,它得显性地列出所有的组成员,但 "
-"MPING 没有这个要求。典型的用法是当我们把 TCP 作为传输协议但又用多点传送进行发"
-"现时,我们不需要在 TCPPING 里定义一个静态的初始主机列表或要求额外的 Gossip "
-"Router。"
+msgid "MPING uses IP multicast to discover the initial membership. It can be used with all transports, but usually this is used in combination with TCP. TCP usually requires TCPPING, which has to list all group members explicitly, but MPING doesn't have this requirement. The typical use case for this is when we want TCP as transport, but multicasting for discovery so we don't have to define a static list of initial hosts in TCPPING or require external Gossip Router."
+msgstr "MPING 使用 IP 多点传送来发现初始的成员资格。它可以用于所有的传输协议,但通常是和 TCP 一起使用。TCP 通常要求 TCPPING,它得显性地列出所有的组成员,但 MPING 没有这个要求。典型的用法是当我们把 TCP 作为传输协议但又用多点传送进行发现时,我们不需要在 TCPPING 里定义一个静态的初始主机列表或要求额外的 Gossip Router。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The available attributes in the <literal>MPING</literal> element are listed "
-"below."
+msgid "The available attributes in the <literal>MPING</literal> element are listed below."
 msgstr "下列是 <literal>MPING</literal> 元素的可用属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">num_initial_members</emphasis> specifies the maximum "
-"number of responses to wait for unless timeout has expired. The default is "
-"2.."
-msgstr ""
-"<emphasis role=\"bold\">num_initial_members</emphasis> 指定除非超时,否则要等"
-"待的最大的应答数量。它的缺省值为 2。"
+msgid "<emphasis role=\"bold\">num_initial_members</emphasis> specifies the maximum number of responses to wait for unless timeout has expired. The default is 2.."
+msgstr "<emphasis role=\"bold\">num_initial_members</emphasis> 指定除非超时,否则要等待的最大的应答数量。它的缺省值为 2。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">bind_addr</emphasis> specifies the interface on "
-"which to send and receive multicast packets."
-msgstr ""
-"<emphasis role=\"bold\">bind_addr</emphasis> 指定在哪个接口上发送和接收多点传"
-"送数据包。"
+msgid "<emphasis role=\"bold\">bind_addr</emphasis> specifies the interface on which to send and receive multicast packets."
+msgstr "<emphasis role=\"bold\">bind_addr</emphasis> 指定在哪个接口上发送和接收多点传送数据包。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">bind_to_all_interfaces</emphasis> overrides the "
-"<literal>bind_addr</literal> and uses all interfaces in multihome nodes."
-msgstr ""
-"<emphasis role=\"bold\">bind_to_all_interfaces</emphasis> 覆盖了 "
-"<literal>bind_addr</literal> 并使用多宿主节点上的所有接口。"
+msgid "<emphasis role=\"bold\">bind_to_all_interfaces</emphasis> overrides the <literal>bind_addr</literal> and uses all interfaces in multihome nodes."
+msgstr "<emphasis role=\"bold\">bind_to_all_interfaces</emphasis> 覆盖了 <literal>bind_addr</literal> 并使用多宿主节点上的所有接口。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">mcast_addr, mcast_port, ip_ttl</emphasis> attributes "
-"are the same as related attributes in the UDP protocol configuration."
-msgstr ""
-"<emphasis role=\"bold\">mcast_addr,mcast_port,ip_ttl</emphasis> 属性和 UDP "
-"协议配置的相关属性相同。"
+msgid "<emphasis role=\"bold\">mcast_addr, mcast_port, ip_ttl</emphasis> attributes are the same as related attributes in the UDP protocol configuration."
+msgstr "<emphasis role=\"bold\">mcast_addr,mcast_port,ip_ttl</emphasis> 属性和 UDP 协议配置的相关属性相同。"
 
 #. Tag: title
 #, no-c-format
@@ -992,92 +458,43 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The failure detection protocols are used to detect failed nodes. Once a "
-"failed node is detected, a suspect verification phase can occur after which, "
-"if the node is still considered dead, the cluster updates its view so that "
-"the load balancer and client interceptors know to avoid the dead node. The "
-"failure detection protocols are configured as sub-elements in the JGroups "
-"MBean <literal>Config</literal> element."
-msgstr ""
-"故障检测协议(failure detection protocols)用来检测发生故障的节点。一旦检测到"
-"了一个发生故障的节点,群集系统会更新它的视图,使负载平衡系统(load balancer)"
-"和客户拦截器(client interceptors)避开死节点。故障检测协议被配置为 JGroups "
-"MBean <literal>Config</literal> 元素里的子元素。 "
+msgid "The failure detection protocols are used to detect failed nodes. Once a failed node is detected, a suspect verification phase can occur after which, if the node is still considered dead, the cluster updates its view so that the load balancer and client interceptors know to avoid the dead node. The failure detection protocols are configured as sub-elements in the JGroups MBean <literal>Config</literal> element."
+msgstr "故障检测协议(failure detection protocols)用来检测发生故障的节点。一旦检测到了一个发生故障的节点,群集系统会更新它的视图,使负载平衡系统(load balancer)和客户拦截器(client interceptors)避开死节点。故障检测协议被配置为 JGroups MBean <literal>Config</literal> 元素里的子元素。 "
 
 #. Tag: title
 #, no-c-format
 msgid "FD"
-msgstr ""
+msgstr "FD"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"FD is a failure detection protocol based on heartbeat messages. This "
-"protocol requires each node to periodically send are-you-alive messages to "
-"its neighbour. If the neighbour fails to respond, the calling node sends a "
-"SUSPECT message to the cluster. The current group coordinator can optionally "
-"double check whether the suspected node is indeed dead after which, if the "
-"node is still considered dead, updates the cluster's view. Here is an "
-"example FD configuration."
-msgstr ""
-"FD 发现协议(FD discovery protocol)要求每个节点定期地发送 are-you-alive 信息"
-"给它的邻居节点。如果这个邻居没有应答,呼叫节点将给群集系统发送一个 SUSPECT 信"
-"息。当前的组协调者(group coordinator)会复核这个可能有问题的节点是否真的已经"
-"崩溃了,如果仍认为它是死节点,就更新群集系统的视图。这里是一个 FD 配置的例"
-"子。"
+msgid "FD is a failure detection protocol based on heartbeat messages. This protocol requires each node to periodically send are-you-alive messages to its neighbour. If the neighbour fails to respond, the calling node sends a SUSPECT message to the cluster. The current group coordinator can optionally double check whether the suspected node is indeed dead after which, if the node is still considered dead, updates the cluster's view. Here is an example FD configuration."
+msgstr "FD 发现协议(FD discovery protocol)要求每个节点定期地发送 are-you-alive 信息给它的邻居节点。如果这个邻居没有应答,呼叫节点将给群集系统发送一个 SUSPECT 信息。当前的组协调者(group coordinator)会复核这个可能有问题的节点是否真的已经崩溃了,如果仍认为它是死节点,就更新群集系统的视图。这里是一个 FD 配置的例子。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The available attributes in the <literal>FD</literal> element are listed "
-"below."
+msgid "The available attributes in the <literal>FD</literal> element are listed below."
 msgstr "下列是 <literal>FD</literal> 元素的可用属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">timeout</emphasis> specifies the maximum number of "
-"milliseconds to wait for the responses to the are-you-alive messages. The "
-"default is 3000."
-msgstr ""
-"<emphasis role=\"bold\">timeout</emphasis> 指定对 are-you-alive 信息的应答的"
-"最长等待时间(毫秒数)。它的缺省值是 3000。"
+msgid "<emphasis role=\"bold\">timeout</emphasis> specifies the maximum number of milliseconds to wait for the responses to the are-you-alive messages. The default is 3000."
+msgstr "<emphasis role=\"bold\">timeout</emphasis> 指定对 are-you-alive 信息的应答的最长等待时间(毫秒数)。它的缺省值是 3000。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">max_tries</emphasis> specifies the number of missed "
-"are-you-alive messages from a node before the node is suspected. The default "
-"is 2."
-msgstr ""
-"<emphasis role=\"bold\">max_tries</emphasis> 指定在一个节点被怀疑为崩溃前,所"
-"丢失的 are-you-alive 信息的次数。它的缺省值为 2。"
+msgid "<emphasis role=\"bold\">max_tries</emphasis> specifies the number of missed are-you-alive messages from a node before the node is suspected. The default is 2."
+msgstr "<emphasis role=\"bold\">max_tries</emphasis> 指定在一个节点被怀疑为崩溃前,所丢失的 are-you-alive 信息的次数。它的缺省值为 2。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">shun</emphasis> specifies whether a failed node will "
-"be shunned. Once shunned, the node will be expelled from the cluster even if "
-"it comes back later. The shunned node would have to re-join the cluster "
-"through the discovery process. JGroups allows to configure itself such that "
-"shunning leads to automatic rejoins and state transfer, which is the default "
-"behaivour within JBoss Application Server."
-msgstr ""
-"<emphasis role=\"bold\">shun</emphasis> 指定崩溃的节点是否该被剔除"
-"(shunned)。一旦被剔除,这个节点将从群集里开除,即使之后它又恢复了。被剔除的"
-"节点可以通过发现过程(discovery process)重新加入到群集系统里来。JGroups 可以"
-"配置自动重新加入和状态转移,这在 JBoss 应用服务器里是缺省的行为。"
+msgid "<emphasis role=\"bold\">shun</emphasis> specifies whether a failed node will be shunned. Once shunned, the node will be expelled from the cluster even if it comes back later. The shunned node would have to re-join the cluster through the discovery process. JGroups allows to configure itself such that shunning leads to automatic rejoins and state transfer, which is the default behaivour within JBoss Application Server."
+msgstr "<emphasis role=\"bold\">shun</emphasis> 指定崩溃的节点是否该被剔除(shunned)。一旦被剔除,这个节点将从群集里开除,即使之后它又恢复了。被剔除的节点可以通过发现过程(discovery process)重新加入到群集系统里来。JGroups 可以配置自动重新加入和状态转移,这在 JBoss 应用服务器里是缺省的行为。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Regular traffic from a node counts as if it is a live. So, the are-you-alive "
-"messages are only sent when there is no regular traffic to the node for "
-"sometime."
-msgstr ""
-"从某个节点的有规律的网络流量可以判定它是否正常工作。所以,are-you-alive 信息"
-"只是在节点有一段时间没有有规律的网络流量时才发送。"
+msgid "Regular traffic from a node counts as if it is a live. So, the are-you-alive messages are only sent when there is no regular traffic to the node for sometime."
+msgstr "从某个节点的有规律的网络流量可以判定它是否正常工作。所以,are-you-alive 信息只是在节点有一段时间没有有规律的网络流量时才发送。"
 
 #. Tag: title
 #, no-c-format
@@ -1086,43 +503,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"FD_SOCK is a failure detection protocol based on a ring of TCP sockets "
-"created between group members. Each member in a group connects to its "
-"neighbor (last member connects to first) thus forming a ring. Member B is "
-"suspected when its neighbor A detects abnormally closed TCP socket "
-"(presumably due to a node B crash). However, if a member B is about to leave "
-"gracefully, it lets its neighbor A know, so that it does not become "
-"suspected. The simplest FD_SOCK configuration does not take any attribute. "
-"You can just declare an empty <literal>FD_SOCK</literal> element in "
-"JGroups's <literal>Config</literal> element."
-msgstr ""
-"FD_SOCK 是一个基于组成员间创建的 TCP 套接字环的故障检测协议。组里的每个成员都"
-"连接自己的邻居(最后一个成员连接第一个)从而组成一个环。当成员 B 的邻居 A 检"
-"测到异常关闭的 TCP 套接字(假设是由于 B 崩溃引起的)时,B 就成为可疑的。然"
-"而,如果 B 正常离开群集,它将让邻居 A 知道,这样 B 就不会成为可疑节点。最简单"
-"的 FD_SOCK 配置不使用任何属性。你可以在 JGroups 的 <literal>Config</literal> "
-"元素里声明一个空的 <literal>FD_SOCK</literal> 元素。"
+msgid "FD_SOCK is a failure detection protocol based on a ring of TCP sockets created between group members. Each member in a group connects to its neighbor (last member connects to first) thus forming a ring. Member B is suspected when its neighbor A detects abnormally closed TCP socket (presumably due to a node B crash). However, if a member B is about to leave gracefully, it lets its neighbor A know, so that it does not become suspected. The simplest FD_SOCK configuration does not take any attribute. You can just declare an empty <literal>FD_SOCK</literal> element in JGroups's <literal>Config</literal> element."
+msgstr "FD_SOCK 是一个基于组成员间创建的 TCP 套接字环的故障检测协议。组里的每个成员都连接自己的邻居(最后一个成员连接第一个)从而组成一个环。当成员 B 的邻居 A 检测到异常关闭的 TCP 套接字(假设是由于 B 崩溃引起的)时,B 就成为可疑的。然而,如果 B 正常离开群集,它将让邻居 A 知道,这样 B 就不会成为可疑节点。最简单的 FD_SOCK 配置不使用任何属性。你可以在 JGroups 的 <literal>Config</literal> 元素里声明一个空的 <literal>FD_SOCK</literal> 元素。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"There available attributes in the <literal>FD_SOCK</literal> element are "
-"listed below."
+msgid "There available attributes in the <literal>FD_SOCK</literal> element are listed below."
 msgstr "下列是 <literal>FD_SOCK</literal> 元素里的可用属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">bind_addr</emphasis> specifies the interface to "
-"which the server socket should bind to. If -Djgroups.bind_address system "
-"property is defined, XML value will be ignore. This behaivour can be "
-"reversed setting -Djgroups.ignore.bind_addr=true system property."
-msgstr ""
-"<emphasis role=\"bold\">bind_addr</emphasis> 指定服务器套接字应该绑定的接口。"
-"如果它被忽略,服务器启动时命令行里的 <literal>-D bind.address</literal> 属性"
-"将被使用。相反的行为可以通过设置 -Djgroups.ignore.bind_addr=true 系统属性来实"
-"现。"
+msgid "<emphasis role=\"bold\">bind_addr</emphasis> specifies the interface to which the server socket should bind to. If -Djgroups.bind_address system property is defined, XML value will be ignore. This behaivour can be reversed setting -Djgroups.ignore.bind_addr=true system property."
+msgstr "<emphasis role=\"bold\">bind_addr</emphasis> 指定服务器套接字应该绑定的接口。如果它被忽略,服务器启动时命令行里的 <literal>-D bind.address</literal> 属性将被使用。相反的行为可以通过设置 -Djgroups.ignore.bind_addr=true 系统属性来实现。"
 
 #. Tag: title
 #, no-c-format
@@ -1131,16 +523,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"This protocol verifies whether a suspected member is really dead by pinging "
-"that member once again. This verification is performed by the coordinator of "
-"the cluster. The suspected member is dropped from the cluster group if "
-"confirmed to be dead. The aim of this protocol is to minimize false "
-"suspicions. Here's an example."
-msgstr ""
-"这个协议通过再次 Ping 可疑成员来验证它是否确实已经崩溃。群集的协调者将执行这"
-"种验证。如果确认是已经崩溃,可疑节点将从群集里删除。这个协议的目的是使假的可"
-"疑成员最小化。下面是一个例子。"
+msgid "This protocol verifies whether a suspected member is really dead by pinging that member once again. This verification is performed by the coordinator of the cluster. The suspected member is dropped from the cluster group if confirmed to be dead. The aim of this protocol is to minimize false suspicions. Here's an example."
+msgstr "这个协议通过再次 Ping 可疑成员来验证它是否确实已经崩溃。群集的协调者将执行这种验证。如果确认是已经崩溃,可疑节点将从群集里删除。这个协议的目的是使假的可疑成员最小化。下面是一个例子。"
 
 #. Tag: para
 #, no-c-format
@@ -1149,9 +533,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"timeout specifies how long to wait for a response from the suspected member "
-"before considering it dead."
+msgid "timeout specifies how long to wait for a response from the suspected member before considering it dead."
 msgstr "timeout 指定在把可疑节点当成已崩溃节点之前等待响应的时间。"
 
 #. Tag: title
@@ -1161,13 +543,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"FD and FD_SOCK, each taken individually, do not provide a solid failure "
-"detection layer. Let's look at the the differences between these failure "
-"detection protocols to understand how they complement each other:"
-msgstr ""
-"FD 和 FD_SOCK 都不提供完整的失效切换检测层。让我们看看这些失效切换检测协议的"
-"区别,并理解它们是如何互补的。"
+msgid "FD and FD_SOCK, each taken individually, do not provide a solid failure detection layer. Let's look at the the differences between these failure detection protocols to understand how they complement each other:"
+msgstr "FD 和 FD_SOCK 都不提供完整的失效切换检测层。让我们看看这些失效切换检测协议的区别,并理解它们是如何互补的。"
 
 #. Tag: para
 #, no-c-format
@@ -1186,9 +563,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Low timeouts lead to higher probability of false suspicions and higher "
-"network traffic."
+msgid "Low timeouts lead to higher probability of false suspicions and higher network traffic."
 msgstr "设置较低的超时时间会导致出现假可疑节点的更高可能性和更高的网络负载。"
 
 #. Tag: para
@@ -1203,9 +578,7 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Suspended in a debugger is no problem because the TCP connection is still "
-"open."
+msgid "Suspended in a debugger is no problem because the TCP connection is still open."
 msgstr "在 debugger 里挂起不会出现问题,因为它的 TCP 连接仍然有效。"
 
 #. Tag: para
@@ -1225,82 +598,33 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Also, a crashed switch will not be detected until the connection runs into "
-"the TCP timeout (between 2-20 minutes, depending on TCP/IP stack "
-"implementation)."
-msgstr ""
-"而且,直到连接出现 TCP 超时(2 - 20分钟,这取决于不同的 TCP/IP 栈的实现)时,"
-"崩溃节点才会被检测到。"
+msgid "Also, a crashed switch will not be detected until the connection runs into the TCP timeout (between 2-20 minutes, depending on TCP/IP stack implementation)."
+msgstr "而且,直到连接出现 TCP 超时(2 - 20分钟,这取决于不同的 TCP/IP 栈的实现)时,崩溃节点才会被检测到。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The aim of a failure detection layer is to report real failures and "
-"therefore avoid false suspicions. There are two solutions:"
-msgstr ""
-"失效切换检测层的目的是报告实时故障并避免检测到假的可疑节点。有两个方案:"
+msgid "The aim of a failure detection layer is to report real failures and therefore avoid false suspicions. There are two solutions:"
+msgstr "失效切换检测层的目的是报告实时故障并避免检测到假的可疑节点。有两个方案:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"By default, JGroups configures the FD_SOCK socket with KEEP_ALIVE, which "
-"means that TCP sends a heartbeat on socket on which no traffic has been "
-"received in 2 hours. If a host crashed (or an intermediate switch or router "
-"crashed) without closing the TCP connection properly, we would detect this "
-"after 2 hours (plus a few minutes). This is of course better than never "
-"closing the connection (if KEEP_ALIVE is off), but may not be of much help. "
-"So, the first solution would be to lower the timeout value for KEEP_ALIVE. "
-"This can only be done for the entire kernel in most operating systems, so if "
-"this is lowered to 15 minutes, this will affect all TCP sockets."
-msgstr ""
-"在缺省情况下,JGroups 配置 FD_SOCK 套接字为 KEEP_ALIVE,这表示如果在两小时内"
-"没有通信的话,TCP 将发送一个 heartbeat。如果某个主机崩溃了(或中间开关或路由"
-"器崩溃)且没有正确关闭 TCP 连接,我们会在两小时(再多几分钟)后检测到。这当然"
-"比从不关闭连接(如果 KEEP_ALIVE 为 off)要好,但也帮助不大。所以对于 "
-"KEEP_ALIVE 选项,第一个方案将降低超时时间。在大部分操作系统里,这只能对于整个"
-"内核进行修改,所以如果降低到 15 分钟,这会影响到所有的 TCP 套接字。"
+msgid "By default, JGroups configures the FD_SOCK socket with KEEP_ALIVE, which means that TCP sends a heartbeat on socket on which no traffic has been received in 2 hours. If a host crashed (or an intermediate switch or router crashed) without closing the TCP connection properly, we would detect this after 2 hours (plus a few minutes). This is of course better than never closing the connection (if KEEP_ALIVE is off), but may not be of much help. So, the first solution would be to lower the timeout value for KEEP_ALIVE. This can only be done for the entire kernel in most operating systems, so if this is lowered to 15 minutes, this will affect all TCP sockets."
+msgstr "在缺省情况下,JGroups 配置 FD_SOCK 套接字为 KEEP_ALIVE,这表示如果在两小时内没有通信的话,TCP 将发送一个 heartbeat。如果某个主机崩溃了(或中间开关或路由器崩溃)且没有正确关闭 TCP 连接,我们会在两小时(再多几分钟)后检测到。这当然比从不关闭连接(如果 KEEP_ALIVE 为 off)要好,但也帮助不大。所以对于 KEEP_ALIVE 选项,第一个方案将降低超时时间。在大部分操作系统里,这只能对于整个内核进行修改,所以如果降低到 15 分钟,这会影响到所有的 TCP 套接字。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The second solution is to combine FD_SOCK and FD; the timeout in FD can be "
-"set such that it is much lower than the TCP timeout, and this can be "
-"configured individually per process. FD_SOCK will already generate a suspect "
-"message if the socket was closed abnormally. However, in the case of a "
-"crashed switch or host, FD will make sure the socket is eventually closed "
-"and the suspect message generated. Example:"
-msgstr ""
-"第二个方案是合并 FD_SOCK 和 FD;你可以设置 FD 的超时时间,所以它比 TCP 超时时"
-"间要低得多,且可以对于每个进程进行配置。如果套接字非正常关闭,FD_SOCK 将已经"
-"生成了一个可疑消息。然而,在主机或开关崩溃的情况下,FD 将确保套接字最终被关闭"
-"且生成可疑消息。例如:"
+msgid "The second solution is to combine FD_SOCK and FD; the timeout in FD can be set such that it is much lower than the TCP timeout, and this can be configured individually per process. FD_SOCK will already generate a suspect message if the socket was closed abnormally. However, in the case of a crashed switch or host, FD will make sure the socket is eventually closed and the suspect message generated. Example:"
+msgstr "第二个方案是合并 FD_SOCK 和 FD;你可以设置 FD 的超时时间,所以它比 TCP 超时时间要低得多,且可以对于每个进程进行配置。如果套接字非正常关闭,FD_SOCK 将已经生成了一个可疑消息。然而,在主机或开关崩溃的情况下,FD 将确保套接字最终被关闭且生成可疑消息。例如:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"This suspects a member when the socket to the neighbor has been closed "
-"abonormally (e.g. process crash, because the OS closes all sockets). "
-"However, f a host or switch crashes, then the sockets won't be closed, "
-"therefore, as a seond line of defense, FD will suspect the neighbor after 50 "
-"seconds. Note that with this example, if you have your system stopped in a "
-"breakpoint in the debugger, the node you're debugging will be suspected "
-"after ca 50 seconds."
-msgstr ""
-"当和邻居节点通信的套接字被异常关闭时(如因为操作系统关闭所有套接字导致的进程"
-"崩溃),它将怀疑该成员。然而,当主机或交换机崩溃时,套接字不会被关闭,因此,"
-"作为第二层保险措施,FD 将在 50 秒后挂起该邻居节点。请注意,在这个例子里,如果"
-"你让系统停在 Debugger 里的一个断点上,你所调试的节点将在 50 秒后被挂起。"
+msgid "This suspects a member when the socket to the neighbor has been closed abonormally (e.g. process crash, because the OS closes all sockets). However, f a host or switch crashes, then the sockets won't be closed, therefore, as a seond line of defense, FD will suspect the neighbor after 50 seconds. Note that with this example, if you have your system stopped in a breakpoint in the debugger, the node you're debugging will be suspected after ca 50 seconds."
+msgstr "当和邻居节点通信的套接字被异常关闭时(如因为操作系统关闭所有套接字导致的进程崩溃),它将怀疑该成员。然而,当主机或交换机崩溃时,套接字不会被关闭,因此,作为第二层保险措施,FD 将在 50 秒后挂起该邻居节点。请注意,在这个例子里,如果你让系统停在 Debugger 里的一个断点上,你所调试的节点将在 50 秒后被挂起。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A combination of FD and FD_SOCK provides a solid failure detection layer and "
-"for this reason, such technique is used accross JGroups configurations "
-"included within JBoss Application Server."
-msgstr ""
-"因此,FD 和 FD_SOCK 的组合提供了一个坚实的失效切换检测层,JGroups 配置以及 "
-"JBoss 应用服务器都使用了这样的技术。"
+msgid "A combination of FD and FD_SOCK provides a solid failure detection layer and for this reason, such technique is used accross JGroups configurations included within JBoss Application Server."
+msgstr "因此,FD 和 FD_SOCK 的组合提供了一个坚实的失效切换检测层,JGroups 配置以及 JBoss 应用服务器都使用了这样的技术。"
 
 #. Tag: title
 #, no-c-format
@@ -1309,19 +633,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Reliable delivery protocols within the JGroups stack ensure that data "
-"pockets are actually delivered in the right order (FIFO) to the destination "
-"node. The basis for reliable message delivery is positive and negative "
-"delivery acknowledgments (ACK and NAK). In the ACK mode, the sender resends "
-"the message until the acknowledgment is received from the receiver. In the "
-"NAK mode, the receiver requests retransmission when it discovers a gap."
-msgstr ""
-"JGroups 栈里的可靠传输协议(reliable delivery protocols)确保数据包按正确的顺"
-"序(FIFO)正确地递送到目的节点。可靠的信息递送的基础是肯定和否定的递送确认"
-"(delivery acknowledgments)(ACK 和 NAK)。在 ACK 模式下,发送者重新发送信息"
-"直到收到接收者的确认。在 NAK 模式下,当接收者发现一个间断时,它会请求重新传"
-"送。"
+msgid "Reliable delivery protocols within the JGroups stack ensure that data pockets are actually delivered in the right order (FIFO) to the destination node. The basis for reliable message delivery is positive and negative delivery acknowledgments (ACK and NAK). In the ACK mode, the sender resends the message until the acknowledgment is received from the receiver. In the NAK mode, the receiver requests retransmission when it discovers a gap."
+msgstr "JGroups 栈里的可靠传输协议(reliable delivery protocols)确保数据包按正确的顺序(FIFO)正确地递送到目的节点。可靠的信息递送的基础是肯定和否定的递送确认(delivery acknowledgments)(ACK 和 NAK)。在 ACK 模式下,发送者重新发送信息直到收到接收者的确认。在 NAK 模式下,当接收者发现一个间断时,它会请求重新传送。"
 
 #. Tag: title
 #, no-c-format
@@ -1330,37 +643,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The UNICAST protocol is used for unicast messages. It uses ACK. It is "
-"configured as a sub-element under the JGroups Config element. If the JGroups "
-"stack is configured with TCP transport protocol, UNICAST is not necessary "
-"because TCP itself guarantees FIFO delivery of unicast messages. Here is an "
-"example configuration for the <literal>UNICAST</literal> protocol."
-msgstr ""
-"UNICAST 协议用于单播信息。它使用 ACK。它被配置成 JGroups <literal>Config</"
-"literal> 元素下的一个子元素。如果 JGroups 栈配置为 TCP 传输协议,因为 TCP 自"
-"身保证了单播消息的 FIFO 传递,设置 UNICAST 协议就没有必要了。这里有一个配置 "
-"<literal>UNICAST</literal> 协议的例子。"
+msgid "The UNICAST protocol is used for unicast messages. It uses ACK. It is configured as a sub-element under the JGroups Config element. If the JGroups stack is configured with TCP transport protocol, UNICAST is not necessary because TCP itself guarantees FIFO delivery of unicast messages. Here is an example configuration for the <literal>UNICAST</literal> protocol."
+msgstr "UNICAST 协议用于单播信息。它使用 ACK。它被配置成 JGroups <literal>Config</literal> 元素下的一个子元素。如果 JGroups 栈配置为 TCP 传输协议,因为 TCP 自身保证了单播消息的 FIFO 传递,设置 UNICAST 协议就没有必要了。这里有一个配置 <literal>UNICAST</literal> 协议的例子。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"There is only one configurable attribute in the <literal>UNICAST</literal> "
-"element."
+msgid "There is only one configurable attribute in the <literal>UNICAST</literal> element."
 msgstr "<literal>UNICAST</literal> 元素里只有一个可配置属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">timeout</emphasis> specifies the retransmission "
-"timeout (in milliseconds). For instance, if the timeout is \"100,200,400,800"
-"\", the sender resends the message if it hasn't received an ACK after 100 ms "
-"the first time, and the second time it waits for 200 ms before resending, "
-"and so on."
-msgstr ""
-"<emphasis role=\"bold\">timeout</emphasis> 指定重新传送的超时时间(毫秒数)。"
-"例如,如果这个超时时间是 \"100,200,400,800\",如果发送者在 100 毫秒后还没有接"
-"到 ACK,它会重新发送信息,第二此重发会在 200 毫秒后,以此类推。"
+msgid "<emphasis role=\"bold\">timeout</emphasis> specifies the retransmission timeout (in milliseconds). For instance, if the timeout is \"100,200,400,800\", the sender resends the message if it hasn't received an ACK after 100 ms the first time, and the second time it waits for 200 ms before resending, and so on."
+msgstr "<emphasis role=\"bold\">timeout</emphasis> 指定重新传送的超时时间(毫秒数)。例如,如果这个超时时间是 \"100,200,400,800\",如果发送者在 100 毫秒后还没有接到 ACK,它会重新发送信息,第二此重发会在 200 毫秒后,以此类推。"
 
 #. Tag: title
 #, no-c-format
@@ -1369,79 +663,38 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The NAKACK protocol is used for multicast messages. It uses NAK. Under this "
-"protocol, each message is tagged with a sequence number. The receiver keeps "
-"track of the sequence numbers and deliver the messages in order. When a gap "
-"in the sequence number is detected, the receiver asks the sender to "
-"retransmit the missing message. The NAKACK protocol is configured as the "
-"<literal>pbcast.NAKACK</literal> sub-element under the JGroups "
-"<literal>Config</literal> element. Here is an example configuration."
-msgstr ""
-"NAKACK 协议用于多点传送信息。它使用 NAK。在这个协议下,每个信息用一个序列号标"
-"识。接收者根据这个序列号来按顺序递送信息。当检测到序列号存在一个间断时,接收"
-"者会要求发送者重新传送丢失的信息。NAKACK 协议被配置为 JGroups "
-"<literal>Config</literal> 元素下的 <literal>pbcast.NAKACK</literal> 子元素。"
-"这里有一个配置示例。"
+msgid "The NAKACK protocol is used for multicast messages. It uses NAK. Under this protocol, each message is tagged with a sequence number. The receiver keeps track of the sequence numbers and deliver the messages in order. When a gap in the sequence number is detected, the receiver asks the sender to retransmit the missing message. The NAKACK protocol is configured as the <literal>pbcast.NAKACK</literal> sub-element under the JGroups <literal>Config</literal> element. Here is an example configuration."
+msgstr "NAKACK 协议用于多点传送信息。它使用 NAK。在这个协议下,每个信息用一个序列号标识。接收者根据这个序列号来按顺序递送信息。当检测到序列号存在一个间断时,接收者会要求发送者重新传送丢失的信息。NAKACK 协议被配置为 JGroups <literal>Config</literal> 元素下的 <literal>pbcast.NAKACK</literal> 子元素。这里有一个配置示例。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The configurable attributes in the <literal>pbcast.NAKACK</literal> element "
-"are as follows."
+msgid "The configurable attributes in the <literal>pbcast.NAKACK</literal> element are as follows."
 msgstr "下列是 <literal>pbcast.NAKACK</literal> 元素的可配置属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">retransmit_timeout</emphasis> specifies the "
-"retransmission timeout (in milliseconds). It is the same as the "
-"<literal>timeout</literal> attribute in the UNICAST protocol."
-msgstr ""
-"<emphasis role=\"bold\">retransmit_timeout</emphasis> 指定重发的超时时间(毫"
-"秒数)。它和  UNICAST 协议里的 <literal>timeout</literal> 属性是一样的。"
+msgid "<emphasis role=\"bold\">retransmit_timeout</emphasis> specifies the retransmission timeout (in milliseconds). It is the same as the <literal>timeout</literal> attribute in the UNICAST protocol."
+msgstr "<emphasis role=\"bold\">retransmit_timeout</emphasis> 指定重发的超时时间(毫秒数)。它和  UNICAST 协议里的 <literal>timeout</literal> 属性是一样的。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">use_mcast_xmit</emphasis> determines whether the "
-"sender should send the retransmission to the entire cluster rather than just "
-"the node requesting it. This is useful when the sender drops the pocket -- "
-"so we do not need to retransmit for each node."
-msgstr ""
-"<emphasis role=\"bold\">use_mcast_xmit</emphasis> 决定发送者是否应该重发给整"
-"个群集而不只是请求的节点。这在发送者取消数据包时很有用 - 我们不需要对每个节点"
-"都重发。"
+msgid "<emphasis role=\"bold\">use_mcast_xmit</emphasis> determines whether the sender should send the retransmission to the entire cluster rather than just the node requesting it. This is useful when the sender drops the pocket -- so we do not need to retransmit for each node."
+msgstr "<emphasis role=\"bold\">use_mcast_xmit</emphasis> 决定发送者是否应该重发给整个群集而不只是请求的节点。这在发送者取消数据包时很有用 - 我们不需要对每个节点都重发。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">max_xmit_size</emphasis> specifies maximum size for "
-"a bundled retransmission, if multiple packets are reported missing."
-msgstr ""
-"<emphasis role=\"bold\">max_xmit_size</emphasis> 指定当多个数据包丢失时,捆绑"
-"在一起的重发的最大规模。"
+msgid "<emphasis role=\"bold\">max_xmit_size</emphasis> specifies maximum size for a bundled retransmission, if multiple packets are reported missing."
+msgstr "<emphasis role=\"bold\">max_xmit_size</emphasis> 指定当多个数据包丢失时,捆绑在一起的重发的最大规模。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">discard_delivered_msgs</emphasis> specifies whether "
-"to discard delivery messages on the receiver nodes. By default, we save all "
-"delivered messages. However, if we only ask the sender to resend their "
-"messages, we can enable this option and discard delivered messages."
-msgstr ""
-"<emphasis role=\"bold\">discard_delivered_msgs</emphasis> 指定是否丢弃接收节"
-"点上的递送信息。在缺省情况下,我们保存所有的递送的信息。然而,如果我们只需要"
-"发送者重发信息,我们就可以启用这个选项来丢弃递送的信息。"
+msgid "<emphasis role=\"bold\">discard_delivered_msgs</emphasis> specifies whether to discard delivery messages on the receiver nodes. By default, we save all delivered messages. However, if we only ask the sender to resend their messages, we can enable this option and discard delivered messages."
+msgstr "<emphasis role=\"bold\">discard_delivered_msgs</emphasis> 指定是否丢弃接收节点上的递送信息。在缺省情况下,我们保存所有的递送的信息。然而,如果我们只需要发送者重发信息,我们就可以启用这个选项来丢弃递送的信息。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">gc_lag specifies</emphasis> the number of messages "
-"garbage collection lags behind."
-msgstr ""
-"<emphasis role=\"bold\">gc_lag specifies</emphasis>:垃圾收集发生之前所允许的"
-"消息数目。"
+msgid "<emphasis role=\"bold\">gc_lag specifies</emphasis> the number of messages garbage collection lags behind."
+msgstr "<emphasis role=\"bold\">gc_lag specifies</emphasis>:垃圾收集发生之前所允许的消息数目。"
 
 #. Tag: title
 #, no-c-format
@@ -1450,12 +703,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"In addition to the protocol stacks, you can also configure JGroups network "
-"services in the <literal>Config</literal> element."
-msgstr ""
-"除了协议栈以外,你也可以在 <literal>Config</literal> 元素里配置 JGroups 网络"
-"服务。"
+msgid "In addition to the protocol stacks, you can also configure JGroups network services in the <literal>Config</literal> element."
+msgstr "除了协议栈以外,你也可以在 <literal>Config</literal> 元素里配置 JGroups 网络服务。"
 
 #. Tag: title
 #, no-c-format
@@ -1464,87 +713,43 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The group membership service in the JGroups stack maintains a list of active "
-"nodes. It handles the requests to join and leave the cluster. It also "
-"handles the SUSPECT messages sent by failure detection protocols. All nodes "
-"in the cluster, as well as the load balancer and client side interceptors, "
-"are notified if the group membership changes. The group membership service "
-"is configured in the <literal>pbcast.GMS</literal> sub-element under the "
-"JGroups <literal>Config</literal> element. Here is an example configuration."
-msgstr ""
-"JGroups 栈里的组成员资格(group membership)服务维护一个活动节点的列表。它处"
-"理加入和离开群集系统的请求。它也处理故障检测协议(failure detection "
-"protocols)发送的 SUSPECT 信息。当组成员资格有变动时,它通知群集系统里的所有"
-"节点,负载平衡系统(load balancer)和客户端拦截器(client side "
-"interceptors)。组成员资格(group membership)服务可以在 JGroups "
-"<literal>Config</literal> 元素下的 <literal>pbcast.GMS</literal> 子元素里配"
-"置。这里是一个配置示例。"
+msgid "The group membership service in the JGroups stack maintains a list of active nodes. It handles the requests to join and leave the cluster. It also handles the SUSPECT messages sent by failure detection protocols. All nodes in the cluster, as well as the load balancer and client side interceptors, are notified if the group membership changes. The group membership service is configured in the <literal>pbcast.GMS</literal> sub-element under the JGroups <literal>Config</literal> element. Here is an example configuration."
+msgstr "JGroups 栈里的组成员资格(group membership)服务维护一个活动节点的列表。它处理加入和离开群集系统的请求。它也处理故障检测协议(failure detection protocols)发送的 SUSPECT 信息。当组成员资格有变动时,它通知群集系统里的所有节点,负载平衡系统(load balancer)和客户端拦截器(client side interceptors)。组成员资格(group membership)服务可以在 JGroups <literal>Config</literal> 元素下的 <literal>pbcast.GMS</literal> 子元素里配置。这里是一个配置示例。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The configurable attributes in the <literal>pbcast.GMS</literal> element are "
-"as follows."
+msgid "The configurable attributes in the <literal>pbcast.GMS</literal> element are as follows."
 msgstr "下列是 <literal>pbcast.GMS</literal> 元素里的可配置属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">join_timeout</emphasis> specifies the maximum number "
-"of milliseconds to wait for a new node JOIN request to succeed. Retry "
-"afterwards."
-msgstr ""
-"<emphasis role=\"bold\">join_timeout</emphasis> 指定了等待新节点 JOIN 请求成"
-"功的最长时间(毫秒数)。"
+msgid "<emphasis role=\"bold\">join_timeout</emphasis> specifies the maximum number of milliseconds to wait for a new node JOIN request to succeed. Retry afterwards."
+msgstr "<emphasis role=\"bold\">join_timeout</emphasis> 指定了等待新节点 JOIN 请求成功的最长时间(毫秒数)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">join_retry_timeout</emphasis> specifies the maximum "
-"number of milliseconds to wait after a failed JOIN to re-submit it."
-msgstr ""
-"<emphasis role=\"bold\">join_retry_timeout</emphasis> 指定 JOIN 失败后重新递"
-"交前所等待的时间(毫秒数)。"
+msgid "<emphasis role=\"bold\">join_retry_timeout</emphasis> specifies the maximum number of milliseconds to wait after a failed JOIN to re-submit it."
+msgstr "<emphasis role=\"bold\">join_retry_timeout</emphasis> 指定 JOIN 失败后重新递交前所等待的时间(毫秒数)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">print_local_addr</emphasis> specifies whether to "
-"dump the node's own address to the output when started."
-msgstr ""
-"<emphasis role=\"bold\">print_local_addr</emphasis> 指定是否在启动时输出节点"
-"自己的地址。"
+msgid "<emphasis role=\"bold\">print_local_addr</emphasis> specifies whether to dump the node's own address to the output when started."
+msgstr "<emphasis role=\"bold\">print_local_addr</emphasis> 指定是否在启动时输出节点自己的地址。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">shun</emphasis> specifies whether a node should shun "
-"itself if it receives a cluster view that it is not a member node."
-msgstr ""
-"<emphasis role=\"bold\">shun</emphasis> 指定如果收到指明自己并非成员节点的群"
-"集视图,节点是否剔除(shun)自己。"
+msgid "<emphasis role=\"bold\">shun</emphasis> specifies whether a node should shun itself if it receives a cluster view that it is not a member node."
+msgstr "<emphasis role=\"bold\">shun</emphasis> 指定如果收到指明自己并非成员节点的群集视图,节点是否剔除(shun)自己。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">disable_initial_coord</emphasis> specifies whether "
-"to prevent this node as the cluster coordinator."
-msgstr ""
-"<emphasis role=\"bold\">disable_initial_coord</emphasis> 指定是否阻止这个节点"
-"成为群集控制点(cluster coordinator)。"
+msgid "<emphasis role=\"bold\">disable_initial_coord</emphasis> specifies whether to prevent this node as the cluster coordinator."
+msgstr "<emphasis role=\"bold\">disable_initial_coord</emphasis> 指定是否阻止这个节点成为群集控制点(cluster coordinator)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">view_bundling</emphasis> specifies whether multiple "
-"JOIN or LEAVE request arriving at the same time are bundled and handled "
-"together at the same time, only sending out 1 new view / bundle. This is is "
-"more efficient than handling each request separately."
-msgstr ""
-"<emphasis role=\"bold\">view_bundling</emphasis> 指定同时到达的多个 JOIN 或 "
-"LEAVE 请求是否同时进行捆绑和处理,而只发送一个新的视图/捆绑。这比单独捆绑每个"
-"请求更为高效。"
+msgid "<emphasis role=\"bold\">view_bundling</emphasis> specifies whether multiple JOIN or LEAVE request arriving at the same time are bundled and handled together at the same time, only sending out 1 new view / bundle. This is is more efficient than handling each request separately."
+msgstr "<emphasis role=\"bold\">view_bundling</emphasis> 指定同时到达的多个 JOIN 或 LEAVE 请求是否同时进行捆绑和处理,而只发送一个新的视图/捆绑。这比单独捆绑每个请求更为高效。"
 
 #. Tag: title
 #, no-c-format
@@ -1553,63 +758,28 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The flow control service tries to adapt the sending data rate and the "
-"receiving data among nodes. If a sender node is too fast, it might overwhelm "
-"the receiver node and result in dropped packets that have to be "
-"retransmitted. In JGroups, the flow control is implemented via a credit-"
-"based system. The sender and receiver nodes have the same number of credits "
-"(bytes) to start with. The sender subtracts credits by the number of bytes "
-"in messages it sends. The receiver accumulates credits for the bytes in the "
-"messages it receives. When the sender's credit drops to a threshold, the "
-"receivers sends some credit to the sender. If the sender's credit is used "
-"up, the sender blocks until it receives credits from the receiver. The flow "
-"control service is configured in the <literal>FC</literal> sub-element under "
-"the JGroups <literal>Config</literal> element. Here is an example "
-"configuration."
-msgstr ""
-"流量控制(flow control)服务试图在节点间控制发送和接收数据传输率。如果一个节"
-"点发送的过快,它可能会使接收节点难以负荷,导致数据包的丢失而且不得不重新发"
-"送。在 JGroups 里,流量控制通过基于信用值(credit-based)的系统来实现。发送和"
-"接收节点具有相同的初始信用值(credits)(字节数)。发送者减去所发送信息的字节"
-"数,而接收者积累它接收到的信息的字节数。当发送者的信用值减少至某一极限时,接"
-"收者将把一些信用值发送给发送者。如果发送者的信用值被用光了,发送者将暂停,直"
-"到它收到接收者的信用值为止。流量控制服务在 JGroups <literal>Config</literal> "
-"元素下的 <literal>FC</literal> 子元素里配置。下面是一个配置示例。"
+msgid "The flow control service tries to adapt the sending data rate and the receiving data among nodes. If a sender node is too fast, it might overwhelm the receiver node and result in dropped packets that have to be retransmitted. In JGroups, the flow control is implemented via a credit-based system. The sender and receiver nodes have the same number of credits (bytes) to start with. The sender subtracts credits by the number of bytes in messages it sends. The receiver accumulates credits for the bytes in the messages it receives. When the sender's credit drops to a threshold, the receivers sends some credit to the sender. If the sender's credit is used up, the sender blocks until it receives credits from the receiver. The flow control service is configured in the <literal>FC</literal> sub-element under the JGroups <literal>Config</literal> element. Here is an example configuration."
+msgstr "流量控制(flow control)服务试图在节点间控制发送和接收数据传输率。如果一个节点发送的过快,它可能会使接收节点难以负荷,导致数据包的丢失而且不得不重新发送。在 JGroups 里,流量控制通过基于信用值(credit-based)的系统来实现。发送和接收节点具有相同的初始信用值(credits)(字节数)。发送者减去所发送信息的字节数,而接收者积累它接收到的信息的字节数。当发送者的信用值减少至某一极限时,接收者将把一些信用值发送给发送者。如果发送者的信用值被用光了,发送者将暂停,直到它收到接收者的信用值为止。流量控制服务在 JGroups <literal>Config</literal> 元素下的 <literal>FC</literal> 子元素里配置。下面是一个配置示例。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The configurable attributes in the <literal>FC</literal> element are as "
-"follows."
+msgid "The configurable attributes in the <literal>FC</literal> element are as follows."
 msgstr "下列是 <literal>FC</literal> 元素的可配置属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">max_credits</emphasis> specifies the maximum number "
-"of credits (in bytes). This value should be smaller than the JVM heap size."
-msgstr ""
-"<emphasis role=\"bold\">max_credits</emphasis> 指定最大的信用值(字节数)。这"
-"个值应该小于 JVM 的 heap size。"
+msgid "<emphasis role=\"bold\">max_credits</emphasis> specifies the maximum number of credits (in bytes). This value should be smaller than the JVM heap size."
+msgstr "<emphasis role=\"bold\">max_credits</emphasis> 指定最大的信用值(字节数)。这个值应该小于 JVM 的 heap size。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">min_credits</emphasis> specifies the threshold "
-"credit on the sender, below which the receiver should send in more credits."
-msgstr ""
-"<emphasis role=\"bold\">min_credits</emphasis> 指定发送者的极限信用值,如果低"
-"于这个值,接收者就应该发送更多的信用值给发送者。"
+msgid "<emphasis role=\"bold\">min_credits</emphasis> specifies the threshold credit on the sender, below which the receiver should send in more credits."
+msgstr "<emphasis role=\"bold\">min_credits</emphasis> 指定发送者的极限信用值,如果低于这个值,接收者就应该发送更多的信用值给发送者。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">min_threshold</emphasis> specifies percentage value "
-"of the threshold. It overrides the <literal>min_credits</literal> attribute."
-msgstr ""
-"<emphasis role=\"bold\">min_threshold</emphasis> 指定极限值的百分比。它可以覆"
-"盖 <literal>min_credits</literal> 属性。"
+msgid "<emphasis role=\"bold\">min_threshold</emphasis> specifies percentage value of the threshold. It overrides the <literal>min_credits</literal> attribute."
+msgstr "<emphasis role=\"bold\">min_threshold</emphasis> 指定极限值的百分比。它可以覆盖 <literal>min_credits</literal> 属性。"
 
 #. Tag: title
 #, no-c-format
@@ -1618,23 +788,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Applications that use synchronous group RPC calls primarily do not require "
-"FC protocol in their JGroups protocol stack because synchronous "
-"communication, where the hread that makes the call blocks waiting for "
-"responses from all the members of the group, already slows overall rate of "
-"calls. Even though TCP provides flow control by itself, FC is still required "
-"in TCP based JGroups stacks because of group communication, where we "
-"essentially have to send group messages at the highest speed the slowest "
-"receiver can keep up with. TCP flow control only takes into account "
-"individual node communications and has not a notion of who's the slowest in "
-"the group, which is why FC is required."
-msgstr ""
-"使用同步组 RPC 调用的应用程序在其 JGroups 协议栈里不要求 FC 协议,因为在同步"
-"通信里,调用线程在等待所有成员响应时阻塞,这已经降低了调用的速度。即使 TCP 自"
-"身提供了流量控制,对于基于 TCP 的 JGroups 栈来说 FC 也是必需的,因为对于组通"
-"信,我们都得以最慢的接收者可以处理的最高速度发送组消息。TCP 流量控制只考虑单"
-"独节点的通信且不会注意组里哪个节点最慢,这就是为什么需要 FC 的原因。"
+msgid "Applications that use synchronous group RPC calls primarily do not require FC protocol in their JGroups protocol stack because synchronous communication, where the hread that makes the call blocks waiting for responses from all the members of the group, already slows overall rate of calls. Even though TCP provides flow control by itself, FC is still required in TCP based JGroups stacks because of group communication, where we essentially have to send group messages at the highest speed the slowest receiver can keep up with. TCP flow control only takes into account individual node communications and has not a notion of who's the slowest in the group, which is why FC is required."
+msgstr "使用同步组 RPC 调用的应用程序在其 JGroups 协议栈里不要求 FC 协议,因为在同步通信里,调用线程在等待所有成员响应时阻塞,这已经降低了调用的速度。即使 TCP 自身提供了流量控制,对于基于 TCP 的 JGroups 栈来说 FC 也是必需的,因为对于组通信,我们都得以最慢的接收者可以处理的最高速度发送组消息。TCP 流量控制只考虑单独节点的通信且不会注意组里哪个节点最慢,这就是为什么需要 FC 的原因。"
 
 #. Tag: title
 #, no-c-format
@@ -1643,62 +798,22 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The reason is group communication, where we essentially have to send group "
-"messages at the highest speed the slowest receiver can keep up with. Let's "
-"say we have a cluster {A,B,C,D}. D is slow (maybe overloaded), the rest is "
-"fast. When A sends a group message, it establishes TCP connections A-A "
-"(conceptually), A-B, A-C and A-D (if they don't yet exist). So let's say A "
-"sends 100 million messages to the cluster. Because TCP's flow control only "
-"applies to A-B, A-C and A-D, but not to A-{B,C,D}, where {B,C,D} is the "
-"group, it is possible that A, B and C receive the 100M, but D only received "
-"1M messages. (BTW: this is also the reason why we need NAKACK, although TCP "
-"does its own retransmission)."
-msgstr ""
-"原因在于组通信,我们得以最慢的接收者可以处理的最高速度发送组消息。假设我们有"
-"一个群集 {A,B,C,D}。D 较慢(可能是超载),其他节点比较快。当 A 发送一个组消"
-"息,它建立了一个 TCP 连接 A-A(概念上的)、A-B、A-C 和 A-D(如果它们还不存"
-"在)。所以,假设 A 往群集发送 1 亿条消息,因为 TCP 的流量控制只适用于 A-B、A-"
-"C 和 A-D,但不适用于 A-{B,C,D},这里的 {B,C,D} 是一个组,可能 A、B 和 C 接收"
-"了 1 亿条消息,但 D 只接收了一百万条。(顺便提一句,这也是我们为什么需要 "
-"NAKACK 的原因,既然 TCP 自己实现中继)。"
+msgid "The reason is group communication, where we essentially have to send group messages at the highest speed the slowest receiver can keep up with. Let's say we have a cluster {A,B,C,D}. D is slow (maybe overloaded), the rest is fast. When A sends a group message, it establishes TCP connections A-A (conceptually), A-B, A-C and A-D (if they don't yet exist). So let's say A sends 100 million messages to the cluster. Because TCP's flow control only applies to A-B, A-C and A-D, but not to A-{B,C,D}, where {B,C,D} is the group, it is possible that A, B and C receive the 100M, but D only received 1M messages. (BTW: this is also the reason why we need NAKACK, although TCP does its own retransmission)."
+msgstr "原因在于组通信,我们得以最慢的接收者可以处理的最高速度发送组消息。假设我们有一个群集 {A,B,C,D}。D 较慢(可能是超载),其他节点比较快。当 A 发送一个组消息,它建立了一个 TCP 连接 A-A(概念上的)、A-B、A-C 和 A-D(如果它们还不存在)。所以,假设 A 往群集发送 1 亿条消息,因为 TCP 的流量控制只适用于 A-B、A-C 和 A-D,但不适用于 A-{B,C,D},这里的 {B,C,D} 是一个组,可能 A、B 和 C 接收了 1 亿条消息,但 D 只接收了一百万条。(顺便提一句,这也是我们为什么需要 NAKACK 的原因,既然 TCP 自己实现中继)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Now JGroups has to buffer all messages in memory for the case when the "
-"original sender S dies and a node asks for retransmission of a message of S. "
-"Because all members buffer all messages they received, they need to purge "
-"stable messages (= messages seen by everyone) every now and then. This is "
-"done by the STABLE protocol, which can be configured to run the stability "
-"protocol round time based (e.g. every 50s) or size based (whenever 400K data "
-"has been received)."
-msgstr ""
-"现在,当原来的发送者 S 崩溃且节点请求中继 S 的消息时,JGroups 得把所有的消息"
-"缓冲在内存里。因为所有的成员都缓冲它们所接收的消息,它们不时需要删除 stable "
-"消息(等于所有成员都可以看到的消息)。这是由 STABLE 协议来完成的,我们可以配"
-"置它根据时间间隔(如每隔 50 秒)或数据大小(每当接收了 400K 数据)运行。"
+msgid "Now JGroups has to buffer all messages in memory for the case when the original sender S dies and a node asks for retransmission of a message of S. Because all members buffer all messages they received, they need to purge stable messages (= messages seen by everyone) every now and then. This is done by the STABLE protocol, which can be configured to run the stability protocol round time based (e.g. every 50s) or size based (whenever 400K data has been received)."
+msgstr "现在,当原来的发送者 S 崩溃且节点请求中继 S 的消息时,JGroups 得把所有的消息缓冲在内存里。因为所有的成员都缓冲它们所接收的消息,它们不时需要删除 stable 消息(等于所有成员都可以看到的消息)。这是由 STABLE 协议来完成的,我们可以配置它根据时间间隔(如每隔 50 秒)或数据大小(每当接收了 400K 数据)运行。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"In the above case, the slow node D will prevent the group from purging "
-"messages above 1M, so every member will buffer 99M messages ! This in most "
-"cases leads to OOM exceptions. Note that - although the sliding window "
-"protocol in TCP will cause writes to block if the window is full - we assume "
-"in the above case that this is still much faster for A-B and A-C than for A-"
-"D."
-msgstr ""
-"如在上面的例子里,慢节点 D 将阻止组删除超过 1M 的消息,所以每个成员都将缓冲 "
-"99M 消息。这在大多数情况下都会导致 OOM 异常。请注意 - 虽然 TCP 里的 sliding "
-"window 协议将在窗口满了时写入到块 - 我们假设在上面的例子里 A-B 和 A-C 仍然比 "
-"A-D 快得多。"
+msgid "In the above case, the slow node D will prevent the group from purging messages above 1M, so every member will buffer 99M messages ! This in most cases leads to OOM exceptions. Note that - although the sliding window protocol in TCP will cause writes to block if the window is full - we assume in the above case that this is still much faster for A-B and A-C than for A-D."
+msgstr "如在上面的例子里,慢节点 D 将阻止组删除超过 1M 的消息,所以每个成员都将缓冲 99M 消息。这在大多数情况下都会导致 OOM 异常。请注意 - 虽然 TCP 里的 sliding window 协议将在窗口满了时写入到块 - 我们假设在上面的例子里 A-B 和 A-C 仍然比 A-D 快得多。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"So, in summary, we need to send messages at a rate the slowest receiver (D) "
-"can handle."
+msgid "So, in summary, we need to send messages at a rate the slowest receiver (D) can handle."
 msgstr "所以,总的来说,我们需要以最慢接收者(D)能处理的速度发送消息。"
 
 #. Tag: title
@@ -1708,69 +823,28 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"This depends on how the application uses the JGroups channel. Referring to "
-"the example above, if there was something about the application that would "
-"naturally cause A to slow down its rate of sending because D wasn't keeping "
-"up, then FC would not be needed."
-msgstr ""
-"这取决于应用程序怎样使用 JGroups 频道。参照上面的例子,如果因为 D 处理不过"
-"来,而应用程序会自然地让 A 发送消息的速度慢下来,那么就需要 FC。"
+msgid "This depends on how the application uses the JGroups channel. Referring to the example above, if there was something about the application that would naturally cause A to slow down its rate of sending because D wasn't keeping up, then FC would not be needed."
+msgstr "这取决于应用程序怎样使用 JGroups 频道。参照上面的例子,如果因为 D 处理不过来,而应用程序会自然地让 A 发送消息的速度慢下来,那么就需要 FC。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A good example of such an application is one that makes synchronous group "
-"RPC calls (typically using a JGroups RpcDispatcher.) By synchronous, we mean "
-"the thread that makes the call blocks waiting for responses from all the "
-"members of the group. In that kind of application, the threads on A that are "
-"making calls would block waiting for responses from D, thus naturally "
-"slowing the overall rate of calls."
-msgstr ""
-"对于这样的应用程序,一个很好的例子是进行同步组 RPC 调用(通常使用 JGroups "
-"RpcDispatcher)的应用程序。同步意味着调用线程在等待所有组成员响应之前一直阻"
-"塞。在这种应用程序里,A 上的调用线程将在等待 D 的响应时阻塞,因此自然就降低了"
-"总体的调用速度。"
+msgid "A good example of such an application is one that makes synchronous group RPC calls (typically using a JGroups RpcDispatcher.) By synchronous, we mean the thread that makes the call blocks waiting for responses from all the members of the group. In that kind of application, the threads on A that are making calls would block waiting for responses from D, thus naturally slowing the overall rate of calls."
+msgstr "对于这样的应用程序,一个很好的例子是进行同步组 RPC 调用(通常使用 JGroups RpcDispatcher)的应用程序。同步意味着调用线程在等待所有组成员响应之前一直阻塞。在这种应用程序里,A 上的调用线程将在等待 D 的响应时阻塞,因此自然就降低了总体的调用速度。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A JBoss Cache cluster configured for REPL_SYNC is a good example of an "
-"application that makes synchronous group RPC calls. If a channel is only "
-"used for a cache configured for REPL_SYNC, we recommend you remove FC from "
-"its protocol stack."
-msgstr ""
-"配置为 REPL_SYNC 的 JBoss Cache 群集是进行同步组 RPC 调用的应用程序的一个范"
-"例。如果某个频道只用于配置为 REPL_SYNC 的缓存,我们推荐你从其协议栈里删除 "
-"FC。"
+msgid "A JBoss Cache cluster configured for REPL_SYNC is a good example of an application that makes synchronous group RPC calls. If a channel is only used for a cache configured for REPL_SYNC, we recommend you remove FC from its protocol stack."
+msgstr "配置为 REPL_SYNC 的 JBoss Cache 群集是进行同步组 RPC 调用的应用程序的一个范例。如果某个频道只用于配置为 REPL_SYNC 的缓存,我们推荐你从其协议栈里删除 FC。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"And, of course, if your cluster only consists of two nodes, including FC in "
-"a TCP-based protocol stack is unnecessary. There is no group beyond the "
-"single peer-to-peer relationship, and TCP's internal flow control will "
-"handle that just fine."
-msgstr ""
-"当然,如果你的群集只由两个节点组成,在基于 TCP 的协议栈包含 FC 是不必要的。组"
-"不会超越单个点对点的关系,使用 TCP 的内部流量控制就可以了。"
+msgid "And, of course, if your cluster only consists of two nodes, including FC in a TCP-based protocol stack is unnecessary. There is no group beyond the single peer-to-peer relationship, and TCP's internal flow control will handle that just fine."
+msgstr "当然,如果你的群集只由两个节点组成,在基于 TCP 的协议栈包含 FC 是不必要的。组不会超越单个点对点的关系,使用 TCP 的内部流量控制就可以了。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Another case where FC may not be needed is for a channel used by a JBoss "
-"Cache configured for buddy replication and a single buddy. Such a channel "
-"will in many respects act like a two node cluster, where messages are only "
-"exchanged with one other node, the buddy. (There may be other messages "
-"related to data gravitation that go to all members, but in a properly "
-"engineered buddy replication use case these should be infrequent. But if you "
-"remove FC be sure to load test your application.)"
-msgstr ""
-"不需要 FC 的另外一个情况是配置了 buddy 复制且为单一 buddy 的 JBoss Cache 所使"
-"用的频道。这样的频道在许多方面就象一个两节点的群集,消息只在两者之间(亦即 "
-"buddy)交换。和数据 gravitation 相关的其他消息也有可能发往所有节点,但在正确"
-"设置的 Buddy 复制情景下,这应该是不频繁的。如果你删除了 FC,请确保加载并测试"
-"你的应用程序。)"
+msgid "Another case where FC may not be needed is for a channel used by a JBoss Cache configured for buddy replication and a single buddy. Such a channel will in many respects act like a two node cluster, where messages are only exchanged with one other node, the buddy. (There may be other messages related to data gravitation that go to all members, but in a properly engineered buddy replication use case these should be infrequent. But if you remove FC be sure to load test your application.)"
+msgstr "不需要 FC 的另外一个情况是配置了 buddy 复制且为单一 buddy 的 JBoss Cache 所使用的频道。这样的频道在许多方面就象一个两节点的群集,消息只在两者之间(亦即 buddy)交换。和数据 gravitation 相关的其他消息也有可能发往所有节点,但在正确设置的 Buddy 复制情景下,这应该是不频繁的。如果你删除了 FC,请确保加载并测试你的应用程序。)"
 
 #. Tag: title
 #, no-c-format
@@ -1779,15 +853,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"This protocol fragments messages larger than certain size. Unfragments at "
-"the receiver's side. It works for both unicast and multicast messages. It is "
-"configured in the FRAG2 sub-element under the JGroups Config element. Here "
-"is an example configuration."
-msgstr ""
-"这个协议将超过设定大小的消息分段,并在接收者端进行重组。它可用于单播和多播消"
-"息。它在 JGroups 的 Config 元素下的 FRAG2 子元素里进行配置。下面是一个配置示"
-"例。"
+msgid "This protocol fragments messages larger than certain size. Unfragments at the receiver's side. It works for both unicast and multicast messages. It is configured in the FRAG2 sub-element under the JGroups Config element. Here is an example configuration."
+msgstr "这个协议将超过设定大小的消息分段,并在接收者端进行重组。它可用于单播和多播消息。它在 JGroups 的 Config 元素下的 FRAG2 子元素里进行配置。下面是一个配置示例。"
 
 #. Tag: para
 #, no-c-format
@@ -1796,24 +863,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">frag_size</emphasis> specifies the max frag size in "
-"bytes. Messages larger than that are fragmented."
-msgstr ""
-"<emphasis role=\"bold\">frag_size</emphasis>  指定最大的分段大小(字节数)。"
-"大于这个值的消息将被分段。"
+msgid "<emphasis role=\"bold\">frag_size</emphasis> specifies the max frag size in bytes. Messages larger than that are fragmented."
+msgstr "<emphasis role=\"bold\">frag_size</emphasis>  指定最大的分段大小(字节数)。大于这个值的消息将被分段。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"TCP protocol already provides fragmentation but a fragmentation JGroups "
-"protocol is still needed if FC is used. The reason for this is that if you "
-"send a message larger than FC.max_bytes, FC protocol would block. So, "
-"frag_size within FRAG2 needs to be set to always be less than FC.max_bytes."
-msgstr ""
-"TCP 协议已经提供了分段功能但如果使用 FC,你仍然需要 JGroups 的分段协议。其原"
-"因是如果你发送了一个大于 FC.max_bytes 的消息,FC 协议将会阻塞。所以,FRAG2 里"
-"的 frag_size 总是需要设置为比 FC.max_bytes 小的值。"
+msgid "TCP protocol already provides fragmentation but a fragmentation JGroups protocol is still needed if FC is used. The reason for this is that if you send a message larger than FC.max_bytes, FC protocol would block. So, frag_size within FRAG2 needs to be set to always be less than FC.max_bytes."
+msgstr "TCP 协议已经提供了分段功能但如果使用 FC,你仍然需要 JGroups 的分段协议。其原因是如果你发送了一个大于 FC.max_bytes 的消息,FC 协议将会阻塞。所以,FRAG2 里的 frag_size 总是需要设置为比 FC.max_bytes 小的值。"
 
 #. Tag: title
 #, no-c-format
@@ -1822,17 +878,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The state transfer service transfers the state from an existing node (i.e., "
-"the cluster coordinator) to a newly joining node. It is configured in the "
-"<literal>pbcast.STATE_TRANSFER</literal> sub-element under the JGroups "
-"<literal>Config</literal> element. It does not have any configurable "
-"attribute. Here is an example configuration."
-msgstr ""
-"状态传输服务(state transfer service)把状态从一个现存的节点(就是群集控制"
-"点)传输到新加入的节点上。它可以在 JGroups <literal>Config</literal> 元素下"
-"的 <literal>pbcast.STATE_TRANSFER</literal> 子元素里配置。它没有任何可配置属"
-"性。下面是一个配置示例。"
+msgid "The state transfer service transfers the state from an existing node (i.e., the cluster coordinator) to a newly joining node. It is configured in the <literal>pbcast.STATE_TRANSFER</literal> sub-element under the JGroups <literal>Config</literal> element. It does not have any configurable attribute. Here is an example configuration."
+msgstr "状态传输服务(state transfer service)把状态从一个现存的节点(就是群集控制点)传输到新加入的节点上。它可以在 JGroups <literal>Config</literal> 元素下的 <literal>pbcast.STATE_TRANSFER</literal> 子元素里配置。它没有任何可配置属性。下面是一个配置示例。"
 
 #. Tag: title
 #, no-c-format
@@ -1841,66 +888,32 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"In a JGroups cluster, all nodes have to store all messages received for "
-"potential retransmission in case of a failure. However, if we store all "
-"messages forever, we will run out of memory. So, the distributed garbage "
-"collection service in JGroups periodically purges messages that have seen by "
-"all nodes from the memory in each node. The distributed garbage collection "
-"service is configured in the <literal>pbcast.STABLE</literal> sub-element "
-"under the JGroups <literal>Config</literal> element. Here is an example "
-"configuration."
-msgstr ""
-"在 JGroups 群集系统里,在失败的情况下,所有的节点都得保存所有接收到的信息,用"
-"于可能发生的重新传送。然而,如果我们一直保存这些信息,就会用光所有的内存。所"
-"以,JGroups 的分布式垃圾收集(distributed garbage collection )服务定期地从每"
-"个节点的内存里清理所有节点都已经看过的信息。我们在 JGroups <literal>Config</"
-"literal> 元素下的 <literal>pbcast.STABLE</literal> 子元素里配置分布式垃圾收集"
-"(distributed garbage collection )服务。下面是一个配置示例。"
+msgid "In a JGroups cluster, all nodes have to store all messages received for potential retransmission in case of a failure. However, if we store all messages forever, we will run out of memory. So, the distributed garbage collection service in JGroups periodically purges messages that have seen by all nodes from the memory in each node. The distributed garbage collection service is configured in the <literal>pbcast.STABLE</literal> sub-element under the JGroups <literal>Config</literal> element. Here is an example configuration."
+msgstr "在 JGroups 群集系统里,在失败的情况下,所有的节点都得保存所有接收到的信息,用于可能发生的重新传送。然而,如果我们一直保存这些信息,就会用光所有的内存。所以,JGroups 的分布式垃圾收集(distributed garbage collection )服务定期地从每个节点的内存里清理所有节点都已经看过的信息。我们在 JGroups <literal>Config</literal> 元素下的 <literal>pbcast.STABLE</literal> 子元素里配置分布式垃圾收集(distributed garbage collection )服务。下面是一个配置示例。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The configurable attributes in the <literal>pbcast.STABLE</literal> element "
-"are as follows."
+msgid "The configurable attributes in the <literal>pbcast.STABLE</literal> element are as follows."
 msgstr "下列是 <literal>pbcast.STABLE</literal> 元素里的可配置属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">desired_avg_gossip</emphasis> specifies intervals "
-"(in milliseconds) of garbage collection runs. Value <literal>0</literal> "
-"disables this service."
-msgstr ""
-"<emphasis role=\"bold\">desired_avg_gossip</emphasis> 指定垃圾收集(garbage "
-"collection)服务运行的时间间隔(毫秒数)。它如果为 0,这个服务将不会运行。"
+msgid "<emphasis role=\"bold\">desired_avg_gossip</emphasis> specifies intervals (in milliseconds) of garbage collection runs. Value <literal>0</literal> disables this service."
+msgstr "<emphasis role=\"bold\">desired_avg_gossip</emphasis> 指定垃圾收集(garbage collection)服务运行的时间间隔(毫秒数)。它如果为 0,这个服务将不会运行。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">max_bytes</emphasis> specifies the maximum number of "
-"bytes received before the cluster triggers a garbage collection run. Value "
-"<literal>0</literal> disables this service."
-msgstr ""
-"<emphasis role=\"bold\">max_bytes</emphasis> 指定了在群集系统触发垃圾收集"
-"(garbage collection)服务之前,能接收的最多字节数。它如果为 0,这个服务将不"
-"会运行。"
+msgid "<emphasis role=\"bold\">max_bytes</emphasis> specifies the maximum number of bytes received before the cluster triggers a garbage collection run. Value <literal>0</literal> disables this service."
+msgstr "<emphasis role=\"bold\">max_bytes</emphasis> 指定了在群集系统触发垃圾收集(garbage collection)服务之前,能接收的最多字节数。它如果为 0,这个服务将不会运行。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">stability_delay</emphasis> specifies delay before we "
-"send STABILITY msg (give others a change to send first). If used together "
-"with max_bytes, this attribute should be set to a small number."
-msgstr ""
-"<emphasis role=\"bold\">stability_delay</emphasis> 指定在发送 STABILITY 消息"
-"之前的延迟时间。如果和 max_bytes 一起使用,这个属性应该设置为比它更小的值。"
+msgid "<emphasis role=\"bold\">stability_delay</emphasis> specifies delay before we send STABILITY msg (give others a change to send first). If used together with max_bytes, this attribute should be set to a small number."
+msgstr "<emphasis role=\"bold\">stability_delay</emphasis> 指定在发送 STABILITY 消息之前的延迟时间。如果和 max_bytes 一起使用,这个属性应该设置为比它更小的值。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Set the <literal>max_bytes</literal> attribute when you have a high traffic "
-"cluster."
+msgid "Set the <literal>max_bytes</literal> attribute when you have a high traffic cluster."
 msgstr "当你有一个大流量的群集系统时,设置 <literal>max_bytes</literal> 属性。"
 
 #. Tag: title
@@ -1910,64 +923,28 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"When a network error occurs, the cluster might be partitioned into several "
-"different partitions. JGroups has a MERGE service that allows the "
-"coordinators in partitions to communicate with each other and form a single "
-"cluster back again. The flow control service is configured in the "
-"<literal>MERGE2</literal> sub-element under the JGroups <literal>Config</"
-"literal> element. Here is an example configuration."
-msgstr ""
-"当有网络错误发生时,群集系统可能分为己个不同的子分区(partitions)。JGroups "
-"有一个 MERGE 服务,它允许分区里的控制点(coordinators)相互通信且再次组成单一"
-"群集系统。流量控制服务可以在 JGroups <literal>Config</literal> 元素下的 "
-"<literal>MERGE2</literal> 子元素里配置。下面是一个配置示例。"
+msgid "When a network error occurs, the cluster might be partitioned into several different partitions. JGroups has a MERGE service that allows the coordinators in partitions to communicate with each other and form a single cluster back again. The flow control service is configured in the <literal>MERGE2</literal> sub-element under the JGroups <literal>Config</literal> element. Here is an example configuration."
+msgstr "当有网络错误发生时,群集系统可能分为己个不同的子分区(partitions)。JGroups 有一个 MERGE 服务,它允许分区里的控制点(coordinators)相互通信且再次组成单一群集系统。流量控制服务可以在 JGroups <literal>Config</literal> 元素下的 <literal>MERGE2</literal> 子元素里配置。下面是一个配置示例。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">max_interval</emphasis> specifies the maximum number "
-"of milliseconds to send out a MERGE message."
-msgstr ""
-"<emphasis role=\"bold\">max_interval</emphasis> 指定发送 MERGE 信息的最大时间"
-"间隔(毫秒数)。"
+msgid "<emphasis role=\"bold\">max_interval</emphasis> specifies the maximum number of milliseconds to send out a MERGE message."
+msgstr "<emphasis role=\"bold\">max_interval</emphasis> 指定发送 MERGE 信息的最大时间间隔(毫秒数)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"bold\">min_interval</emphasis> specifies the minimum number "
-"of milliseconds to send out a MERGE message."
-msgstr ""
-"<emphasis role=\"bold\">min_interval</emphasis> 指定发送 MERGE 信息的最小时间"
-"间隔(毫秒数)。"
+msgid "<emphasis role=\"bold\">min_interval</emphasis> specifies the minimum number of milliseconds to send out a MERGE message."
+msgstr "<emphasis role=\"bold\">min_interval</emphasis> 指定发送 MERGE 信息的最小时间间隔(毫秒数)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"JGroups chooses a random value between <literal>min_interval</literal> and "
-"<literal>max_interval</literal> to send out the MERGE message."
-msgstr ""
-"JGroups 在 <literal>min_interval</literal> 之间 <literal>max_interval</"
-"literal> 选取一个随机值来发送 MERGE 信息。"
+msgid "JGroups chooses a random value between <literal>min_interval</literal> and <literal>max_interval</literal> to send out the MERGE message."
+msgstr "JGroups 在 <literal>min_interval</literal> 之间 <literal>max_interval</literal> 选取一个随机值来发送 MERGE 信息。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The cluster states are not merged in a merger. This has to be done by the "
-"application. If <literal>MERGE2</literal> is used in conjunction with "
-"TCPPING, the <literal>initial_hosts</literal> attribute must contain all the "
-"nodes that could potentially be merged back, in order for the merge process "
-"to work properly. Otherwise, the merge process would not merge all the nodes "
-"even though shunning is disabled. Alternatively use MPING, which is commonly "
-"used with TCP to provide multicast member discovery capabilities, instead of "
-"TCPPING to avoid having to specify all the nodes."
-msgstr ""
-"群集状态不会在 Merger 里合并,这必须由应用程序来完成。如果 <literal>MERGE2</"
-"literal> 和 TCPPING 一起使用,为了使合并过程正常进行,"
-"<literal>initial_hosts</literal> 属性必须包含所有可能被合并的节点。否则,合并"
-"过程将不会合并所有的节点,即使是禁用了 shunning。如果我们使用 MPING(通常和 "
-"TCP 一起使用)而不是 TCPPING来提供多播成员发现能力,那就可以避免指定所有的节"
-"点。"
+msgid "The cluster states are not merged in a merger. This has to be done by the application. If <literal>MERGE2</literal> is used in conjunction with TCPPING, the <literal>initial_hosts</literal> attribute must contain all the nodes that could potentially be merged back, in order for the merge process to work properly. Otherwise, the merge process would not merge all the nodes even though shunning is disabled. Alternatively use MPING, which is commonly used with TCP to provide multicast member discovery capabilities, instead of TCPPING to avoid having to specify all the nodes."
+msgstr "群集状态不会在 Merger 里合并,这必须由应用程序来完成。如果 <literal>MERGE2</literal> 和 TCPPING 一起使用,为了使合并过程正常进行,<literal>initial_hosts</literal> 属性必须包含所有可能被合并的节点。否则,合并过程将不会合并所有的节点,即使是禁用了 shunning。如果我们使用 MPING(通常和 TCP 一起使用)而不是 TCPPING来提供多播成员发现能力,那就可以避免指定所有的节点。"
 
 #. Tag: title
 #, no-c-format
@@ -1976,119 +953,53 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"In the Transport Protocols section above, we briefly touched on how the "
-"interface to which JGroups will bind sockets is configured. Let's get into "
-"this topic in more depth:"
-msgstr ""
-"在上面的“传输协议”章节里,我们简短地介绍了如何配置 JGroups 把套接字绑定到哪个"
-"接口。让我们进一步深入讨论这个主题:"
+msgid "In the Transport Protocols section above, we briefly touched on how the interface to which JGroups will bind sockets is configured. Let's get into this topic in more depth:"
+msgstr "在上面的“传输协议”章节里,我们简短地介绍了如何配置 JGroups 把套接字绑定到哪个接口。让我们进一步深入讨论这个主题:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"First, it's important to understand that the value set in any bind_addr "
-"element in an XML configuration file will be ignored by JGroups if it finds "
-"that system property jgroups.bind_addr (or a deprecated earlier name for the "
-"same thing, <literal>bind.address</literal>) has been set. The system "
-"property trumps XML. If JBoss AS is started with the -b (a.k.a. --host) "
-"switch, the AS will set <literal>jgroups.bind_addr</literal> to the "
-"specified value."
-msgstr ""
-"首先,理解这一点很重要:如果系统属性 jgroups.bind_addr(早期版本里称为 "
-"<literal>bind.address</literal>)已经被设置,在 XML 配置文件里的任何 "
-"bind_addr 元素里设置的值将被 JGroups 所忽略。系统属性优先于 XML 设置。如果 "
-"JBoss AS 启动时使用 -b(也就是 --hos)开关,AS 将设置 <literal>jgroups."
-"bind_addr</literal> 为指定的值。"
+msgid "First, it's important to understand that the value set in any bind_addr element in an XML configuration file will be ignored by JGroups if it finds that system property jgroups.bind_addr (or a deprecated earlier name for the same thing, <literal>bind.address</literal>) has been set. The system property trumps XML. If JBoss AS is started with the -b (a.k.a. --host) switch, the AS will set <literal>jgroups.bind_addr</literal> to the specified value."
+msgstr "首先,理解这一点很重要:如果系统属性 jgroups.bind_addr(早期版本里称为 <literal>bind.address</literal>)已经被设置,在 XML 配置文件里的任何 bind_addr 元素里设置的值将被 JGroups 所忽略。系统属性优先于 XML 设置。如果 JBoss AS 启动时使用 -b(也就是 --hos)开关,AS 将设置 <literal>jgroups.bind_addr</literal> 为指定的值。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Beginning with Enterprise Application Platform 4.2.0, for security reasons "
-"the Enterprise Application Platform will bind most services to localhost if -"
-"b is not set. The effect of this is that in most cases users are going to be "
-"setting -b and thus jgroups.bind_addr is going to be set and any XML setting "
-"will be ignored."
-msgstr ""
-"从 AS 4.2.0 开始,处于安全原因,如果没有设置 -b 选项,AS 将把大多数服务绑定到"
-"本地主机。因此在大多数情况下,用户会设置 -b,所以 jgroups.bind_addr 将被设"
-"置,相关 XML 配置将被忽略。"
+#, no-c-format
+msgid "Beginning with Enterprise Application Platform 4.2.0, for security reasons the Enterprise Application Platform will bind most services to localhost if -b is not set. The effect of this is that in most cases users are going to be setting -b and thus jgroups.bind_addr is going to be set and any XML setting will be ignored."
+msgstr "从企业级应用程序平台 4.2.0 开始,处于安全原因,如果没有设置 -b 选项,AS 将把大多数服务绑定到本地主机。因此在大多数情况下,用户会设置 -b,所以 jgroups.bind_addr 将被设置,相关 XML 配置将被忽略。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"So, what are <emphasis>best practices</emphasis> for managing how JGroups "
-"binds to interfaces?"
-msgstr ""
-"所以,管理 JGroups  绑定到什么接口的<emphasis>最佳实践</emphasis>是什么?"
+msgid "So, what are <emphasis>best practices</emphasis> for managing how JGroups binds to interfaces?"
+msgstr "所以,管理 JGroups  绑定到什么接口的<emphasis>最佳实践</emphasis>是什么?"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Binding JGroups to the same interface as other services. Simple, just use -"
-"b: <screen>./run.sh -b 192.168.1.100 -c all</screen>"
-msgstr ""
-"把 JGroups 和其他服务一样绑定到相同的接口上。这很简单,只要使用 -b 选项:"
+#, no-c-format
+msgid "Binding JGroups to the same interface as other services. Simple, just use -b: <screen>./run.sh -b 192.168.1.100 -c all</screen>"
+msgstr "把 JGroups 和其他服务一样绑定到相同的接口上。这很简单,只要使用 -b 选项:<screen>./run.sh -b 192.168.1.100 -c all</screen>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Binding services (e.g., JBoss Web) to one interface, but use a different one "
-"for JGroups: <screen>./run.sh -b 10.0.0.100 -Djgroups."
-"bind_addr=192.168.1.100 -c all</screen> Specifically setting the system "
-"property overrides the -b value. This is a common usage pattern; put client "
-"traffic on one network, with intra-cluster traffic on another."
-msgstr ""
-"把其他服务(如 JBoss Web)绑定到一个接口,但对于 JGroups 使用不同的接口:"
-"<screen>./run.sh -b 10.0.0.100 -Djgroups.bind_addr=192.168.1.100 -c all</"
-"screen> 设置系统属性来覆盖 -b 指定的值。这是常见的用法:把客户端的通信放在一"
-"个网络里,而把群集内部通信放到另外一个网络里。"
+msgid "Binding services (e.g., JBoss Web) to one interface, but use a different one for JGroups: <screen>./run.sh -b 10.0.0.100 -Djgroups.bind_addr=192.168.1.100 -c all</screen> Specifically setting the system property overrides the -b value. This is a common usage pattern; put client traffic on one network, with intra-cluster traffic on another."
+msgstr "把其他服务(如 JBoss Web)绑定到一个接口,但对于 JGroups 使用不同的接口:<screen>./run.sh -b 10.0.0.100 -Djgroups.bind_addr=192.168.1.100 -c all</screen> 设置系统属性来覆盖 -b 指定的值。这是常见的用法:把客户端的通信放在一个网络里,而把群集内部通信放到另外一个网络里。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Binding services (e.g., JBoss Web) to all interfaces. This can be done like "
-"this: <screen>./run.sh -b 0.0.0.0 -c all</screen> However, doing this will "
-"not cause JGroups to bind to all interfaces! Instead , JGroups will bind to "
-"the machine's default interface. See the Transport Protocols section for how "
-"to tell JGroups to receive or send on all interfaces, if that is what you "
-"really want."
-msgstr ""
-"把服务(如 JBoss Web)绑定到所有的接口。可以这样实现:<screen>./run.sh -b "
-"0.0.0.0 -c all</screen> 然而,这不会使 JGroups 绑定到所有接口!相反,JGroups "
-"将绑定到主机的缺省接口。关于如何设置 JGroups 在所有接口进行接收或发送,请参"
-"考“传输协议”章节。"
+msgid "Binding services (e.g., JBoss Web) to all interfaces. This can be done like this: <screen>./run.sh -b 0.0.0.0 -c all</screen> However, doing this will not cause JGroups to bind to all interfaces! Instead , JGroups will bind to the machine's default interface. See the Transport Protocols section for how to tell JGroups to receive or send on all interfaces, if that is what you really want."
+msgstr "把服务(如 JBoss Web)绑定到所有的接口。可以这样实现:<screen>./run.sh -b 0.0.0.0 -c all</screen> 然而,这不会使 JGroups 绑定到所有接口!相反,JGroups 将绑定到主机的缺省接口。关于如何设置 JGroups 在所有接口进行接收或发送,请参考“传输协议”章节。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Binding services (e.g., JBoss Web) to all interfaces, but specify the "
-"JGroups interface: <screen>./run.sh -b 0.0.0.0 -Djgroups."
-"bind_addr=192.168.1.100 -c all</screen> Again, specifically setting the "
-"system property overrides the -b value."
-msgstr ""
-"把服务(如 JBoss Web)绑定到所有接口,但指定 JGroups 接口:<screen>./run.sh -"
-"b 0.0.0.0 -Djgroups.bind_addr=192.168.1.100 -c all</screen> 这里再次设置了系"
-"统属性来覆盖 -b 选项的值。"
+msgid "Binding services (e.g., JBoss Web) to all interfaces, but specify the JGroups interface: <screen>./run.sh -b 0.0.0.0 -Djgroups.bind_addr=192.168.1.100 -c all</screen> Again, specifically setting the system property overrides the -b value."
+msgstr "把服务(如 JBoss Web)绑定到所有接口,但指定 JGroups 接口:<screen>./run.sh -b 0.0.0.0 -Djgroups.bind_addr=192.168.1.100 -c all</screen> 这里再次设置了系统属性来覆盖 -b 选项的值。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Using different interfaces for different channels: <screen>./run.sh -b "
-"10.0.0.100 -Djgroups.ignore.bind_addr=true -c all</screen>"
-msgstr "./run.sh -b 10.0.0.100 -Djgroups.ignore.bind_addr=true -c all"
+#, no-c-format
+msgid "Using different interfaces for different channels: <screen>./run.sh -b 10.0.0.100 -Djgroups.ignore.bind_addr=true -c all</screen>"
+msgstr "对于不同的频道使用不同的接口:<screen>./run.sh -b 10.0.0.100 -Djgroups.ignore.bind_addr=true -c all</screen>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"This setting tells JGroups to ignore the <literal>jgroups.bind_addr</"
-"literal> system property, and instead use whatever is specfied in XML. You "
-"would need to edit the various XML configuration files to set the "
-"<literal>bind_addr</literal> to the desired interfaces."
-msgstr ""
-"这个设置让 JGroups 忽略 <literal>jgroups.bind_addr</literal> 系统属性,而使"
-"用 XML 里指定的值。你需要比编辑 XML 配置文件来把 <literal>bind_addr</"
-"literal> 设置为所需的接口。"
+msgid "This setting tells JGroups to ignore the <literal>jgroups.bind_addr</literal> system property, and instead use whatever is specfied in XML. You would need to edit the various XML configuration files to set the <literal>bind_addr</literal> to the desired interfaces."
+msgstr "这个设置让 JGroups 忽略 <literal>jgroups.bind_addr</literal> 系统属性,而使用 XML 里指定的值。你需要比编辑 XML 配置文件来把 <literal>bind_addr</literal> 设置为所需的接口。"
 
 #. Tag: title
 #, no-c-format
@@ -2096,88 +1007,39 @@
 msgstr "隔离 JGroups 频道"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Within JBoss Enterprise Application Platform, there are a number of services "
-"that independently create JGroups channels -- 3 different JBoss Cache "
-"services (used for HttpSession replication, EJB3 SFSB replication and EJB3 "
-"entity replication) along with the general purpose clustering service called "
-"HAPartition that underlies most other JBossHA services."
-msgstr ""
-"在 JBoss AS 里有许多独立地创建 JGroups 频道的服务 - 3 个不同的 JBoss Cache 服"
-"务(用于 HTTP 会话复制、EJB3 SFSB 复制和 EJB3 entity 复制)以及大多数 "
-"JBossHA 服务里底层的通用群集服务 HAPartition。"
+#, no-c-format
+msgid "Within JBoss Enterprise Application Platform, there are a number of services that independently create JGroups channels -- 3 different JBoss Cache services (used for HttpSession replication, EJB3 SFSB replication and EJB3 entity replication) along with the general purpose clustering service called HAPartition that underlies most other JBossHA services."
+msgstr "在 JBoss 企业级应用程序平台里有许多独立地创建 JGroups 频道的服务 - 3 个不同的 JBoss Cache 服务(用于 HTTP 会话复制、EJB3 SFSB 复制和 EJB3 entity 复制)以及大多数 JBossHA 服务里底层的通用群集服务 HAPartition。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"It is critical that these channels only communicate with their intended "
-"peers; not with the channels used by other services and not with channels "
-"for the same service opened on machines not meant to be part of the group. "
-"Nodes improperly communicating with each other is one of the most common "
-"issues users have with JBoss AS clustering."
-msgstr ""
-"这些频道只和所需对点进行通信是很重要的,不要和其他服务使用的频道 以及用于不是"
-"组成员的主机上打开的相同服务的频道通信。节点不正确地和其他节点进行通信是 "
-"JBoss AS 群集里最常见的问题之一。"
+msgid "It is critical that these channels only communicate with their intended peers; not with the channels used by other services and not with channels for the same service opened on machines not meant to be part of the group. Nodes improperly communicating with each other is one of the most common issues users have with JBoss AS clustering."
+msgstr "这些频道只和所需对点进行通信是很重要的,不要和其他服务使用的频道 以及用于不是组成员的主机上打开的相同服务的频道通信。节点不正确地和其他节点进行通信是 JBoss AS 群集里最常见的问题之一。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Whom a JGroups channel will communicate with is defined by its group name, "
-"multicast address, and multicast port, so isolating JGroups channels comes "
-"down to ensuring different channels use different values for the group name, "
-"multicast address and multicast port."
-msgstr ""
-"JGroups 的组名、多播地址和多播端口定义了它将通信的频道,所以隔离 JGroups 频道"
-"确保了不同的频道根据不同的组名、多播地址和多播端口使用不同的值。"
+msgid "Whom a JGroups channel will communicate with is defined by its group name, multicast address, and multicast port, so isolating JGroups channels comes down to ensuring different channels use different values for the group name, multicast address and multicast port."
+msgstr "JGroups 的组名、多播地址和多播端口定义了它将通信的频道,所以隔离 JGroups 频道确保了不同的频道根据不同的组名、多播地址和多播端口使用不同的值。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"To isolate JGroups channels for different services on the same set of AS "
-"instances from each other, you MUST change the group name and the multicast "
-"port. In other words, each channel must have its own set of values."
-msgstr ""
-"要为相同 AS 实例集合上的不同服务隔离 JGroups 频道,你必须修改组名和多播端口。"
-"换句话说,每个频道必须具有一系列自己的值。"
+msgid "To isolate JGroups channels for different services on the same set of AS instances from each other, you MUST change the group name and the multicast port. In other words, each channel must have its own set of values."
+msgstr "要为相同 AS 实例集合上的不同服务隔离 JGroups 频道,你必须修改组名和多播端口。换句话说,每个频道必须具有一系列自己的值。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"For example, say we have a production cluster of 3 machines, each of which "
-"has an HAPartition deployed along with a JBoss Cache used for web session "
-"clustering. The HAPartition channels should not communicate with the JBoss "
-"Cache channels. They should use a different group name and multicast port. "
-"They can use the same multicast address, although they don't need to."
-msgstr ""
-"例如,假设我们有一个具有 3 台机器的群集,每个节点都有部署了一个 HAPartition "
-"以及一个用于 Web 会话群集的 JBoss Cache。HAPartition 频道不应该和 JBoss "
-"Cache 频道通信。它们应该使用不同的组名和多播端口。它们可以使用相同的多播地"
-"址,虽然它们并不需要这样做。"
+msgid "For example, say we have a production cluster of 3 machines, each of which has an HAPartition deployed along with a JBoss Cache used for web session clustering. The HAPartition channels should not communicate with the JBoss Cache channels. They should use a different group name and multicast port. They can use the same multicast address, although they don't need to."
+msgstr "例如,假设我们有一个具有 3 台机器的群集,每个节点都有部署了一个 HAPartition 以及一个用于 Web 会话群集的 JBoss Cache。HAPartition 频道不应该和 JBoss Cache 频道通信。它们应该使用不同的组名和多播端口。它们可以使用相同的多播地址,虽然它们并不需要这样做。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"To isolate JGroups channels for the same service from other instances of the "
-"service on the network, you MUST change ALL three values. Each channel must "
-"have its own group name, multicast address, and multicast port."
-msgstr ""
-"要隔离网络里其他实例上的相同服务的 JGroups 频道,这三个值你都必须修改。每个频"
-"道必须具有自己的组名、多播地址和端口。"
+msgid "To isolate JGroups channels for the same service from other instances of the service on the network, you MUST change ALL three values. Each channel must have its own group name, multicast address, and multicast port."
+msgstr "要隔离网络里其他实例上的相同服务的 JGroups 频道,这三个值你都必须修改。每个频道必须具有自己的组名、多播地址和端口。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"For example, say we have a production cluster of 3 machines, each of which "
-"has an HAPartition deployed. On the same network there is also a QA cluster "
-"of 3 machines, which also has an HAPartition deployed. The HAPartition group "
-"name, multicast address, and multicast port for the production machines must "
-"be different from those used on the QA machines."
-msgstr ""
-"例如,假设我们有一个具有 3 个节点的产品群集,每个都部署了一个 HAPartition。在"
-"相同的网络上,也有一个具有 3 个节点的 QA 群集,它们也部署了 HAPartition。产品"
-"群集机器的 HAPartition 的组名、多播地址和多播端口必须和 QA 群集机器的不同。"
+msgid "For example, say we have a production cluster of 3 machines, each of which has an HAPartition deployed. On the same network there is also a QA cluster of 3 machines, which also has an HAPartition deployed. The HAPartition group name, multicast address, and multicast port for the production machines must be different from those used on the QA machines."
+msgstr "例如,假设我们有一个具有 3 个节点的产品群集,每个都部署了一个 HAPartition。在相同的网络上,也有一个具有 3 个节点的 QA 群集,它们也部署了 HAPartition。产品群集机器的 HAPartition 的组名、多播地址和多播端口必须和 QA 群集机器的不同。"
 
 #. Tag: title
 #, no-c-format
@@ -2186,36 +1048,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The group name for a JGroups channel is configured via the service that "
-"starts the channel. Unfortunately, different services use different "
-"attribute names for configuring this. For HAPartition and related services "
-"configured in the deploy/cluster-service.xml file, this is configured via a "
-"PartitionName attribute. For JBoss Cache services, the name of the attribute "
-"is ClusterName."
-msgstr ""
-"JGroups 频道的组名是通过启动频道的服务来配置的。可惜的是,不同的服务使用不同"
-"的属性名来进行配置。对于 HAPartition 和相关的在 deploy/cluster-service.xml 里"
-"配置的服务来说,其组名是通过 PartitionName 属性配置的。但对于 JBoss Cache 服"
-"务而言,配置属性是 ClusterName。"
+msgid "The group name for a JGroups channel is configured via the service that starts the channel. Unfortunately, different services use different attribute names for configuring this. For HAPartition and related services configured in the deploy/cluster-service.xml file, this is configured via a PartitionName attribute. For JBoss Cache services, the name of the attribute is ClusterName."
+msgstr "JGroups 频道的组名是通过启动频道的服务来配置的。可惜的是,不同的服务使用不同的属性名来进行配置。对于 HAPartition 和相关的在 deploy/cluster-service.xml 里配置的服务来说,其组名是通过 PartitionName 属性配置的。但对于 JBoss Cache 服务而言,配置属性是 ClusterName。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"For the HAPartition and all the standard JBoss Cache services, we make it "
-"easy for you to create unique groups names simply by using the -g (a.k.a. –"
-"partition) switch when starting JBoss: <screen>./run.sh -g QAPartition -b "
-"192.168.1.100 -c all</screen> This switch sets the jboss.partition.name "
-"system property, which is used as a component in the configuration of the "
-"group name in all the standard clustering configuration files. For example, "
-"<screen>&lt;attribute name=\"ClusterName\"&gt;Tomcat-${jboss.partition.name:"
-"Cluster}&lt;/attribute&gt;</screen>"
-msgstr ""
-"从 JBoss AS 4.0.4 开始,对于 HAPartition 和其他所有标准的 JBoss Cache 服务,"
-"我们都使你能够轻易地通过在启动 JBoss 时设置 -g(也就是 -partion)选项创建唯一"
-"的组名。<screen>./run.sh -g QAPartition -b 192.168.1.100 -c all</screen> 这个"
-"选项设置了 jboss.partition.name system 属性,这个属性被用作所有标准群集配置文"
-"件里的组名配置的一个组件。例如:"
+#, no-c-format
+msgid "For the HAPartition and all the standard JBoss Cache services, we make it easy for you to create unique groups names simply by using the -g (a.k.a. –partition) switch when starting JBoss: <screen>./run.sh -g QAPartition -b 192.168.1.100 -c all</screen> This switch sets the jboss.partition.name system property, which is used as a component in the configuration of the group name in all the standard clustering configuration files. For example, <screen>&lt;attribute name=\"ClusterName\"&gt;Tomcat-${jboss.partition.name:Cluster}&lt;/attribute&gt;</screen>"
+msgstr "从 JBoss AS 4.0.4 开始,对于 HAPartition 和其他所有标准的 JBoss Cache 服务,我们都使你能够轻易地通过在启动 JBoss 时设置 -g(也就是 -partion)选项创建唯一的组名。<screen>./run.sh -g QAPartition -b 192.168.1.100 -c all</screen> 这个选项设置了 jboss.partition.name system 属性,这个属性被用作所有标准群集配置文件里的组名配置的一个组件。例如:<screen>&lt;attribute name=\"ClusterName\"&gt;Tomcat-${jboss.partition.name:Cluster}&lt;/attribute&gt;</screen>"
 
 #. Tag: title
 #, no-c-format
@@ -2223,71 +1062,34 @@
 msgstr "修改多播地址和端口"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The -u (a.k.a. --udp) command line switch may be used to control the "
-"multicast address used by the JGroups channels opened by all standard AS "
-"services. <screen>/run.sh -u 230.1.2.3 -g QAPartition -b 192.168.1.100 -c "
-"all</screen> This switch sets the jboss.partition.udpGroup system property, "
-"which you can see referenced in all of the standard protocol stack configs "
-"in JBoss Enterprise Application Platform:"
-msgstr ""
-"我们可以用 -u(也就是 --udp)开关来控制所有标准 AS 服务打开的 JGroups 频道使"
-"用多播地址。<screen><![CDATA[/run.sh -u 230.1.2.3 -g QAPartition -b "
-"192.168.1.100 -c all]]></screen> 这个开关设置了 jboss.partition.udpGroup 系统"
-"属性,你会看到在 JBoss AS 里所有标准协议栈配置都引用了它:"
+#, no-c-format
+msgid "The -u (a.k.a. --udp) command line switch may be used to control the multicast address used by the JGroups channels opened by all standard AS services. <screen>/run.sh -u 230.1.2.3 -g QAPartition -b 192.168.1.100 -c all</screen> This switch sets the jboss.partition.udpGroup system property, which you can see referenced in all of the standard protocol stack configs in JBoss Enterprise Application Platform:"
+msgstr "我们可以用 -u(也就是 --udp)开关来控制所有标准 AS 服务打开的 JGroups 频道使用多播地址。<screen>/run.sh -u 230.1.2.3 -g QAPartition -b 192.168.1.100 -c all</screen> 这个开关设置了 jboss.partition.udpGroup 系统属性,你会看到在 JBoss 企业级应用程序平台里所有标准协议栈配置都引用了它:"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Unfortunately, setting the multicast ports is not so simple. As described "
-"above, by default there are four separate JGroups channels in the standard "
-"JBoss Enterprise Application Platform all configuration, and each should be "
-"given a unique port. There are no command line switches to set these, but "
-"the standard configuration files do use system properties to set them. So, "
-"they can be configured from the command line by using -D. For example,"
-msgstr ""
-"可惜的是,设置多播端口并非如此简单。如上所述,标准 JBoss AS 的 all 配置在缺省"
-"情况下有 4 个独立的 JGroups 频道,每个都应该具有独立的端口。没有命令行选项可"
-"以设置这些端口,但标准的配置文件可以使用系统属性来进行设置。所以,它们可以通"
-"过命令行选项 -D 来配置。例如,"
+#, no-c-format
+msgid "Unfortunately, setting the multicast ports is not so simple. As described above, by default there are four separate JGroups channels in the standard JBoss Enterprise Application Platform all configuration, and each should be given a unique port. There are no command line switches to set these, but the standard configuration files do use system properties to set them. So, they can be configured from the command line by using -D. For example,"
+msgstr "可惜的是,设置多播端口并非如此简单。如上所述,标准 JBoss 企业级应用程序平台的 all 配置在缺省情况下有 4 个独立的 JGroups 频道,每个都应该具有独立的端口。没有命令行选项可以设置这些端口,但标准的配置文件可以使用系统属性来进行设置。所以,它们可以通过命令行选项 -D 来配置。例如,"
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<emphasis>Why isn't it sufficient to change the group name?</emphasis>"
-msgstr "为什么只修改组名是不够的?"
+msgstr "<emphasis>为什么只修改组名是不够的?</emphasis>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If channels with different group names share the same multicast address and "
-"port, the lower level JGroups protocols in each channel will see, process "
-"and eventually discard messages intended for the other group. This will at a "
-"minimum hurt performance and can lead to anomalous behavior."
-msgstr ""
-"如果具有不同组名的频道共享相同的多播地址和端口,每个频道里更底层的 JGroups 协"
-"议将查看、处理并最终丢弃送往其他组的消息。这将最小限度地影响性能且会导致反常"
-"的行为。"
+msgid "If channels with different group names share the same multicast address and port, the lower level JGroups protocols in each channel will see, process and eventually discard messages intended for the other group. This will at a minimum hurt performance and can lead to anomalous behavior."
+msgstr "如果具有不同组名的频道共享相同的多播地址和端口,每个频道里更底层的 JGroups 协议将查看、处理并最终丢弃送往其他组的消息。这将最小限度地影响性能且会导致反常的行为。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<emphasis>Why do I need to change the multicast port if I change the address?"
-"</emphasis>"
-msgstr "如果修改了地址,我们为什么还需要修改多播端口?"
+#, no-c-format
+msgid "<emphasis>Why do I need to change the multicast port if I change the address?</emphasis>"
+msgstr "<emphasis>如果修改了地址,我们为什么还需要修改多播端口?</emphasis>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"It should be sufficient to just change the address, but there is a problem "
-"on several operating systems whereby packets addressed to a particular "
-"multicast port are delivered to all listeners on that port, regardless of "
-"the multicast address they are listening on. So the recommendation is to "
-"change both the address and the port."
-msgstr ""
-"修改地址应该已经足够了,但在有些操作系统里这会出现问题,因为发送到特定多播端"
-"口的数据包将被递送给该端口的所有 listener,而不管它们所侦听的多播地址。所以我"
-"们推荐你既修改地址也修改端口。"
+msgid "It should be sufficient to just change the address, but there is a problem on several operating systems whereby packets addressed to a particular multicast port are delivered to all listeners on that port, regardless of the multicast address they are listening on. So the recommendation is to change both the address and the port."
+msgstr "修改地址应该已经足够了,但在有些操作系统里这会出现问题,因为发送到特定多播端口的数据包将被递送给该端口的所有 listener,而不管它们所侦听的多播地址。所以我们推荐你既修改地址也修改端口。"
 
 #. Tag: title
 #, no-c-format
@@ -2295,65 +1097,29 @@
 msgstr "JGroups 的故障解除"
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<emphasis>Nodes do not form a cluster</emphasis>"
-msgstr "节点没有组成群集"
+msgstr "<emphasis>节点没有组成群集</emphasis>"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Make sure your machine is set up correctly for IP multicast. There are 2 "
-"test programs that can be used to detect this: McastReceiverTest and "
-"McastSenderTest. Go to the <literal>$JBOSS_HOME/server/all/lib</literal> "
-"directory and start McastReceiverTest, for example: <screen>java -cp jgroups."
-"jar org.jgroups.tests.McastReceiverTest -mcast_addr 224.10.10.10 -port 5555 "
-"</screen>"
-msgstr ""
-"请确保你的主机正确设置 IP 多点传送。你可以使用两个测试程序来进行检测:"
-"McastReceiverTest 和 McastSenderTest。进入 <literal>$JBOSS_HOME/server/all/"
-"lib</literal> 目录并启动 McastReceiverTest,如:"
+#, no-c-format
+msgid "Make sure your machine is set up correctly for IP multicast. There are 2 test programs that can be used to detect this: McastReceiverTest and McastSenderTest. Go to the <literal>$JBOSS_HOME/server/all/lib</literal> directory and start McastReceiverTest, for example: <screen>java -cp jgroups.jar org.jgroups.tests.McastReceiverTest -mcast_addr 224.10.10.10 -port 5555 </screen>"
+msgstr "请确保你的主机正确设置 IP 多点传送。你可以使用两个测试程序来进行检测:McastReceiverTest 和 McastSenderTest。进入 <literal>$JBOSS_HOME/server/all/lib</literal> 目录并启动 McastReceiverTest,如:<screen>java -cp jgroups.jar org.jgroups.tests.McastReceiverTest -mcast_addr 224.10.10.10 -port 5555 </screen>"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Then in another window start <literal>McastSenderTest</literal>: "
-"<screen>java -cp jgroups.jar org.jgroups.tests.McastSenderTest -mcast_addr "
-"224.10.10.10 -port 5555</screen>"
-msgstr ""
-"java -cp jgroups.jar org.jgroups.tests.McastSenderTest -mcast_addr "
-"224.10.10.10 -port 5555"
+#, no-c-format
+msgid "Then in another window start <literal>McastSenderTest</literal>: <screen>java -cp jgroups.jar org.jgroups.tests.McastSenderTest -mcast_addr 224.10.10.10 -port 5555</screen>"
+msgstr "然后在另外一个窗口启动 <literal>McastSenderTest</literal>: <screen>java -cp jgroups.jar org.jgroups.tests.McastSenderTest -mcast_addr 224.10.10.10 -port 5555</screen>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If you want to bind to a specific network interface card (NIC), use "
-"<literal>-bind_addr 192.168.0.2</literal>, where 192.168.0.2 is the IP "
-"address of the NIC to which you want to bind. Use this parameter in both the "
-"sender and the receiver."
-msgstr ""
-"如果你想绑定到特殊的网络接口卡(NIC),你可以使用 <literal>-bind_addr "
-"192.168.0.2</literal>,这里的 192.168.0.2 是你想绑定的网卡的地址。在发送者和"
-"接收者里都使用这个参数。"
+msgid "If you want to bind to a specific network interface card (NIC), use <literal>-bind_addr 192.168.0.2</literal>, where 192.168.0.2 is the IP address of the NIC to which you want to bind. Use this parameter in both the sender and the receiver."
+msgstr "如果你想绑定到特殊的网络接口卡(NIC),你可以使用 <literal>-bind_addr 192.168.0.2</literal>,这里的 192.168.0.2 是你想绑定的网卡的地址。在发送者和接收者里都使用这个参数。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You should be able to type in the <literal>McastSenderTest</literal> window "
-"and see the output in the <literal>McastReceiverTest</literal> window. If "
-"not, try to use -ttl 32 in the sender. If this still fails, consult a system "
-"administrator to help you setup IP multicast correctly, and ask the admin to "
-"make sure that multicast will work on the interface you have chosen or, if "
-"the machines have multiple interfaces, ask to be told the correct interface. "
-"Once you know multicast is working properly on each machine in your cluster, "
-"you can repeat the above test to test the network, putting the sender on one "
-"machine and the receiver on another."
-msgstr ""
-"你应该能够在 <literal>McastSenderTest</literal> 窗口里输入并在 "
-"<literal>McastReceiverTest</literal> 窗口里看到输出。如果不行,试一下发送者里"
-"的 -ttl 32。如果还不行,请联系系统管理员来帮你设立正确的 IP 多点传送,并请他"
-"确保多点传送将工作在你所选的接口上(如果有多个接口)。一旦确认了多点传送在群"
-"集里的每台机器上都可以正常工作,把发送者(Sender)放到其中一台主机里而把接收"
-"者(Receiver)放到两外一台上。"
+msgid "You should be able to type in the <literal>McastSenderTest</literal> window and see the output in the <literal>McastReceiverTest</literal> window. If not, try to use -ttl 32 in the sender. If this still fails, consult a system administrator to help you setup IP multicast correctly, and ask the admin to make sure that multicast will work on the interface you have chosen or, if the machines have multiple interfaces, ask to be told the correct interface. Once you know multicast is working properly on each machine in your cluster, you can repeat the above test to test the network, putting the sender on one machine and the receiver on another."
+msgstr "你应该能够在 <literal>McastSenderTest</literal> 窗口里输入并在 <literal>McastReceiverTest</literal> 窗口里看到输出。如果不行,试一下发送者里的 -ttl 32。如果还不行,请联系系统管理员来帮你设立正确的 IP 多点传送,并请他确保多点传送将工作在你所选的接口上(如果有多个接口)。一旦确认了多点传送在群集里的每台机器上都可以正常工作,把发送者(Sender)放到其中一台主机里而把接收者(Receiver)放到两外一台上。"
 
 #. Tag: title
 #, no-c-format
@@ -2362,26 +1128,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Sometimes a member is suspected by FD because a heartbeat ack has not been "
-"received for some time T (defined by timeout and max_tries). This can have "
-"multiple reasons, e.g. in a cluster of A,B,C,D; C can be suspected if (note "
-"that A pings B, B pings C, C pings D and D pings A):"
-msgstr ""
-"有时候因为在一段时间 T(由 timeout 和 max_tries 定义)内没有接收到 heartbeat "
-"ack 回应,FD 会怀疑某个成员。这可能有多个原因,例如在群集 A,B,C,D 里,如果发"
-"生下列情况,C 可能会被怀疑(请注意 A pings B,B pings C,C pings D 且 D "
-"pings A):"
+msgid "Sometimes a member is suspected by FD because a heartbeat ack has not been received for some time T (defined by timeout and max_tries). This can have multiple reasons, e.g. in a cluster of A,B,C,D; C can be suspected if (note that A pings B, B pings C, C pings D and D pings A):"
+msgstr "有时候因为在一段时间 T(由 timeout 和 max_tries 定义)内没有接收到 heartbeat ack 回应,FD 会怀疑某个成员。这可能有多个原因,例如在群集 A,B,C,D 里,如果发生下列情况,C 可能会被怀疑(请注意 A pings B,B pings C,C pings D 且 D pings A):"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"B or C are running at 100% CPU for more than T seconds. So even if C sends a "
-"heartbeat ack to B, B may not be able to process it because it is at 100%"
-msgstr ""
-"B 或 C 的 CPU 占用率为 100% 的时间已经超过了 T。所以,即使 C 发送了一个 "
-"heartbeat ack 给 B,B 可能也不能够进行处理,因为它的 CPU 占用率已经达到了 "
-"100%。"
+msgid "B or C are running at 100% CPU for more than T seconds. So even if C sends a heartbeat ack to B, B may not be able to process it because it is at 100%"
+msgstr "B 或 C 的 CPU 占用率为 100% 的时间已经超过了 T。所以,即使 C 发送了一个 heartbeat ack 给 B,B 可能也不能够进行处理,因为它的 CPU 占用率已经达到了 100%。"
 
 #. Tag: para
 #, no-c-format
@@ -2395,25 +1148,14 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The network loses packets. This usually happens when there is a lot of "
-"traffic on the network, and the switch starts dropping packets (usually "
-"broadcasts first, then IP multicasts, TCP packets last)."
-msgstr ""
-"网络丢失了数据包。当网络里繁忙时,这通常会发生,且交换器开始丢掉数据包(通常"
-"首先是广播信息,然后是 IP 多点传送数据包,最后是 TCP 数据包)。"
+msgid "The network loses packets. This usually happens when there is a lot of traffic on the network, and the switch starts dropping packets (usually broadcasts first, then IP multicasts, TCP packets last)."
+msgstr "网络丢失了数据包。当网络里繁忙时,这通常会发生,且交换器开始丢掉数据包(通常首先是广播信息,然后是 IP 多点传送数据包,最后是 TCP 数据包)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"B or C are processing a callback. Let's say C received a remote method call "
-"over its channel and takes T+1 seconds to process it. During this time, C "
-"will not process any other messages, including heartbeats, and therefore B "
-"will not receive the heartbeat ack and will suspect C."
-msgstr ""
-"B 或 C 正在处理回调方法。假设 C 通过其频道接收到一个远程方法调用,它使用了 T"
-"+1 秒来进行处理。在这段时间内,C 将不能处理其他消息,包括 heartbeat,因此 B "
-"将不会接收到 heartbeat ack 并怀疑 C。"
+msgid "B or C are processing a callback. Let's say C received a remote method call over its channel and takes T+1 seconds to process it. During this time, C will not process any other messages, including heartbeats, and therefore B will not receive the heartbeat ack and will suspect C."
+msgstr "B 或 C 正在处理回调方法。假设 C 通过其频道接收到一个远程方法调用,它使用了 T+1 秒来进行处理。在这段时间内,C 将不能处理其他消息,包括 heartbeat,因此 B 将不会接收到 heartbeat ack 并怀疑 C。"
 
 #~ msgid "Clustering"
 #~ msgstr "群集"
+

Modified: projects/docs/enterprise/5.0/Administration_And_Configuration_Guide/zh-CN/EJB3.po
===================================================================
--- projects/docs/enterprise/5.0/Administration_And_Configuration_Guide/zh-CN/EJB3.po	2010-03-23 06:02:56 UTC (rev 102760)
+++ projects/docs/enterprise/5.0/Administration_And_Configuration_Guide/zh-CN/EJB3.po	2010-03-23 06:05:22 UTC (rev 102761)
@@ -8,8 +8,8 @@
 "Project-Id-Version: Clustering_Guide_JNDI\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2010-03-09T00:18:00\n"
-"PO-Revision-Date: 2009-02-02 20:07+1000\n"
-"Last-Translator: Xi HUANG\n"
+"PO-Revision-Date: 2010-03-23 12:01+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -22,65 +22,24 @@
 msgstr "带有 EJB3 服务的企业级应用程序"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<indexterm><primary>&gt;Enterprise Applications with EJB3 Services</"
-"primary><secondary>Enterprise JavaBean 3.0</secondary></indexterm> "
-"<indexterm><primary>EJB3</primary><see>Enterprise Applications with EJB3 "
-"Services</see></indexterm> EJB3 (Enterprise Java Bean 3.0) provides the core "
-"component model for Java EE 5 applications. An EJB3 bean is a managed "
-"component that is automatically wired to take advantage of all services the "
-"Java EE 5 server container provides, such as transaction, security, "
-"persistence, naming, dependency injection, etc. The managed component allows "
-"developers to focus on the business logic, and leave the cross-cutting "
-"concerns to the container as configurations. As an application developer, "
-"you need not create or destroy the components yourself. You only need to ask "
-"for an EJB3 bean from the Java EE container by its name, and then you can "
-"call its methods with all configured container services applied. You can get "
-"access to an EJB3 bean from either inside or outside of the Java EE "
-"container."
-msgstr ""
-"EJB3 (Enterprise JavaBean 3.0) 为 Java EE 5 应用程序提供核心组件模型。EJB2 "
-"Bean 是一个受管组件,它自动利用 J2EE 服务器容器所提供的所有服务,如事务、安全"
-"性、持久性、命名服务、依赖性注入等。受管组件允许开发人员专注于商业逻辑,而通"
-"过配置把其他事情交由容器管理。作为开发人员,你不需要自己来创建或销毁组件。你"
-"只需要根据名字从 Java EE 容器请求 EJB3 Bean,然后你可以调用其方法来访问配置好"
-"的容器服务。你可以从 J2EE 容器内部或外部访问 EJB3 bean。"
+#, no-c-format
+msgid "<indexterm><primary>&gt;Enterprise Applications with EJB3 Services</primary><secondary>Enterprise JavaBean 3.0</secondary></indexterm> <indexterm><primary>EJB3</primary><see>Enterprise Applications with EJB3 Services</see></indexterm> EJB3 (Enterprise Java Bean 3.0) provides the core component model for Java EE 5 applications. An EJB3 bean is a managed component that is automatically wired to take advantage of all services the Java EE 5 server container provides, such as transaction, security, persistence, naming, dependency injection, etc. The managed component allows developers to focus on the business logic, and leave the cross-cutting concerns to the container as configurations. As an application developer, you need not create or destroy the components yourself. You only need to ask for an EJB3 bean from the Java EE container by its name, and then you can call its methods with all configured container services applied. You can get access to an EJB3 bean from eith!
 er inside or outside of the Java EE container."
+msgstr "<indexterm><primary>&gt;Enterprise Applications with EJB3 Services</primary><secondary>Enterprise JavaBean 3.0</secondary></indexterm> <indexterm><primary>EJB3</primary><see>Enterprise Applications with EJB3 Services</see></indexterm> EJB3 (Enterprise JavaBean 3.0) 为 Java EE 5 应用程序提供核心组件模型。EJB2 Bean 是一个受管组件,它自动利用 Java EE 服务器容器所提供的所有服务,如事务、安全性、持久性、命名服务、依赖性注入等。受管组件允许开发人员专注于商业逻辑,而通过配置把其他事情交由容器管理。作为开发人员,你不需要自己来创建或销毁组件。你只需要根据名字从 Java EE 容器请求 EJB3 Bean,然后你可以调用其方法来访问配置好的容器服务。你可以从 Java EE 容器内部或外部访问 EJB3 bean。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"JBoss Enterprise Application Platform 5 supports EJB3 out of the box. Note "
-"that JBoss Enterprise Application Platform 4.2 is a J2EE server, so it does "
-"not support the full EJB3 feature set."
-msgstr ""
+msgid "JBoss Enterprise Application Platform 5 supports EJB3 out of the box. Note that JBoss Enterprise Application Platform 4.2 is a J2EE server, so it does not support the full EJB3 feature set."
+msgstr "JBoss 企业级应用程序平台 5 缺省支持 EJB3。请注意,JBoss 企业级应用程序平台 4.2 是一个 J2EE 服务器,它不支持完整的 EJB3 功能集。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The details of the EJB3 component programming model is beyond the scope of "
-"this guide. Most EJB3 interfaces and annotations are part of the Java EE 5 "
-"standard and hence they are the same for all Java EE 5 compliant application "
-"servers. Interested readers should refer to the EJB3 specification or "
-"numerous EJB3 books to learn more about EJB3 programming."
-msgstr ""
-"EJB3 组件编程模型的细节超出了本书的范畴。大多数 EJB3 接口和注解都是 Java EE "
-"5 标准的一部分,所有对于所有 Java EE 5 兼容的应用服务器来说它们都是相同的。感"
-"兴趣的读者应该参考 EJB3 规格或其他 EJB3 书籍来获得更多关于 EJB3 编程的信息。"
+msgid "The details of the EJB3 component programming model is beyond the scope of this guide. Most EJB3 interfaces and annotations are part of the Java EE 5 standard and hence they are the same for all Java EE 5 compliant application servers. Interested readers should refer to the EJB3 specification or numerous EJB3 books to learn more about EJB3 programming."
+msgstr "EJB3 组件编程模型的细节超出了本书的范畴。大多数 EJB3 接口和注解都是 Java EE 5 标准的一部分,所有对于所有 Java EE 5 兼容的应用服务器来说它们都是相同的。感兴趣的读者应该参考 EJB3 规格或其他 EJB3 书籍来获得更多关于 EJB3 编程的信息。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"In this chapter, we only cover EJB3 configuration issues that are specific "
-"to the JBoss Enterprise Application Platform. For instance, we discuss the "
-"JNDI naming conventions for EJB3 components inside the JBoss Enterprise "
-"Application Platform, the optional configurations for the Hibernate "
-"persistence engine for entity beans, as well as custom options in the JBoss "
-"EJB3 deployer."
-msgstr ""
-"在本章里,我们只涵盖 JBoss AS 专有的 EJB3 配置。例如,我们讨论 JBoss AS 里 "
-"EJB3 组件的 JNDI 命名规则,用于 entity bean 的 Hibernate 持久化引擎的可选配"
-"置,以及 JBoss EJB3 部署者里的自定义选项。"
+#, no-c-format
+msgid "In this chapter, we only cover EJB3 configuration issues that are specific to the JBoss Enterprise Application Platform. For instance, we discuss the JNDI naming conventions for EJB3 components inside the JBoss Enterprise Application Platform, the optional configurations for the Hibernate persistence engine for entity beans, as well as custom options in the JBoss EJB3 deployer."
+msgstr "在本章里,我们只涵盖 JBoss 企业级应用程序平台专有的 EJB3 配置。例如,我们讨论 JBoss 企业级应用程序平台里 EJB3 组件的 JNDI 命名规则,用于 entity bean 的 Hibernate 持久化引擎的可选配置,以及 JBoss EJB3 部署者里的自定义选项。"
 
 #. Tag: title
 #, no-c-format
@@ -89,121 +48,43 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Session beans are widely used to provide transactional services for local "
-"and remote clients. To write a session bean, you need an interface and an "
-"implementation class."
-msgstr ""
-"Session bean 被广泛使用来为本地和远程客户提供事务性服务。要编写 session "
-"bean,你需要一个接口及其实现类。"
+msgid "Session beans are widely used to provide transactional services for local and remote clients. To write a session bean, you need an interface and an implementation class."
+msgstr "Session bean 被广泛使用来为本地和远程客户提供事务性服务。要编写 session bean,你需要一个接口及其实现类。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"When you invoke a session bean method, the method execution is automatically "
-"managed by the transaction manager and the security manager in the server. "
-"You can specify the transactional or security properties for each method "
-"using annotations on the method. A session bean instance can be reused by "
-"many clients. Depending on whether the server maintains the bean's internal "
-"state between two clients, the session bean can be stateless or stateful. "
-"Depending on whether the bean has a remote business interface clients "
-"outside of the current JVM can call upon the EJB3 bean. All these are "
-"configurable via standard annotations on the beans. Note that the "
-"transactional or security properties are only active when the bean is called "
-"through a business interface."
-msgstr ""
-"当你调用一个 session bean 方法时,方法的执行自动由服务器里的事务管理者和安全"
-"性管理者来管理。你可以用方法上的注解指定每个方法的事务性或安全性属性。"
-"Session bean 实例可以被许多客户所重用。根据服务器是否维护 bean 在两个客户端之"
-"间的内部状态,Session bean 可以分为无状态的(stateless)或有状态的"
-"(stateful)。根据 bean 是否能为远程客户(如当前服务器里 JVM 之外的客户)所"
-"用,session bean 可以分为本地的(local)或远程的(remote)。所有这些都可以通"
-"过 bean 上的标准注解来进行配置。"
+#, no-c-format
+msgid "When you invoke a session bean method, the method execution is automatically managed by the transaction manager and the security manager in the server. You can specify the transactional or security properties for each method using annotations on the method. A session bean instance can be reused by many clients. Depending on whether the server maintains the bean's internal state between two clients, the session bean can be stateless or stateful. Depending on whether the bean has a remote business interface clients outside of the current JVM can call upon the EJB3 bean. All these are configurable via standard annotations on the beans. Note that the transactional or security properties are only active when the bean is called through a business interface."
+msgstr "当你调用一个 session bean 方法时,方法的执行自动由服务器里的事务管理者和安全性管理者来管理。你可以用方法上的注解指定每个方法的事务性或安全性属性。Session bean 实例可以被许多客户所重用。根据服务器是否维护 bean 在两个客户端之间的内部状态,Session bean 可以分为无状态的(stateless)或有状态的(stateful)。根据 bean 是否能为远程客户(如当前服务器里 JVM 之外的客户)所用,session bean 可以分为本地的(local)或远程的(remote)。所有这些都可以通过 bean 上的标准注解来进行配置。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"After you define a session bean, how does the client get a reference to it? "
-"As we discussed, the client does not create or destroy EJB3 components, it "
-"merely asks the server for a reference of an existing instance managed by "
-"the server. That is done via JNDI. In JBoss AS, the default local JNDI name "
-"for a session bean is dependent on the deployment packaging of the bean "
-"class."
-msgstr ""
-"在你定义了 session bean 以后,客户怎样才能访问它呢?如我们所讨论的,客户端不"
-"需要创建或销毁 EJB3 组件,它只要向服务器请求一个受管的现有实例的引用就可以"
-"了。这是通过 JNDI 来完成的。在 JBoss AS 里,session bean 的缺省本地 JNDI 名称"
-"取决于该 bean 类的部署包。"
+#, no-c-format
+msgid "After you define a session bean, how does the client get a reference to it? As we discussed, the client does not create or destroy EJB3 components, it merely asks the server for a reference of an existing instance managed by the server. That is done via JNDI. In JBoss AS, the default local JNDI name for a session bean is dependent on the deployment packaging of the bean class."
+msgstr "在你定义了 session bean 以后,客户怎样才能访问它呢?如我们所讨论的,客户端不需要创建或销毁 EJB3 组件,它只要向服务器请求一个受管的现有实例的引用就可以了。这是通过 JNDI 来完成的。在 JBoss AS 里,session bean 的缺省本地 JNDI 名称取决于该 bean 类的部署包。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"If the bean is deployed in a standalone JAR file in the <literal>JBOSS_DIST/"
-"default/deploy</literal> directory, the bean is accessible via local JNDI "
-"name <literal>MyBean/local</literal>, where <literal>MyBean</literal> is the "
-"implementation class name of the bean as we showed earlier. The \"local\" "
-"JNDI in JBoss AS means that the JNDI name is relative to <literal>java:comp/"
-"env/</literal>."
-msgstr ""
-"如果该 bean 部署在 <varname>jboss-as/production/deploy</varname> 下的一个标准"
-"的 JAR 文件里,它可以通过本地 JNDI 名 <varname>MyBean/local</varname> 来访"
-"问,这里的 <varname>MyBean</varname> 是我们在前面描述的实现类的名字。JBoss "
-"AS 里的“本地”JNDI 表示这个 JNDI 名字是相对于 <varname>java:comp/env/</"
-"varname> 的。"
+#, no-c-format
+msgid "If the bean is deployed in a standalone JAR file in the <literal>JBOSS_DIST/default/deploy</literal> directory, the bean is accessible via local JNDI name <literal>MyBean/local</literal>, where <literal>MyBean</literal> is the implementation class name of the bean as we showed earlier. The \"local\" JNDI in JBoss AS means that the JNDI name is relative to <literal>java:comp/env/</literal>."
+msgstr "如果该 bean 部署在 <literal>JBOSS_DIST/default/deploy</literal> 里的一个标准的 JAR 文件里,它可以通过本地 JNDI 名 <literal>MyBean/local</literal> 来访问,这里的 <literal>MyBean</literal> 是我们在前面描述的实现类的名字。JBoss AS 里的“本地”JNDI 表示这个 JNDI 名字是相对于 <literal>java:comp/env/</literal> 的。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"If the JAR file containing the bean is packaged in an EAR file, the local "
-"JNDI name for the bean is <literal>myapp/MyBean/local</literal>, where "
-"<literal>myapp</literal> is the root name of the EAR archive file (e.g., "
-"<literal>myapp.ear</literal>, see later for the EAR packaging of EJB3 beans)."
-msgstr ""
-"如果包含这个 bean 的 JAR 文件打包在一个 EAR 里,本地的 JNDI 名字就是 "
-"<varname>myapp/MyBean/local</varname>,这里的 <varname>myapp</varname> 是 "
-"EAR 归档文件的根名称(如 <varname>myapp.ear</varname>,请参考后面把 EJB3 "
-"bean 打包为 EAR 的内容)。"
+#, no-c-format
+msgid "If the JAR file containing the bean is packaged in an EAR file, the local JNDI name for the bean is <literal>myapp/MyBean/local</literal>, where <literal>myapp</literal> is the root name of the EAR archive file (e.g., <literal>myapp.ear</literal>, see later for the EAR packaging of EJB3 beans)."
+msgstr "如果包含这个 bean 的 JAR 文件打包在一个 EAR 里,本地的 JNDI 名字就是 <<literal>myapp/MyBean/local</literal>,这里的 <literal>myapp</literal> 是 EAR 归档文件的根名称(如 <literal>myapp.ear</literal>,请参考后面把 EJB3 bean 打包为 EAR 的内容)。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Of course, you should change <literal>local</literal> to <literal>remote</"
-"literal> if the bean interface is annotated with <literal>@Remote</literal> "
-"and the bean is accessed from outside of the server it is deployed on. Below "
-"is the code snippet to get a reference of the MyBean bean in a web "
-"application (e.g., in a servlet or a JSF backing bean) packaged in "
-"<literal>myapp.ear</literal>, and then invoke a managed method."
-msgstr ""
-"当然,如果这个 bean 接口通过 <varname>@Remote</varname> 注解且它由部署的服务"
-"器外部来访问,你应该把 <varname>local</varname> 修改为 <varname>remote</"
-"varname>。下面的代码片段在 <varname>myapp.ear</varname> 里的 web 应用程序"
-"(如 servelet 或 JSF bacing bean)里获得 MyBean bean 的一个引用,并调用一个受"
-"管方法。"
+#, no-c-format
+msgid "Of course, you should change <literal>local</literal> to <literal>remote</literal> if the bean interface is annotated with <literal>@Remote</literal> and the bean is accessed from outside of the server it is deployed on. Below is the code snippet to get a reference of the MyBean bean in a web application (e.g., in a servlet or a JSF backing bean) packaged in <literal>myapp.ear</literal>, and then invoke a managed method."
+msgstr "当然,如果这个 bean 接口通过 <literal>@Remote</literal> 注解且它由部署的服务器外部来访问,你应该把 <<literal>local</literal> 修改为 <literal>remote</literal>。下面的代码片段在 <literal>myapp.ear</literal> 里的 web 应用程序(如 servelet 或 JSF bacing bean)里获得 MyBean bean 的一个引用,并调用一个受管方法。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"What the client gets from the JNDI is essentially a \"stub\" or \"proxy\" of "
-"the bean instance. When the client invokes a method, the proxy figures out "
-"how to route the request to the server and marshal together the response."
-msgstr ""
-"客户端从 JNDI 里获得的只是 bean 实例的一个\"stub\" 或“代理(proxy)”。当客户"
-"端调用方法时,代理将把请求转发到服务器并对响应进行整理。"
+msgid "What the client gets from the JNDI is essentially a \"stub\" or \"proxy\" of the bean instance. When the client invokes a method, the proxy figures out how to route the request to the server and marshal together the response."
+msgstr "客户端从 JNDI 里获得的只是 bean 实例的一个\"stub\" 或“代理(proxy)”。当客户端调用方法时,代理将把请求转发到服务器并对响应进行整理。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"If you do not like the default JNDI names, you can always specify your own "
-"JNDI binding for any bean via the <literal>@LocalBinding</literal> "
-"annotation on the bean implementation class. The JNDI binding is always "
-"\"local\" under the <literal>java:comp/env/</literal> space. For instance, "
-"the following bean class definition results in the bean instances available "
-"under JNDI name <literal>java:comp/env/MyService/MyOwnName</literal>."
-msgstr ""
-"如果你不喜欢缺省的 JNDI 名称,你可以通过实例类上的 <varname>@LocalBinding</"
-"varname> 注解指定自己的 JNDI 绑定。JNDI 绑定总是基于 <varname>java:comp/env/"
-"</varname> 空间下的“本地的”。例如,下面的 bean 类的定义使其实例绑定到 JNDI 名"
-"称 <varname>java:comp/env/MyService/MyOwnName</varname>。"
+#, no-c-format
+msgid "If you do not like the default JNDI names, you can always specify your own JNDI binding for any bean via the <literal>@LocalBinding</literal> annotation on the bean implementation class. The JNDI binding is always \"local\" under the <literal>java:comp/env/</literal> space. For instance, the following bean class definition results in the bean instances available under JNDI name <literal>java:comp/env/MyService/MyOwnName</literal>."
+msgstr "如果你不喜欢缺省的 JNDI 名称,你可以通过实例类上的 <literal>@LocalBinding</literal> 注解指定自己的 JNDI 绑定。JNDI 绑定总是基于 <literal>java:comp/env/</literal> 空间下的“本地的”。例如,下面的 bean 类的定义使其实例绑定到 JNDI 名称 <literal>java:comp/env/MyService/MyOwnName</literal>。"
 
 #. Tag: title
 #, no-c-format
@@ -211,20 +92,9 @@
 msgstr "把 EJB3 Bean 注入到 Web 层"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Java EE 5 allows you to inject EJB3 bean instances directly into the web "
-"application via annotations without explicit JNDI lookup. This behavior is "
-"not yet supported in JBoss Enterprise Application Platform 4.2. However, the "
-"JBoss Enterprise Platform provides an integration framework called JBoss "
-"Seam. JBoss Seam brings EJB3 / JSF integration to new heights far beyond "
-"what Java EE 5 provides. Please see more details in the JBoss Seam reference "
-"guide bundled with the platform."
-msgstr ""
-"Java EE 5 允许你通过注解而不是显性的 JNDI 查找直接把 EJB3 bean 注入到 web 应"
-"用程序。JBoss AS 4.2 还不支持这种行为。但是,&JBPAPP; 提供了一个集成框架 "
-"JBoss Seam。JBoss Seam 把 EJB3 / JSF 的集成带到了一个新的高度,这远远超过了 "
-"Java EE 5 所提供的。请参考《JBoss Seam 参考手册》里的更多细节。"
+#, no-c-format
+msgid "Java EE 5 allows you to inject EJB3 bean instances directly into the web application via annotations without explicit JNDI lookup. This behavior is not yet supported in JBoss Enterprise Application Platform 4.2. However, the JBoss Enterprise Platform provides an integration framework called JBoss Seam. JBoss Seam brings EJB3 / JSF integration to new heights far beyond what Java EE 5 provides. Please see more details in the JBoss Seam reference guide bundled with the platform."
+msgstr "Java EE 5 允许你通过注解而不是显性的 JNDI 查找直接把 EJB3 bean 注入到 web 应用程序。JBoss 企业级应用程序平台 4.2 还不支持这种行为。但是,JBoss 企业级应用程序平台提供了一个集成框架 JBoss Seam。JBoss Seam 把 EJB3 / JSF 的集成带到了一个新的高度,这远远超过了 Java EE 5 所提供的。请参考《JBoss Seam 参考手册》里的更多细节。"
 
 #. Tag: title
 #, no-c-format
@@ -233,69 +103,28 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"EJB3 session beans allow you to implement data accessing business logic in "
-"transactional methods. To actually access the database, you will need EJB3 "
-"entity beans and the entity manager API. They are collectively called the "
-"Java Persistence API (JPA)."
-msgstr ""
-"EJB3 session bean 允许你在事务性方法里实现数据访问商业逻辑。要真正访问数据"
-"库,你将需要 EJB3 entity bean 和 entity manager API。它们合称为 Java "
-"Persistence API (JPA)。"
+msgid "EJB3 session beans allow you to implement data accessing business logic in transactional methods. To actually access the database, you will need EJB3 entity beans and the entity manager API. They are collectively called the Java Persistence API (JPA)."
+msgstr "EJB3 session bean 允许你在事务性方法里实现数据访问商业逻辑。要真正访问数据库,你将需要 EJB3 entity bean 和 entity manager API。它们合称为 Java Persistence API (JPA)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"EJB3 Entity Beans are Plain Old Java Objects (POJOs) that map to relational "
-"database tables. For instance, the following entity bean class maps to a "
-"relational table named customer. The table has three columns: name, age, and "
-"signupdate. Each instance of the bean corresponds to a row of data in the "
-"table."
-msgstr ""
-"EJB3 Entity Bean 是映射到关系型数据库表的普通 Java 对象(POJO,Plain Old "
-"Java Object)。例如,下面的 entity bean 类映射到名为 customer 的关系型表。这"
-"个表有 3 个字段:name、age 和 signupdate。每个 bean 实例都对应表里的一行数"
-"据。"
+msgid "EJB3 Entity Beans are Plain Old Java Objects (POJOs) that map to relational database tables. For instance, the following entity bean class maps to a relational table named customer. The table has three columns: name, age, and signupdate. Each instance of the bean corresponds to a row of data in the table."
+msgstr "EJB3 Entity Bean 是映射到关系型数据库表的普通 Java 对象(POJO,Plain Old Java Object)。例如,下面的 entity bean 类映射到名为 customer 的关系型表。这个表有 3 个字段:name、age 和 signupdate。每个 bean 实例都对应表里的一行数据。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Besides simple data properties, the entity bean can also contain references "
-"to other entity beans with relational mapping annotations such as @OneToOne, "
-"@OneToMany, @ManyToMany etc. The relationships of those entity objects will "
-"be automatically set up in the database as foreign keys. For instance, the "
-"following example shows that each record in the Customer table has one "
-"corresponding record in the Account table, multiple corresponding records in "
-"the Order table, and each record in the Employee table has multiple "
-"corresponding records in the Customer table."
-msgstr ""
-"除了简单的数据属性,entity bean 也可以包含其他带有关系型映射注解 @OneToOne、"
-"@OneToMany、@ManyToMany 等的 entity bean 的引用。这些实体对象的关系将自动设置"
-"为数据库里的外键。例如,下面的例子显示了 Customer 表里的每条记录都在 Account "
-"表里有一条对应的记录,并在 Order 表里对应多条记录,而 Employee 表里的每条记录"
-"都对应 Customer 表里的多条记录。"
+msgid "Besides simple data properties, the entity bean can also contain references to other entity beans with relational mapping annotations such as @OneToOne, @OneToMany, @ManyToMany etc. The relationships of those entity objects will be automatically set up in the database as foreign keys. For instance, the following example shows that each record in the Customer table has one corresponding record in the Account table, multiple corresponding records in the Order table, and each record in the Employee table has multiple corresponding records in the Customer table."
+msgstr "除了简单的数据属性,entity bean 也可以包含其他带有关系型映射注解 @OneToOne、@OneToMany、@ManyToMany 等的 entity bean 的引用。这些实体对象的关系将自动设置为数据库里的外键。例如,下面的例子显示了 Customer 表里的每条记录都在 Account 表里有一条对应的记录,并在 Order 表里对应多条记录,而 Employee 表里的每条记录都对应 Customer 表里的多条记录。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Using the EntityManager API, you can create, update, delete, and query "
-"entity objects. The EntityManager transparently updates the underlying "
-"database tables in the process. You can obtain an EntityManager object in "
-"your EJB3 session bean via the @PersistenceContext annotation."
-msgstr ""
-"使用 EntityManager API,你可以创建、更新、删除和查询实体对象。EntityManager "
-"透明地更新底层的数据库表。你可以通过 @PersistenceContext 注解在你的 EJB3 "
-"session bean 里获得 EntityManager 对象。"
+msgid "Using the EntityManager API, you can create, update, delete, and query entity objects. The EntityManager transparently updates the underlying database tables in the process. You can obtain an EntityManager object in your EJB3 session bean via the @PersistenceContext annotation."
+msgstr "使用 EntityManager API,你可以创建、更新、删除和查询实体对象。EntityManager 透明地更新底层的数据库表。你可以通过 @PersistenceContext 注解在你的 EJB3 session bean 里获得 EntityManager 对象。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The detailed use of the EntityManager API is beyond the scope of this book. "
-"Interested readers should refer to the JPA documentation or Hibernate "
-"EntityManager documentation."
-msgstr ""
-"EntityManager API 的详细用法超出了本书的范畴。感兴趣的读者应该参考 JPA 文档"
-"或 Hibernate EntityManager 文档。"
+msgid "The detailed use of the EntityManager API is beyond the scope of this book. Interested readers should refer to the JPA documentation or Hibernate EntityManager documentation."
+msgstr "EntityManager API 的详细用法超出了本书的范畴。感兴趣的读者应该参考 JPA 文档或 Hibernate EntityManager 文档。"
 
 #. Tag: title
 #, no-c-format
@@ -304,39 +133,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The EntityManager API is great, but how does the server know which database "
-"it is supposed to save / update / query the entity objects? How do we "
-"configure the underlying object-relational-mapping engine and cache for "
-"better performance and trouble shooting? The persistence.xml file gives you "
-"complete flexibility to configure the EntityManager."
-msgstr ""
-"EntityManager API 是很不错,但服务器怎么知道哪个数据库会保存/更新/查询实体对"
-"象?我们怎样才能配置底层的对象-关系-映射引擎和缓存来获得更好的性能并解除故"
-"障?persistence.xml 文件可让你灵活地配置 EntityManager。"
+msgid "The EntityManager API is great, but how does the server know which database it is supposed to save / update / query the entity objects? How do we configure the underlying object-relational-mapping engine and cache for better performance and trouble shooting? The persistence.xml file gives you complete flexibility to configure the EntityManager."
+msgstr "EntityManager API 是很不错,但服务器怎么知道哪个数据库会保存/更新/查询实体对象?我们怎样才能配置底层的对象-关系-映射引擎和缓存来获得更好的性能并解除故障?persistence.xml 文件可让你灵活地配置 EntityManager。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The persistence.xml file is a standard configuration file in JPA. It has to "
-"be included in the META-INF directory inside the JAR file that contains the "
-"entity beans. The persistence.xml file must define a persistence-unit with a "
-"unique name in the current scoped classloader. The provider attribute "
-"specifies the underlying implementation of the JPA EntityManager. In JBoss "
-"Enterprise Application Platform, the default and only supported / "
-"recommended JPA provider is Hibernate. The jta-data-source points to the "
-"JNDI name of the database this persistence unit maps to. The java:/DefaultDS "
-"here points to the HSQL DB embedded in the JBoss Enterprise Application "
-"Platform. Please refer to <xref linkend=\"alternative_DBs\" /> on how to "
-"setup alternative databases for JBoss AS."
-msgstr ""
-"persistence.xml 文件是 JPA 里的一个标准配置文件。它必须位于包含 entity bean "
-"的 JAR 文件里的 META-INF 目录里。persistence.xml 文件必须定义一个在当前类加载"
-"器里具有唯一名称的 persistence-unit。provider 属性指定 JPA EntityManager 的底"
-"层实现。在 JBoss AS 里,缺省的且唯一支持和推荐的 JPA 提供者是 Hibernate。jta-"
-"data-source 指向这个 persistence unit 映射的数据库的 JNDI 名字。java:/"
-"DefaultDS 指向 JBoss AS 内嵌的 HSQL 数据库。关于如何设立其他的数据库,请参考 "
-"<xref linkend=\"alternative_DBs\"/>。"
+#, no-c-format
+msgid "The persistence.xml file is a standard configuration file in JPA. It has to be included in the META-INF directory inside the JAR file that contains the entity beans. The persistence.xml file must define a persistence-unit with a unique name in the current scoped classloader. The provider attribute specifies the underlying implementation of the JPA EntityManager. In JBoss Enterprise Application Platform, the default and only supported / recommended JPA provider is Hibernate. The jta-data-source points to the JNDI name of the database this persistence unit maps to. The java:/DefaultDS here points to the HSQL DB embedded in the JBoss Enterprise Application Platform. Please refer to <xref linkend=\"alternative_DBs\" /> on how to setup alternative databases for JBoss AS."
+msgstr "persistence.xml 文件是 JPA 里的一个标准配置文件。它必须位于包含 entity bean 的 JAR 文件里的 META-INF 目录里。persistence.xml 文件必须定义一个在当前类加载器里具有唯一名称的 persistence-unit。provider 属性指定 JPA EntityManager 的底层实现。在 JBoss AS 里,缺省的且唯一支持和推荐的 JPA 提供者是 Hibernate。jta-data-source 指向这个 persistence unit 映射的数据库的 JNDI 名字。java:/DefaultDS 指向 JBoss 企业级应用程序平台内嵌的 HSQL 数据库。关于如何设立其他的数据库,请参考 <xref linkend=\"alternative_DBs\"/>。"
 
 #. Tag: title
 #, no-c-format
@@ -345,47 +148,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Since you might have multiple instances of persistence-unit defined in the "
-"same application, you typically need to explicitly tell the "
-"@PersistenceContext annotation which unit you want to inject. For instance, "
-"@PersistenceContext(name=\"myapp\") injects the EntityManager from the "
-"persistence-unit named \"myapp\"."
-msgstr ""
-"既然你可能会有多个在相同的应用程序里定义的 persistence-unit 的实例,你通常需"
-"要显性地告诉 @PersistenceContext 注解你要注入哪个单元。例如,"
-"@PersistenceContext(name=\"myapp\") 从名为 \"myapp\" 的 persistence-unit 注"
-"入 EntityManager。"
+msgid "Since you might have multiple instances of persistence-unit defined in the same application, you typically need to explicitly tell the @PersistenceContext annotation which unit you want to inject. For instance, @PersistenceContext(name=\"myapp\") injects the EntityManager from the persistence-unit named \"myapp\"."
+msgstr "既然你可能会有多个在相同的应用程序里定义的 persistence-unit 的实例,你通常需要显性地告诉 @PersistenceContext 注解你要注入哪个单元。例如,@PersistenceContext(name=\"myapp\") 从名为 \"myapp\" 的 persistence-unit 注入 EntityManager。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"However, if you deploy your EAR application in its own scoped classloader "
-"and have only one persistence-unit defined in the whole application, you can "
-"omit the \"name\" on @PersistenceContext. See later in this chapter for EAR "
-"packaging and deployment."
-msgstr ""
-"然而,如果你在自己作用域内的类加载器里部署 EAR 应用程序并在整个应用程序里只定"
-"义了一个 persistence-unit,你可以忽略 @PersistenceContext 上的 \"name\" 属"
-"性。关于 EAR 打包和部署,请参考本章后面的内容。"
+msgid "However, if you deploy your EAR application in its own scoped classloader and have only one persistence-unit defined in the whole application, you can omit the \"name\" on @PersistenceContext. See later in this chapter for EAR packaging and deployment."
+msgstr "然而,如果你在自己作用域内的类加载器里部署 EAR 应用程序并在整个应用程序里只定义了一个 persistence-unit,你可以忽略 @PersistenceContext 上的 \"name\" 属性。关于 EAR 打包和部署,请参考本章后面的内容。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The properties element in the persistence.xml can contain any configuration "
-"properties for the underlying persistence provider. Since JBoss Enterprise "
-"Application Platform uses Hibernate as the EJB3 persistence provider, you "
-"can pass in any Hibernate options here. Please refer to the Hibernate and "
-"Hibernate EntityManager documentation for more details. Here we will just "
-"give an example to set the SQL dialect of the persistence engine to HSQL, "
-"and to create tables from the entity beans when the application starts and "
-"drop those tables when the application stops."
-msgstr ""
-"persistence.xml 里的 properties 元素可以包含底层持久化提供者的任何配置属性。"
-"既然 JBoss AS 把 Hibernate 作为 EJB3 持久化提供者,你可以在这里放入任何 "
-"Hibernate 选项。详情请参考 Hibernate 和 Hibernate EntityManager 的相关文档。"
-"在这里我们将给出一个例子,把持久化引擎的 SQL 方言设置为 HSQL,并在应用程序启"
-"动时通过 entity bean 创建表且在应用程序停止时删除这些表。"
+#, no-c-format
+msgid "The properties element in the persistence.xml can contain any configuration properties for the underlying persistence provider. Since JBoss Enterprise Application Platform uses Hibernate as the EJB3 persistence provider, you can pass in any Hibernate options here. Please refer to the Hibernate and Hibernate EntityManager documentation for more details. Here we will just give an example to set the SQL dialect of the persistence engine to HSQL, and to create tables from the entity beans when the application starts and drop those tables when the application stops."
+msgstr "persistence.xml 里的 properties 元素可以包含底层持久化提供者的任何配置属性。既然 JBoss 企业级应用程序平台把 Hibernate 作为 EJB3 持久化提供者,你可以在这里放入任何 Hibernate 选项。详情请参考 Hibernate 和 Hibernate EntityManager 的相关文档。在这里我们将给出一个例子,把持久化引擎的 SQL 方言设置为 HSQL,并在应用程序启动时通过 entity bean 创建表且在应用程序停止时删除这些表。"
 
 #. Tag: title
 #, no-c-format
@@ -393,48 +167,19 @@
 msgstr "使用其他数据库"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"To use an alternative database other than the built-in HSQL DB to back your "
-"entity beans, you need to first define the data source for the database and "
-"register it in the JNDI. This is done via the *-ds.xml files in the deploy "
-"directory. Please see <xref linkend=\"Connectors_on_JBoss-"
-"Configuring_JDBC_DataSources\" /> for more details. Examples of *-ds.xml "
-"files for various databases are available in JBOSS_DIST/docs/examples/jca "
-"directory in the server."
-msgstr ""
-"要使用其他数据库而不是内嵌的 HSQL 数据库,你首先需要定义该数据库的数据源并注"
-"册到 JNDI。这是通过 deploy 目录下的 *-ds.xml 文件完成的。详情请参考 <xref "
-"linkend=\"Connectors_on_JBoss-Configuring_JDBC_DataSources\"/>。用于不同数据"
-"库的 *-ds.xml 文件的示例可以在服务器的 jboss-as/docs/examples/jca 目录下找"
-"到。"
+#, no-c-format
+msgid "To use an alternative database other than the built-in HSQL DB to back your entity beans, you need to first define the data source for the database and register it in the JNDI. This is done via the *-ds.xml files in the deploy directory. Please see <xref linkend=\"Connectors_on_JBoss-Configuring_JDBC_DataSources\" /> for more details. Examples of *-ds.xml files for various databases are available in JBOSS_DIST/docs/examples/jca directory in the server."
+msgstr "要使用其他数据库而不是内嵌的 HSQL 数据库,你首先需要定义该数据库的数据源并注册到 JNDI。这是通过 deploy 目录下的 *-ds.xml 文件完成的。详情请参考 <xref linkend=\"Connectors_on_JBoss-Configuring_JDBC_DataSources\"/>。用于不同数据库的 *-ds.xml 文件的示例可以在服务器的 JBOSS_DIST/docs/examples/jca 目录下找到。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Then, in the persistence.xml, you need to change the jta-data-source "
-"attribute to point to the new data source in JNDI (e.g., java:/MysqlDS if "
-"you are using the default mysql-ds.xml to setup a MySQL external database)."
-msgstr ""
-"然后,在 persistence.xml 文件里,你需要修改 jta-data-source 属性,使其指向 "
-"JNDI 里的新数据源(如果你使用缺省的 mysql-ds.xml 来设立 MySQL 外部数据库,就"
-"使用 java:/MysqlDS)。"
+msgid "Then, in the persistence.xml, you need to change the jta-data-source attribute to point to the new data source in JNDI (e.g., java:/MysqlDS if you are using the default mysql-ds.xml to setup a MySQL external database)."
+msgstr "然后,在 persistence.xml 文件里,你需要修改 jta-data-source 属性,使其指向 JNDI 里的新数据源(如果你使用缺省的 mysql-ds.xml 来设立 MySQL 外部数据库,就使用 java:/MysqlDS)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"In most cases, Hibernate tries to automatically detect the database it "
-"connects to and then automatically selects an appropriate SQL dialect for "
-"the database. However, we have found that this detection does not always "
-"work, especially for less used database servers. We recommend you to set the "
-"hibernate.dialect property explicitly in persistence.xml. Here are the "
-"Hibernate dialect for database servers officially supported on the JBoss "
-"platform."
-msgstr ""
-"在大多数情况下,Hibernate 试图自动地检测它所连接的数据库并自动地选择合适的 "
-"SQL 方言。然而,我们发现这种检测并不总是有效,特别是对于较少使用的数据库服务"
-"器而言。我们推荐你在 persistence.xml 文件里显性地设置 hibernate.dialect 属"
-"性。下面是用于 JBoss 平台官方支持的数据库服务器的 Hibernate 方言。"
+msgid "In most cases, Hibernate tries to automatically detect the database it connects to and then automatically selects an appropriate SQL dialect for the database. However, we have found that this detection does not always work, especially for less used database servers. We recommend you to set the hibernate.dialect property explicitly in persistence.xml. Here are the Hibernate dialect for database servers officially supported on the JBoss platform."
+msgstr "在大多数情况下,Hibernate 试图自动地检测它所连接的数据库并自动地选择合适的 SQL 方言。然而,我们发现这种检测并不总是有效,特别是对于较少使用的数据库服务器而言。我们推荐你在 persistence.xml 文件里显性地设置 hibernate.dialect 属性。下面是用于 JBoss 平台官方支持的数据库服务器的 Hibernate 方言。"
 
 #. Tag: para
 #, no-c-format
@@ -472,23 +217,9 @@
 msgstr "缺省的 Hibernate 选项"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate has many configuration properties. For the properties that you do "
-"not specify in the persistence.xml file, JBoss AS will provide a reasonable "
-"set of default values. The default Hibernate property values are specified "
-"in the <literal>JBOSS_DIST/server/default/deploy/ejb3.deployer/MEAT-INF/"
-"persistence.properties</literal> file. Below is the <literal>persistence."
-"properties</literal> file bundled in JBoss AS 4.2. Notice the options that "
-"are commented out. They give you an idea of available properties in your "
-"<literal>persistence.xml</literal> file."
-msgstr ""
-"Hibernate 有很多配置属性。对于你没有在 persistence.xml 文件里指定的属性,"
-"JBoss AS 将提供一系列缺省值。这些缺省值在 <varname>jboss-as/server/"
-"production/deploy/ejb3.deployer/META-INF/persistence.properties</varname> 文"
-"件里指定。下面是 &JBPAPP; 里附带的 <varname>persistence.properties</varname> "
-"文件。请注意被注释的选项,它们让你知道 <varname>persistence.xml</varname>  文"
-"件里的可用属性。"
+#, no-c-format
+msgid "Hibernate has many configuration properties. For the properties that you do not specify in the persistence.xml file, JBoss AS will provide a reasonable set of default values. The default Hibernate property values are specified in the <literal>JBOSS_DIST/server/default/deploy/ejb3.deployer/MEAT-INF/persistence.properties</literal> file. Below is the <literal>persistence.properties</literal> file bundled in JBoss AS 4.2. Notice the options that are commented out. They give you an idea of available properties in your <literal>persistence.xml</literal> file."
+msgstr "Hibernate 有很多配置属性。对于你没有在 persistence.xml 文件里指定的属性,JBoss AS 将提供一系列缺省值。这些缺省值在 <literal>JBOSS_DIST/server/default/deploy/ejb3.deployer/MEAT-INF/persistence.properties</literal> 文件里指定。下面是 JBoss AS 4.2 里附带的 <literal>persistence.properties</literal> 文件。请注意被注释的选项,它们让你知道 <literal>persistence.xml</literal>  文件里的可用属性。"
 
 #. Tag: title
 #, no-c-format
@@ -496,39 +227,18 @@
 msgstr "Message Driven Bean"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Messaging driven beans are specialized EJB3 beans that receive service "
-"requests via JMS messages instead of proxy method calls from the \"stub\". "
-"So, a crucial configuration parameter for the message driven bean is to "
-"specify which JMS message queue its listens to. When there is an incoming "
-"message in the queue, the server invokes the beans's <literal>onMessage()</"
-"literal> method, and passes in the message itself for processing. The bean "
-"class specifies the JMS queue it listens to in the @MessageDriven "
-"annotation. The queue is registered under the local JNDI java:comp/env/ name "
-"space."
-msgstr ""
-"Messaging driven bean 是特殊的 EJB3 bean,它通过消息而不是 \"stub\" 的代理方"
-"法调用接收服务请求。所以,Messaging driven bean 的关键配置参数是指定侦听的 "
-"JMS 消息队列。当队列里没有转入消息时,服务器调用 bean 的 <varname>onMessage()"
-"</varname> 方法并传入消息本身进行处理。Bean 类通过 @MessageDriven 注解指定它"
-"侦听的 JMS 队列。这个队列在本地的 JNDI java:comp/env/ 命名空间进行注册。"
+#, no-c-format
+msgid "Messaging driven beans are specialized EJB3 beans that receive service requests via JMS messages instead of proxy method calls from the \"stub\". So, a crucial configuration parameter for the message driven bean is to specify which JMS message queue its listens to. When there is an incoming message in the queue, the server invokes the beans's <literal>onMessage()</literal> method, and passes in the message itself for processing. The bean class specifies the JMS queue it listens to in the @MessageDriven annotation. The queue is registered under the local JNDI java:comp/env/ name space."
+msgstr "Messaging driven bean 是特殊的 EJB3 bean,它通过消息而不是 \"stub\" 的代理方法调用接收服务请求。所以,Messaging driven bean 的关键配置参数是指定侦听的 JMS 消息队列。当队列里没有转入消息时,服务器调用 bean 的 <literal>onMessage()</literal> 方法并传入消息本身进行处理。Bean 类通过 @MessageDriven 注解指定它侦听的 JMS 队列。这个队列在本地的 JNDI java:comp/env/ 命名空间进行注册。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"When a message driven bean is deployed, its incoming message queue is "
-"automatically created if it does not exist already. To send a message to the "
-"bean, you can use the standard JMS API."
-msgstr ""
-"当部署了一个 message driven bean 时,它的转入消息队列如果不存在则被自动创建。"
-"要发送消息给这个 bean,你可以使用标准的 JMS API。"
+msgid "When a message driven bean is deployed, its incoming message queue is automatically created if it does not exist already. To send a message to the bean, you can use the standard JMS API."
+msgstr "当部署了一个 message driven bean 时,它的转入消息队列如果不存在则被自动创建。要发送消息给这个 bean,你可以使用标准的 JMS API。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Please refer to the JMS specification or books to learn how to program in "
-"the JMS API."
+msgid "Please refer to the JMS specification or books to learn how to program in the JMS API."
 msgstr "要学习如何使用 JMS API 编程,请参考 JMS 规格或相关书籍。"
 
 #. Tag: title
@@ -538,18 +248,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"EJB3 bean classes are packaged in regular JAR files. The standard "
-"configuration files, such as ejb-jar.xml for session beans, and persistence."
-"xml for entity beans, are in the META-INF directory inside the JAR. You can "
-"deploy EJB3 beans as standalone services in JBoss AS or as part of an "
-"enterprise application (i.e., in an EAR archive). In this section, we "
-"discuss those two deployment options."
-msgstr ""
-"EJB3 bean 类打包在普通的 JAR 文件里。标准的配置文件,如用于 session bean 的 "
-"ejb-jar.xml 和用于 entity bean 的 persistence.xml,位于 JAR 里的 META-INF 目"
-"录下。你可以把 EJB3 bean 部署为 JBoss AS 的标准服务,也可以作为企业级应用程序"
-"(也就是放入 EAR 归档里)部署。在本节里,我们将讨论这两种部署选项。"
+msgid "EJB3 bean classes are packaged in regular JAR files. The standard configuration files, such as ejb-jar.xml for session beans, and persistence.xml for entity beans, are in the META-INF directory inside the JAR. You can deploy EJB3 beans as standalone services in JBoss AS or as part of an enterprise application (i.e., in an EAR archive). In this section, we discuss those two deployment options."
+msgstr "EJB3 bean 类打包在普通的 JAR 文件里。标准的配置文件,如用于 session bean 的 ejb-jar.xml 和用于 entity bean 的 persistence.xml,位于 JAR 里的 META-INF 目录下。你可以把 EJB3 bean 部署为 JBoss AS 的标准服务,也可以作为企业级应用程序(也就是放入 EAR 归档里)部署。在本节里,我们将讨论这两种部署选项。"
 
 #. Tag: title
 #, no-c-format
@@ -557,54 +257,19 @@
 msgstr "部署 EJB3 JAR"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"When you drop JAR files into the <literal>JBOSS_DIST/server/default/deploy/</"
-"literal> directory, it will be automatically picked up and processed by the "
-"server. All the EJB3 beans defined in the JAR file will then be available to "
-"other applications deployed inside or outside of the server via JNDI names "
-"like <literal>MyBean/local</literal>, where <literal>MyBean</literal> is the "
-"implementation class name for the session bean. The deployment is done via "
-"the JBoss EJB3 deployer in JBOSS_DIST/server/default/ejb3.deployer/. The "
-"META-INF/persistence.properties file we discussed earlier to configure the "
-"default behavior of EJB3 entity manager is located in the EJB3 deployer."
-msgstr ""
-"当你把 JAR 文件部署到 <varname>jboss-as/server/production/deploy/</varname> "
-"目录下时,服务器将自动识别并进行处理。JAR 文件里定义的所有 EJB3 bean 都将通"
-"过 JNDI(如 <varname>MyBean/local</varname>,这里的 <varname>MyBean</"
-"varname> 是 session bean 的实现类)对于服务器内部或外部的其他应用程序可用。部"
-"署是通过 jboss-as/server/production/ejb3.deployer/ 下的 JBoss EJB3 部署者完成"
-"的。我们先前讨论的、用于配置 EJB3 entity manager 的缺省行为的 META-INF/"
-"persistence.properties 文件位于 EJB3 部署者下面。"
+#, no-c-format
+msgid "When you drop JAR files into the <literal>JBOSS_DIST/server/default/deploy/</literal> directory, it will be automatically picked up and processed by the server. All the EJB3 beans defined in the JAR file will then be available to other applications deployed inside or outside of the server via JNDI names like <literal>MyBean/local</literal>, where <literal>MyBean</literal> is the implementation class name for the session bean. The deployment is done via the JBoss EJB3 deployer in JBOSS_DIST/server/default/ejb3.deployer/. The META-INF/persistence.properties file we discussed earlier to configure the default behavior of EJB3 entity manager is located in the EJB3 deployer."
+msgstr "当你把 JAR 文件部署到 <literal>JBOSS_DIST/server/default/deploy/</literal> 目录下时,服务器将自动识别并进行处理。JAR 文件里定义的所有 EJB3 bean 都将通过 JNDI(如 <literal>MyBean/local</literal>,这里的 <literal>MyBean/local</literal> 是 session bean 的实现类)对于服务器内部或外部的其他应用程序可用。部署是通过 jboss-as/server/production/ejb3.deployer/ 下的 JBoss EJB3 部署者完成的。我们先前讨论的、用于配置 EJB3 entity manager 的缺省行为的 META-INF/persistence.properties 文件位于 EJB3 部署者下面。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The EJB3 deployer automatically scans JARs on the classpath to look for EJB3 "
-"annotations. When it finds classes with EJB3 annotations, it would deploy "
-"them as EJB3 services. However, scanning all JARs on the classpath could be "
-"very time-consuming if you have large applications with many JARs deployed. "
-"In the JBOSS_DIST/server/default/ejb3.deployer/META-INF/jboss-service.xml "
-"file, you can tell the EJB3 deployer to ignore JARs you know do not contain "
-"EJB3 beans. The non-EJB3 JAR files shipped with the JBoss AS are already "
-"listed in the jboss.ejb3:service=JarsIgnoredForScanning MBean service:"
-msgstr ""
-"EJB3 部署者自动扫描 classpath 上的 JAR 文件来寻找 EJB3 注解。当它找到带有 "
-"EJB3 注解的类时,它将其部署为 EJB3 服务。然而,如果应用程序部署了许多 JAR,扫"
-"描 classpath 上的 JAR 文件会非常耗时。在 jboss-as/server/production/ejb3."
-"deployer/META-INF/jboss-service.xml 文件里,你可以告诉 EJB3 部署者忽略不包含 "
-"EJB3 bean 的 JAR 文件。JBoss AS 附带的非 EJB3 JAR 文件已经在 jboss.ejb3:"
-"service=JarsIgnoredForScanning MBean 服务里列出:"
+#, no-c-format
+msgid "The EJB3 deployer automatically scans JARs on the classpath to look for EJB3 annotations. When it finds classes with EJB3 annotations, it would deploy them as EJB3 services. However, scanning all JARs on the classpath could be very time-consuming if you have large applications with many JARs deployed. In the JBOSS_DIST/server/default/ejb3.deployer/META-INF/jboss-service.xml file, you can tell the EJB3 deployer to ignore JARs you know do not contain EJB3 beans. The non-EJB3 JAR files shipped with the JBoss AS are already listed in the jboss.ejb3:service=JarsIgnoredForScanning MBean service:"
+msgstr "EJB3 部署者自动扫描 classpath 上的 JAR 文件来寻找 EJB3 注解。当它找到带有 EJB3 注解的类时,它将其部署为 EJB3 服务。然而,如果应用程序部署了许多 JAR,扫描 classpath 上的 JAR 文件会非常耗时。在 JBOSS_DIST/server/default/ejb3.deployer/META-INF/jboss-service.xml 文件里,你可以告诉 EJB3 部署者忽略不包含 EJB3 bean 的 JAR 文件。JBoss AS 附带的非 EJB3 JAR 文件已经在 jboss.ejb3:service=JarsIgnoredForScanning MBean 服务里列出:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You can add any non-EJB3 JARs from your application to this list so that the "
-"server do not have to waste time scanning them. This could significantly "
-"improve the application startup time in some cases."
-msgstr ""
-"你可以把应用程序里的任何非 EJB3 JAR 添加到这个列表里,这样服务器就不需要浪费"
-"时间进行扫描了。在某些情况下,这可以显著地缩短应用程序的启动时间。"
+msgid "You can add any non-EJB3 JARs from your application to this list so that the server do not have to waste time scanning them. This could significantly improve the application startup time in some cases."
+msgstr "你可以把应用程序里的任何非 EJB3 JAR 添加到这个列表里,这样服务器就不需要浪费时间进行扫描了。在某些情况下,这可以显著地缩短应用程序的启动时间。"
 
 #. Tag: title
 #, no-c-format
@@ -613,122 +278,40 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Most Java EE applications are deployed as EAR archives. An EAR archive is a "
-"JAR file that typically contains a WAR archive for the web pages, servlets, "
-"and other web-related components, one or several EJB3 JARs that provide "
-"services (e.g., data access and transaction) to the WAR components, and some "
-"other support library JARs required by the application. An EAR file also "
-"have deployment descriptors such as application.xml and jboss-app.xml. Below "
-"is the basic structure of a typical EAR application."
-msgstr ""
-"大多数 Java EE 应用程序都以 EAR 归档的方式部署。EAR 归档是一个 JAR 文件,它通"
-"常包括一个用于 web 页面、Servlets 以及其他和 web 相关的组件的 WAR 归档文件,"
-"一个或几个为 WAR 组件提供服务(如数据访问和事务)的 EJB3 JAR,以及应用程序所"
-"需的其他支持库 JAR。EAR 文件也具有部署描述符如 application.xml 和 jboss-app."
-"xml。下面是一个典型的 EAR 应用程序的基本结构:"
+msgid "Most Java EE applications are deployed as EAR archives. An EAR archive is a JAR file that typically contains a WAR archive for the web pages, servlets, and other web-related components, one or several EJB3 JARs that provide services (e.g., data access and transaction) to the WAR components, and some other support library JARs required by the application. An EAR file also have deployment descriptors such as application.xml and jboss-app.xml. Below is the basic structure of a typical EAR application."
+msgstr "大多数 Java EE 应用程序都以 EAR 归档的方式部署。EAR 归档是一个 JAR 文件,它通常包括一个用于 web 页面、Servlets 以及其他和 web 相关的组件的 WAR 归档文件,一个或几个为 WAR 组件提供服务(如数据访问和事务)的 EJB3 JAR,以及应用程序所需的其他支持库 JAR。EAR 文件也具有部署描述符如 application.xml 和 jboss-app.xml。下面是一个典型的 EAR 应用程序的基本结构:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Notice that in JBoss AS, unlike in many other application servers, you do "
-"not need to declare EJB references in the web.xml file in order for the "
-"components in the WAR file to access EJB3 services. You can obtain the "
-"references directly via JNDI as we discussed earlier in the chapter."
-msgstr ""
-"请注意,在 JBoss AS 里,不象其他的应用服务器,你不需要为了让 WAR 里的组件可以"
-"访问 EJB3 服务而在 web.xml 文件里声明 EJB 引用。如我们在先前讨论的一样,你可"
-"以通过 JNDI 直接获取引用。"
+msgid "Notice that in JBoss AS, unlike in many other application servers, you do not need to declare EJB references in the web.xml file in order for the components in the WAR file to access EJB3 services. You can obtain the references directly via JNDI as we discussed earlier in the chapter."
+msgstr "请注意,在 JBoss AS 里,不象其他的应用服务器,你不需要为了让 WAR 里的组件可以访问 EJB3 服务而在 web.xml 文件里声明 EJB 引用。如我们在先前讨论的一样,你可以通过 JNDI 直接获取引用。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A typical application.xml file is as follows. It declares the WAR and EJB3 "
-"JAR archives in the EAR, and defines the web content root for the "
-"application. Of course, you can have multiple EJB3 modules in the same EAR "
-"application. The application.xml file could also optionally define a shared "
-"classpath for JAR files used in this application. The JAR file location "
-"defaults to lib in JBoss AS -- but it might be different in other "
-"application servers."
-msgstr ""
-"下面是一个典型的 application.xml 文件。它声明了 EAR 里的 WAR 和 EJB3 JAR 归档"
-"文件,它也定义了应用程序的 web 内容根目录。当然,你可以在 EAR 应用程序里使用"
-"多个 EJB3 模块。application.xml 文件也可以为所使用的 JAR 定义一个共享的 "
-"classpath。JAR 文件的路径缺省为 JBoss AS 里的 lib - 但在不同的服务器里这有可"
-"能不同。"
+msgid "A typical application.xml file is as follows. It declares the WAR and EJB3 JAR archives in the EAR, and defines the web content root for the application. Of course, you can have multiple EJB3 modules in the same EAR application. The application.xml file could also optionally define a shared classpath for JAR files used in this application. The JAR file location defaults to lib in JBoss AS -- but it might be different in other application servers."
+msgstr "下面是一个典型的 application.xml 文件。它声明了 EAR 里的 WAR 和 EJB3 JAR 归档文件,它也定义了应用程序的 web 内容根目录。当然,你可以在 EAR 应用程序里使用多个 EJB3 模块。application.xml 文件也可以为所使用的 JAR 定义一个共享的 classpath。JAR 文件的路径缺省为 JBoss AS 里的 lib - 但在不同的服务器里这有可能不同。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The jboss-app.xml file provides JBoss-specific deployment configuration for "
-"the EAR application. For instance, it can specify the deployment order of "
-"modules in the EAR, deploy JBoss-specific application modules in the EAR, "
-"such as SARs (Service ARchive for MBeans) and HARs (Hibernate ARchive for "
-"Hibernate objects), provide security domain and JMX MBeans that can be used "
-"with this application, etc. You can learn more about the possible attributes "
-"in jboss-app.xml in its DTD: http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd."
-msgstr ""
-"jboss-app.xml 文件为 EAR 应用程序提供 JBoss 专有的部署配置。例如,它可以指定 "
-"EAR 里模块的部署顺序、部署 EAR 里 JBoss 专有的模块如 SAR(Service ARchive "
-"for MBeans)和 HAR(Hibernate ARchive for Hibernate objects)、提供安全域和应"
-"用程序里使用的 JMX MBean 等。你可以在 jboss-app.xml 的 DTD 里学到其可用的属"
-"性:http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd。"
+msgid "The jboss-app.xml file provides JBoss-specific deployment configuration for the EAR application. For instance, it can specify the deployment order of modules in the EAR, deploy JBoss-specific application modules in the EAR, such as SARs (Service ARchive for MBeans) and HARs (Hibernate ARchive for Hibernate objects), provide security domain and JMX MBeans that can be used with this application, etc. You can learn more about the possible attributes in jboss-app.xml in its DTD: http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd."
+msgstr "jboss-app.xml 文件为 EAR 应用程序提供 JBoss 专有的部署配置。例如,它可以指定 EAR 里模块的部署顺序、部署 EAR 里 JBoss 专有的模块如 SAR(Service ARchive for MBeans)和 HAR(Hibernate ARchive for Hibernate objects)、提供安全域和应用程序里使用的 JMX MBean 等。你可以在 jboss-app.xml 的 DTD 里学到其可用的属性:http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"A common use case for jboss-app.xml is to configure whether this EAR file "
-"should be deployed in its own scoped classloader to avoid naming conflicts "
-"with other applications. If your EAR application is deployed in its own "
-"scoped classloader and it only has one persistence-unit defined in its EJB3 "
-"JARs, you will be able to use @PersistenceContext EntityManager to inject "
-"EntityManager to session beans without worrying about passing the "
-"persistence unit name to the @PersistenceContext annotation. The following "
-"jboss-app.xml specifies a scoped classloader myapp:archive=myapp.ear for the "
-"EAR application."
-msgstr ""
-"jboss-app.xml 的一个常见用法是配置 EAR 文件是否应该部署在自作用域的类加载器以"
-"避免和其他应用程序的命名冲突。如果你的 EAR 应用程序部署在自作用域的类加载器里"
-"且它在 EJB3 JAR 里只定义了一个 persistence-unit,你将可以使用 "
-"@PersistenceContext EntotyManager em 来把 EntityManager 注入到 session bean "
-"里而不需要把 persistence unit 名称传递给 @PersistenceContext 注解。下面的 "
-"jboss-app.xml 为 EAR 应用程序指定了一个自作用域的类加载器 myapp:"
-"archive=myapp.ear。"
+#, no-c-format
+msgid "A common use case for jboss-app.xml is to configure whether this EAR file should be deployed in its own scoped classloader to avoid naming conflicts with other applications. If your EAR application is deployed in its own scoped classloader and it only has one persistence-unit defined in its EJB3 JARs, you will be able to use @PersistenceContext EntityManager to inject EntityManager to session beans without worrying about passing the persistence unit name to the @PersistenceContext annotation. The following jboss-app.xml specifies a scoped classloader myapp:archive=myapp.ear for the EAR application."
+msgstr "jboss-app.xml 的一个常见用法是配置 EAR 文件是否应该部署在自作用域的类加载器以避免和其他应用程序的命名冲突。如果你的 EAR 应用程序部署在自作用域的类加载器里且它在 EJB3 JAR 里只定义了一个 persistence-unit,你将可以使用 @PersistenceContext EntotyManager em 来把 EntityManager 注入到 session bean 里而不需要把 persistence unit 名称传递给 @PersistenceContext 注解。下面的 jboss-app.xml 为 EAR 应用程序指定了一个自作用域的类加载器 myapp:archive=myapp.ear。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The EAR deployment is configured by the JBOSS_DIST/server/default/deploy/ear-"
-"deploy.xml file. This file contains three attributes as follows."
-msgstr ""
-"jboss-as/server/production/deploy/ear-deploy.xml 文件配置 EAR 的部署。这个文"
-"件包含下列三个属性。"
+#, no-c-format
+msgid "The EAR deployment is configured by the JBOSS_DIST/server/default/deploy/ear-deploy.xml file. This file contains three attributes as follows."
+msgstr "JBOSS_DIST/server/production/deploy/ear-deploy.xml 文件配置 EAR 的部署。这个文件包含下列三个属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If you set the Isolated parameter to true, all EAR deployment will have "
-"scoped classloaders by default. There will be no need to define the "
-"classloader in jboss-app.xml. The CallByValue attribute specifies whether we "
-"should treat all EJB calls as remote calls. Remote calls have a large "
-"additional performance penalty compared with local call-by-reference calls, "
-"because objects involved in remote calls have to be serialized and de-"
-"serialized. For most of our applications, the WAR and EJB3 JARs are deployed "
-"on the same server, hence this value should be default to false and the "
-"server uses local call-by-reference calls to invoke EJB methods in the same "
-"JVM. The EnablelibDirectoryByDefault attribute specifies whether the lib "
-"directory in the EAR archive should be the default location for shared "
-"library JARs."
-msgstr ""
-"如果你把 Isolated 参数设置为 true,所有的 EAR 部署都将缺省具有自作用域的类加"
-"载器。这样就不需要在 jboss-app.xml 里定义类加载器。CallByValue 属性指定我们是"
-"否应该把所有 EJB 调用都当作远程调用。和本地的 call-by-reference 调用相比,远"
-"程调用要付出更大的性能代价,这是因为远程调用里涉及的对象都得序列化和解序列"
-"化。对于大多数应用程序来说,WAR 和 EJB3 JAR 都部署在相同的服务器上,因此这个"
-"值应该缺省为 false 且服务器使用本地的 call-by-reference 调用来调用相同 JVM 里"
-"的 EJB 方法。EnablelibDirectoryByDefault 属性指定 EAR 归档里的 lib 目录是否应"
-"该成为共享库 JAR 的缺省位置。"
+msgid "If you set the Isolated parameter to true, all EAR deployment will have scoped classloaders by default. There will be no need to define the classloader in jboss-app.xml. The CallByValue attribute specifies whether we should treat all EJB calls as remote calls. Remote calls have a large additional performance penalty compared with local call-by-reference calls, because objects involved in remote calls have to be serialized and de-serialized. For most of our applications, the WAR and EJB3 JARs are deployed on the same server, hence this value should be default to false and the server uses local call-by-reference calls to invoke EJB methods in the same JVM. The EnablelibDirectoryByDefault attribute specifies whether the lib directory in the EAR archive should be the default location for shared library JARs."
+msgstr "如果你把 Isolated 参数设置为 true,所有的 EAR 部署都将缺省具有自作用域的类加载器。这样就不需要在 jboss-app.xml 里定义类加载器。CallByValue 属性指定我们是否应该把所有 EJB 调用都当作远程调用。和本地的 call-by-reference 调用相比,远程调用要付出更大的性能代价,这是因为远程调用里涉及的对象都得序列化和解序列化。对于大多数应用程序来说,WAR 和 EJB3 JAR 都部署在相同的服务器上,因此这个值应该缺省为 false 且服务器使用本地的 call-by-reference 调用来调用相同 JVM 里的 EJB 方法。EnablelibDirectoryByDefault 属性指定 EAR 归档里的 lib 目录是否应该成为共享库 JAR 的缺省位置。"
 
 #, fuzzy
 #~ msgid "&gt;Enterprise Applications with EJB3 Services"
 #~ msgstr "带有 EJB3 服务的企业级应用程序"
+




More information about the jboss-cvs-commits mailing list