[jboss-cvs] JBossAS SVN: r97708 - projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Dec 10 19:50:06 EST 2009


Author: xhuang at jboss.com
Date: 2009-12-10 19:50:05 -0500 (Thu, 10 Dec 2009)
New Revision: 97708

Modified:
   projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/Feedback.po
   projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/Revision_History.po
   projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/architecture.po
   projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/basic_mapping.po
   projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/batch.po
   projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/component_mapping.po
   projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/configuration.po
   projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/example_parentchild.po
   projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/portability.po
   projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/preface.po
   projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/query_sql.po
   projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/transactions.po
   projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/tutorial.po
Log:
update

Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/Feedback.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/Feedback.po	2009-12-10 21:31:45 UTC (rev 97707)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/Feedback.po	2009-12-11 00:50:05 UTC (rev 97708)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-12-03T00:15:25\n"
-"PO-Revision-Date: 2007-02-26 10:59+1000\n"
+"PO-Revision-Date: 2009-12-11 09:49+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -17,17 +17,10 @@
 #. Tag: title
 #, no-c-format
 msgid "Feedback"
-msgstr ""
+msgstr "反馈"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If you spot a typo in this guide, or if you have thought of a way to make "
-"this manual better, we would love to hear from you! Submit a report in "
-"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
-"the Product: JBoss Enterprise Application Platform, Version: "
-"<replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</"
-"emphasis>. If you have a suggestion for improving the documentation, try to "
-"be as specific as possible. If you have found an error, include the section "
-"number and some of the surrounding text so we can find it easily."
-msgstr ""
+msgid "If you spot a typo in this guide, or if you have thought of a way to make this manual better, we would love to hear from you! Submit a report in <ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against the Product: JBoss Enterprise Application Platform, Version: <replaceable>&lt;version&gt;</replaceable>, Component: <emphasis>Doc</emphasis>. If you have a suggestion for improving the documentation, try to be as specific as possible. If you have found an error, include the section number and some of the surrounding text so we can find it easily."
+msgstr "如果你在本指南里发现了印刷错误,或者你有改进该手册的建议,我们希望听到你的声音!请提交报告到 <ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> 并指明:产品:JBoss 企业级应用程序平台, 版本:<replaceable>&lt;version&gt;</replaceable>,组件:<emphasis>Doc</emphasis>。如果是改进本文档的建议,请尽量具体化;如果是其他错误,请指出章节号以及具体的内容,这样我们就可以尽快改正。"
+

Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/Revision_History.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/Revision_History.po	2009-12-10 21:31:45 UTC (rev 97707)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/Revision_History.po	2009-12-11 00:50:05 UTC (rev 97708)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-12-03T00:15:25\n"
-"PO-Revision-Date: 2007-02-26 10:59+1000\n"
+"PO-Revision-Date: 2009-12-11 09:55+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -17,9 +17,10 @@
 #. Tag: title
 #, no-c-format
 msgid "Revision History"
-msgstr ""
+msgstr "修订历史记录"
 
 #. Tag: member
 #, no-c-format
 msgid "Initial draft."
-msgstr ""
+msgstr "初始草稿"
+

Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/architecture.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/architecture.po	2009-12-10 21:31:45 UTC (rev 97707)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/architecture.po	2009-12-11 00:50:05 UTC (rev 97708)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-12-03T00:15:25\n"
-"PO-Revision-Date: 2009-11-02 14:57+1000\n"
+"PO-Revision-Date: 2009-12-11 09:06+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -26,50 +26,28 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The diagram below provides a high-level view of the Hibernate architecture:"
+msgid "The diagram below provides a high-level view of the Hibernate architecture:"
 msgstr "下面的图表提供了 Hibernate 体系结构的高层视图:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"We do not have the scope in this document to provide a more detailed view of "
-"all the runtime architectures available; Hibernate is flexible and supports "
-"several different approaches. We will, however, show the two extremes: "
-"\"minimal\" architecture and \"comprehensive\" architecture."
-msgstr ""
-"提供 Hibernate 所有运行时体系结构的更多细节不是本文档的范畴。由于 Hibernate "
-"非常灵活,且支持多种应用方案, 所以我们这只描述一下两种极端的情况:“最"
-"小”和“全面解决”的体系结构方案。"
+msgid "We do not have the scope in this document to provide a more detailed view of all the runtime architectures available; Hibernate is flexible and supports several different approaches. We will, however, show the two extremes: \"minimal\" architecture and \"comprehensive\" architecture."
+msgstr "提供 Hibernate 所有运行时体系结构的更多细节不是本文档的范畴。由于 Hibernate 非常灵活,且支持多种应用方案, 所以我们这只描述一下两种极端的情况:“最小”和“全面解决”的体系结构方案。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"This next diagram illustrates how Hibernate utilizes database and "
-"configuration data to provide persistence services, and persistent objects, "
-"to the application."
-msgstr ""
-"下图演示了 Hibernate 如何使用数据库和配置信息来为应用程序提供持久化服务(以及"
-"持久的对象)。"
+msgid "This next diagram illustrates how Hibernate utilizes database and configuration data to provide persistence services, and persistent objects, to the application."
+msgstr "下图演示了 Hibernate 如何使用数据库和配置信息来为应用程序提供持久化服务(以及持久的对象)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The \"minimal\" architecture has the application provide its own JDBC "
-"connections and manage its own transactions. This approach uses a minimal "
-"subset of Hibernate's APIs:"
-msgstr ""
-"“最小”的体系结构方案,要求应用程序提供自己的 JDBC 连接并管理自己的事务。这种"
-"方案使用了Hibernate API 的最小子集:"
+msgid "The \"minimal\" architecture has the application provide its own JDBC connections and manage its own transactions. This approach uses a minimal subset of Hibernate's APIs:"
+msgstr "“最小”的体系结构方案,要求应用程序提供自己的 JDBC 连接并管理自己的事务。这种方案使用了Hibernate API 的最小子集:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The \"comprehensive\" architecture abstracts the application away from the "
-"underlying JDBC/JTA APIs and allows Hibernate to manage the details."
-msgstr ""
-"“全面解决”的体系结构方案,将应用层从底层的 JDBC/JTA API 中抽象出来,而让 "
-"Hibernate 来处理这些细节。"
+msgid "The \"comprehensive\" architecture abstracts the application away from the underlying JDBC/JTA APIs and allows Hibernate to manage the details."
+msgstr "“全面解决”的体系结构方案,将应用层从底层的 JDBC/JTA API 中抽象出来,而让 Hibernate 来处理这些细节。"
 
 #. Tag: para
 #, no-c-format
@@ -83,17 +61,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A threadsafe, immutable cache of compiled mappings for a single database. A "
-"factory for <literal>Session</literal> and a client of "
-"<literal>ConnectionProvider</literal>, <literal>SessionFactory</literal> can "
-"hold an optional (second-level) cache of data that is reusable between "
-"transactions at a process, or cluster, level."
-msgstr ""
-"针对单个数据库映射关系经过编译后的内存镜像,是线程安全的(不可变)。 作为 "
-"<literal>Session</literal> 的工厂和 <literal>ConnectionProvider</literal> 的"
-"客户。<literal>SessionFactory</literal> 可以在进程或集群的级别上,为那些事务"
-"之间可以重用的数据提供可选的二级缓存。"
+msgid "A threadsafe, immutable cache of compiled mappings for a single database. A factory for <literal>Session</literal> and a client of <literal>ConnectionProvider</literal>, <literal>SessionFactory</literal> can hold an optional (second-level) cache of data that is reusable between transactions at a process, or cluster, level."
+msgstr "针对单个数据库映射关系经过编译后的内存镜像,是线程安全的(不可变)。 作为 <literal>Session</literal> 的工厂和 <literal>ConnectionProvider</literal> 的客户。<literal>SessionFactory</literal> 可以在进程或集群的级别上,为那些事务之间可以重用的数据提供可选的二级缓存。"
 
 #. Tag: term
 #, no-c-format
@@ -102,17 +71,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A single-threaded, short-lived object representing a conversation between "
-"the application and the persistent store. It wraps a JDBC connection and is "
-"a factory for <literal>Transaction</literal>. <literal>Session</literal> "
-"holds a mandatory first-level cache of persistent objects that are used when "
-"navigating the object graph or looking up objects by identifier."
-msgstr ""
-"表示应用程序与持久储存层之间交互操作的一个单线程对象,此对象生存期很短。其隐"
-"藏了 JDBC 连接,也是 <literal>Transaction</literal> 的工厂。它会持有一个针对"
-"持久化对象的必选(第一级)缓存,在遍历对象图或者根据持久化标识查找对象时会用"
-"到。"
+msgid "A single-threaded, short-lived object representing a conversation between the application and the persistent store. It wraps a JDBC connection and is a factory for <literal>Transaction</literal>. <literal>Session</literal> holds a mandatory first-level cache of persistent objects that are used when navigating the object graph or looking up objects by identifier."
+msgstr "表示应用程序与持久储存层之间交互操作的一个单线程对象,此对象生存期很短。其隐藏了 JDBC 连接,也是 <literal>Transaction</literal> 的工厂。它会持有一个针对持久化对象的必选(第一级)缓存,在遍历对象图或者根据持久化标识查找对象时会用到。"
 
 #. Tag: term
 #, no-c-format
@@ -121,19 +81,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Short-lived, single threaded objects containing persistent state and "
-"business function. These can be ordinary JavaBeans/POJOs. They are "
-"associated with exactly one <literal>Session</literal>. Once the "
-"<literal>Session</literal> is closed, they will be detached and free to use "
-"in any application layer (for example, directly as data transfer objects to "
-"and from presentation)."
-msgstr ""
-"带有持久化状态的、具有业务功能的单线程对象,此对象生存期很短。这些对象可能是"
-"普通的JavaBeans/POJO,唯一特殊的是他们正与(仅仅一个)<literal>Session</"
-"literal> 相关联。一旦这个 <literal>Session</literal> 被关闭,这些对象就会脱离"
-"持久化状态,这样就可被应用程序的任何层自由使用(例如,用作跟表示层打交道的数"
-"据传输对象)。"
+msgid "Short-lived, single threaded objects containing persistent state and business function. These can be ordinary JavaBeans/POJOs. They are associated with exactly one <literal>Session</literal>. Once the <literal>Session</literal> is closed, they will be detached and free to use in any application layer (for example, directly as data transfer objects to and from presentation)."
+msgstr "带有持久化状态的、具有业务功能的单线程对象,此对象生存期很短。这些对象可能是普通的JavaBeans/POJO,唯一特殊的是他们正与(仅仅一个)<literal>Session</literal> 相关联。一旦这个 <literal>Session</literal> 被关闭,这些对象就会脱离持久化状态,这样就可被应用程序的任何层自由使用(例如,用作跟表示层打交道的数据传输对象)。"
 
 #. Tag: term
 #, no-c-format
@@ -142,15 +91,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Instances of persistent classes that are not currently associated with a "
-"<literal>Session</literal>. They may have been instantiated by the "
-"application and not yet persisted, or they may have been instantiated by a "
-"closed <literal>Session</literal>."
-msgstr ""
-"那些目前没有与 <literal>Session</literal>关联的持久化类实例。他们可能是在被应"
-"用程序实例化后,尚未进行持久化的对象。也可能是因为实例化他们的 "
-"<literal>Session</literal> 已经被关闭而脱离持久化的对象。"
+msgid "Instances of persistent classes that are not currently associated with a <literal>Session</literal>. They may have been instantiated by the application and not yet persisted, or they may have been instantiated by a closed <literal>Session</literal>."
+msgstr "那些目前没有与 <literal>Session</literal>关联的持久化类实例。他们可能是在被应用程序实例化后,尚未进行持久化的对象。也可能是因为实例化他们的 <literal>Session</literal> 已经被关闭而脱离持久化的对象。"
 
 #. Tag: term
 #, no-c-format
@@ -159,84 +101,43 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"(Optional) A single-threaded, short-lived object used by the application to "
-"specify atomic units of work. It abstracts the application from the "
-"underlying JDBC, JTA or CORBA transaction. A <literal>Session</literal> "
-"might span several <literal>Transaction</literal>s in some cases. However, "
-"transaction demarcation, either using the underlying API or "
-"<literal>Transaction</literal>, is never optional."
-msgstr ""
-"(可选的)应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很"
-"短。它通过抽象将应用从底层具体的 JDBC、JTA 以及 CORBA 事务隔离开。某些情况"
-"下,一个 <literal>Session</literal> 之内可能包含多个 <literal>Transaction</"
-"literal> 对象。尽管是否使用该对象是可选的,但无论是使用底层的 API 还是使用 "
-"<literal>Transaction</literal> 对象,事务边界的开启与关闭是必需的。 "
+msgid "(Optional) A single-threaded, short-lived object used by the application to specify atomic units of work. It abstracts the application from the underlying JDBC, JTA or CORBA transaction. A <literal>Session</literal> might span several <literal>Transaction</literal>s in some cases. However, transaction demarcation, either using the underlying API or <literal>Transaction</literal>, is never optional."
+msgstr "(可选的)应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。它通过抽象将应用从底层具体的 JDBC、JTA 以及 CORBA 事务隔离开。某些情况下,一个 <literal>Session</literal> 之内可能包含多个 <literal>Transaction</literal> 对象。尽管是否使用该对象是可选的,但无论是使用底层的 API 还是使用 <literal>Transaction</literal> 对象,事务边界的开启与关闭是必需的。 "
 
 #. Tag: term
 #, no-c-format
-msgid ""
-"ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</"
-"literal>)"
-msgstr ""
-"ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</"
-"literal>)"
+msgid "ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</literal>)"
+msgstr "ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</literal>)"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"(Optional) A factory for, and pool of, JDBC connections. It abstracts the "
-"application from underlying <literal>Datasource</literal> or "
-"<literal>DriverManager</literal>. It is not exposed to application, but it "
-"can be extended and/or implemented by the developer."
-msgstr ""
-"(可选的)生成 JDBC 连接的工厂(同时也起到连接池的作用)。它通过抽象将应用从"
-"底层的 <literal>Datasource</literal> 或 <literal>DriverManager</literal> 隔离"
-"开。仅供开发者扩展/实现用,并不开放给应用程序使用。"
+msgid "(Optional) A factory for, and pool of, JDBC connections. It abstracts the application from underlying <literal>Datasource</literal> or <literal>DriverManager</literal>. It is not exposed to application, but it can be extended and/or implemented by the developer."
+msgstr "(可选的)生成 JDBC 连接的工厂(同时也起到连接池的作用)。它通过抽象将应用从底层的 <literal>Datasource</literal> 或 <literal>DriverManager</literal> 隔离开。仅供开发者扩展/实现用,并不开放给应用程序使用。"
 
 #. Tag: term
 #, no-c-format
-msgid ""
-"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
-msgstr ""
-"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
+msgid "TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
+msgstr "TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"(Optional) A factory for <literal>Transaction</literal> instances. It is not "
-"exposed to the application, but it can be extended and/or implemented by the "
-"developer."
-msgstr ""
-"(可选的)生成 <literal>Transaction</literal> 对象实例的工厂。仅供开发者扩展/"
-"实现用,并不开发能够给应用程序使用。"
+msgid "(Optional) A factory for <literal>Transaction</literal> instances. It is not exposed to the application, but it can be extended and/or implemented by the developer."
+msgstr "(可选的)生成 <literal>Transaction</literal> 对象实例的工厂。仅供开发者扩展/实现用,并不开发能够给应用程序使用。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<emphasis>Extension Interfaces</emphasis>"
-msgstr "扩展接口"
+msgstr "<emphasis>扩展接口</emphasis>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate offers a range of optional extension interfaces you can implement "
-"to customize the behavior of your persistence layer. See the API "
-"documentation for details."
-msgstr ""
-"Hibernate 提供了很多可选的扩展接口,你可以通过实现它们来定制你的持久层的行"
-"为。具体请参考 API 文档。"
+msgid "Hibernate offers a range of optional extension interfaces you can implement to customize the behavior of your persistence layer. See the API documentation for details."
+msgstr "Hibernate 提供了很多可选的扩展接口,你可以通过实现它们来定制你的持久层的行为。具体请参考 API 文档。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Given a \"minimal\" architecture, the application bypasses the "
-"<literal>Transaction</literal>/<literal>TransactionFactory</literal> and/or "
-"<literal>ConnectionProvider</literal> APIs to communicate with JTA or JDBC "
-"directly."
-msgstr ""
-"在特定“最小”的体系结构中,应用程序可能绕过  <literal>Transaction</literal>/"
-"<literal>TransactionFactory</literal> 以及 <literal>ConnectionProvider</"
-"literal> 等 API 直接跟 JTA 或 JDBC 打交道。"
+msgid "Given a \"minimal\" architecture, the application bypasses the <literal>Transaction</literal>/<literal>TransactionFactory</literal> and/or <literal>ConnectionProvider</literal> APIs to communicate with JTA or JDBC directly."
+msgstr "在特定“最小”的体系结构中,应用程序可能绕过  <literal>Transaction</literal>/<literal>TransactionFactory</literal> 以及 <literal>ConnectionProvider</literal> 等 API 直接跟 JTA 或 JDBC 打交道。"
 
 #. Tag: title
 #, no-c-format
@@ -245,16 +146,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"An instance of a persistent class can be in one of three different states. "
-"These states are defined in relation to a <emphasis>persistence context</"
-"emphasis>. The Hibernate <literal>Session</literal> object is the "
-"persistence context. The three different states are as follows:"
-msgstr ""
-"一个持久化类的实例可能处于三种不同状态中的某一种。这三种状态的定义则与所谓的"
-"<emphasis>持久化上下文(persistence context)</emphasis>有关。Hibernate 的 "
-"<literal>Session</literal> 对象就是这个所谓的持久化上下文。这三种不同的状态如"
-"下:"
+msgid "An instance of a persistent class can be in one of three different states. These states are defined in relation to a <emphasis>persistence context</emphasis>. The Hibernate <literal>Session</literal> object is the persistence context. The three different states are as follows:"
+msgstr "一个持久化类的实例可能处于三种不同状态中的某一种。这三种状态的定义则与所谓的<emphasis>持久化上下文(persistence context)</emphasis>有关。Hibernate 的 <literal>Session</literal> 对象就是这个所谓的持久化上下文。这三种不同的状态如下:"
 
 #. Tag: term
 #, no-c-format
@@ -263,11 +156,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The instance is not associated with any persistence context. It has no "
-"persistent identity or primary key value."
-msgstr ""
-"该实例从未与任何持久化上下文关联过。它没有持久化标识(相当于主键值)。 "
+msgid "The instance is not associated with any persistence context. It has no persistent identity or primary key value."
+msgstr "该实例从未与任何持久化上下文关联过。它没有持久化标识(相当于主键值)。 "
 
 #. Tag: term
 #, no-c-format
@@ -276,16 +166,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The instance is currently associated with a persistence context. It has a "
-"persistent identity (primary key value) and can have a corresponding row in "
-"the database. For a particular persistence context, Hibernate "
-"<emphasis>guarantees</emphasis> that persistent identity is equivalent to "
-"Java identity in relation to the in-memory location of the object."
-msgstr ""
-"实例目前与某个持久化上下文有关联。它拥有持久化标识(相当于主键值),并且可能"
-"在数据库中有一个对应的行。对于某一个特定的持久化上下文,Hibernate <emphasis>"
-"保证</emphasis> 持久化标识与 Java 标识(其值代表对象在内存中的位置)等价。 "
+msgid "The instance is currently associated with a persistence context. It has a persistent identity (primary key value) and can have a corresponding row in the database. For a particular persistence context, Hibernate <emphasis>guarantees</emphasis> that persistent identity is equivalent to Java identity in relation to the in-memory location of the object."
+msgstr "实例目前与某个持久化上下文有关联。它拥有持久化标识(相当于主键值),并且可能在数据库中有一个对应的行。对于某一个特定的持久化上下文,Hibernate <emphasis>保证</emphasis> 持久化标识与 Java 标识(其值代表对象在内存中的位置)等价。 "
 
 #. Tag: term
 #, no-c-format
@@ -294,17 +176,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The instance was once associated with a persistence context, but that "
-"context was closed, or the instance was serialized to another process. It "
-"has a persistent identity and can have a corresponding row in the database. "
-"For detached instances, Hibernate does not guarantee the relationship "
-"between persistent identity and Java identity."
-msgstr ""
-"实例曾经与某个持久化上下文发生过关联,不过那个上下文被关闭了,或者这个实例是"
-"被序列化(serialize)到另外的进程。它拥有持久化标识,并且在数据库中可能存在一"
-"个对应的行。对于脱管状态的实例,Hibernate 不保证任何持久化标识和 Java 标识的"
-"关系。 "
+msgid "The instance was once associated with a persistence context, but that context was closed, or the instance was serialized to another process. It has a persistent identity and can have a corresponding row in the database. For detached instances, Hibernate does not guarantee the relationship between persistent identity and Java identity."
+msgstr "实例曾经与某个持久化上下文发生过关联,不过那个上下文被关闭了,或者这个实例是被序列化(serialize)到另外的进程。它拥有持久化标识,并且在数据库中可能存在一个对应的行。对于脱管状态的实例,Hibernate 不保证任何持久化标识和 Java 标识的关系。 "
 
 #. Tag: title
 #, no-c-format
@@ -313,79 +186,33 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"JMX is the J2EE standard for the management of Java components. Hibernate "
-"can be managed via a JMX standard service. AN MBean implementation is "
-"provided in the distribution: <literal>org.hibernate.jmx.HibernateService</"
-"literal>."
-msgstr ""
-"JMX 是管理 Java 组件的 J2EE 标准。Hibernate 可以通过一个 JMX 标准服务来管理。"
-"在这个发行版本中,我们提供了一个 MBean 接口的实现,即 <literal>org.hibernate."
-"jmx.HibernateService</literal>。 "
+msgid "JMX is the J2EE standard for the management of Java components. Hibernate can be managed via a JMX standard service. AN MBean implementation is provided in the distribution: <literal>org.hibernate.jmx.HibernateService</literal>."
+msgstr "JMX 是管理 Java 组件的 J2EE 标准。Hibernate 可以通过一个 JMX 标准服务来管理。在这个发行版本中,我们提供了一个 MBean 接口的实现,即 <literal>org.hibernate.jmx.HibernateService</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"For an example of how to deploy Hibernate as a JMX service on the JBoss "
-"Application Server, please see the JBoss User Guide. JBoss AS also provides "
-"these benefits if you deploy using JMX:"
-msgstr ""
-"想要看如何在 JBoss 应用服务器上将 Hibernate 部署为一个 JMX 服务的例子,您可以"
-"参考《JBoss 用户指南》。如果你使用 JMX 来部署 Hibernate,JBoss AS 也提供如下"
-"好处:"
+msgid "For an example of how to deploy Hibernate as a JMX service on the JBoss Application Server, please see the JBoss User Guide. JBoss AS also provides these benefits if you deploy using JMX:"
+msgstr "想要看如何在 JBoss 应用服务器上将 Hibernate 部署为一个 JMX 服务的例子,您可以参考《JBoss 用户指南》。如果你使用 JMX 来部署 Hibernate,JBoss AS 也提供如下好处:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis>Session Management</emphasis>: the Hibernate <literal>Session</"
-"literal>'s life cycle can be automatically bound to the scope of a JTA "
-"transaction. This means that you no longer have to manually open and close "
-"the <literal>Session</literal>; this becomes the job of a JBoss EJB "
-"interceptor. You also do not have to worry about transaction demarcation in "
-"your code (if you would like to write a portable persistence layer use the "
-"optional Hibernate <literal>Transaction</literal> API for this). You call "
-"the <literal>HibernateContext</literal> to access a <literal>Session</"
-"literal>."
-msgstr ""
-"<emphasis>会话管理:</emphasis> Hibernate 的 <literal>Session</literal> 对象"
-"的生命周期可以 自动跟一个 JTA 事务边界绑定。这意味着你无需手工开关 "
-"<literal>Session</literal> 了, 这项工作会由 JBoss EJB 拦截器来完成。你再也不"
-"用担心你的代码中的事务边界了(除非你想利用 Hibernate 提供可选的 "
-"<literal>Transaction</literal> API 来自己写一个便于移植的的持久层)。你通过调"
-"用 <literal>HibernateContext</literal> 来访问 <literal>Session</literal>。"
+msgid "<emphasis>Session Management</emphasis>: the Hibernate <literal>Session</literal>'s life cycle can be automatically bound to the scope of a JTA transaction. This means that you no longer have to manually open and close the <literal>Session</literal>; this becomes the job of a JBoss EJB interceptor. You also do not have to worry about transaction demarcation in your code (if you would like to write a portable persistence layer use the optional Hibernate <literal>Transaction</literal> API for this). You call the <literal>HibernateContext</literal> to access a <literal>Session</literal>."
+msgstr "<emphasis>会话管理:</emphasis> Hibernate 的 <literal>Session</literal> 对象的生命周期可以 自动跟一个 JTA 事务边界绑定。这意味着你无需手工开关 <literal>Session</literal> 了, 这项工作会由 JBoss EJB 拦截器来完成。你再也不用担心你的代码中的事务边界了(除非你想利用 Hibernate 提供可选的 <literal>Transaction</literal> API 来自己写一个便于移植的的持久层)。你通过调用 <literal>HibernateContext</literal> 来访问 <literal>Session</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis>HAR deployment</emphasis>: the Hibernate JMX service is deployed "
-"using a JBoss service deployment descriptor in an EAR and/or SAR file, as it "
-"supports all the usual configuration options of a Hibernate "
-"<literal>SessionFactory</literal>. However, you still need to name all your "
-"mapping files in the deployment descriptor. If you use the optional HAR "
-"deployment, JBoss will automatically detect all mapping files in your HAR "
-"file."
-msgstr ""
-"<emphasis>HAR 部署:</emphasis> 通常情况下,你会使用 JBoss 的服务部署描述符"
-"(在 EAR 或/和 SAR 文件中)来部署 Hibernate JMX 服务。这种部署方式支持所有常"
-"见的 Hibernate <literal>SessionFactory</literal> 的配置选项。不过,你仍需在部"
-"署描述符中,列出你所有的映射文的名字。如果你使用 HAR 部署方式, JBoss 会自动探"
-"测出你的 HAR 文件中所有的映射文件。"
+msgid "<emphasis>HAR deployment</emphasis>: the Hibernate JMX service is deployed using a JBoss service deployment descriptor in an EAR and/or SAR file, as it supports all the usual configuration options of a Hibernate <literal>SessionFactory</literal>. However, you still need to name all your mapping files in the deployment descriptor. If you use the optional HAR deployment, JBoss will automatically detect all mapping files in your HAR file."
+msgstr "<emphasis>HAR 部署:</emphasis> 通常情况下,你会使用 JBoss 的服务部署描述符(在 EAR 或/和 SAR 文件中)来部署 Hibernate JMX 服务。这种部署方式支持所有常见的 Hibernate <literal>SessionFactory</literal> 的配置选项。不过,你仍需在部署描述符中,列出你所有的映射文的名字。如果你使用 HAR 部署方式, JBoss 会自动探测出你的 HAR 文件中所有的映射文件。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Consult the JBoss AS user guide for more information about these options."
+msgid "Consult the JBoss AS user guide for more information about these options."
 msgstr "这些选项更多的描述,请参考 JBoss 应用程序用户指南。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Another feature available as a JMX service is runtime Hibernate statistics. "
-"See <xref linkend=\"configuration-optional-statistics\" /> for more "
-"information."
-msgstr ""
-"将 Hibernate 以部署为 JMX 服务的另一个好处,是可以查看 Hibernate 的运行时统计"
-"信息。参看 <xref linkend=\"configuration-optional-statistics\"/>。"
+#, no-c-format
+msgid "Another feature available as a JMX service is runtime Hibernate statistics. See <xref linkend=\"configuration-optional-statistics\" /> for more information."
+msgstr "将 Hibernate 以部署为 JMX 服务的另一个好处,是可以查看 Hibernate 的运行时统计信息。参看 <xref linkend=\"configuration-optional-statistics\"/>。 "
 
 #. Tag: title
 #, no-c-format
@@ -394,13 +221,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate can also be configured as a JCA connector. Please see the website "
-"for more information. Please note, however, that at this stage Hibernate JCA "
-"support is under development."
-msgstr ""
-"Hibernate 也可以被配置为一个 JCA 连接器(JCA connector)。更多信息请参看网"
-"站。请注意,Hibernate 对 JCA 的支持,仍处于实验性阶段。"
+msgid "Hibernate can also be configured as a JCA connector. Please see the website for more information. Please note, however, that at this stage Hibernate JCA support is under development."
+msgstr "Hibernate 也可以被配置为一个 JCA 连接器(JCA connector)。更多信息请参看网站。请注意,Hibernate 对 JCA 的支持,仍处于实验性阶段。"
 
 #. Tag: title
 #, no-c-format
@@ -409,155 +231,46 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Most applications using Hibernate need some form of \"contextual\" session, "
-"where a given session is in effect throughout the scope of a given context. "
-"However, across applications the definition of what constitutes a context is "
-"typically different; different contexts define different scopes to the "
-"notion of current. Applications using Hibernate prior to version 3.0 tended "
-"to utilize either home-grown <literal>ThreadLocal</literal>-based contextual "
-"sessions, helper classes such as <literal>HibernateUtil</literal>, or "
-"utilized third-party frameworks, such as Spring or Pico, which provided "
-"proxy/interception-based contextual sessions."
-msgstr ""
-"使用 Hibernate 的大多数应用程序需要某种形式的“上下文相关的”会话,特定的会话在"
-"整个特定的上下文范围内始终有效。然而,对不同类型的应用程序而言,要为什么是组"
-"成这种“上下文”下一个定义通常是困难的;不同的上下文对“当前”这个概念定义了不同"
-"的范围。在 3.0 版本之前,使用 Hibernate 的程序要么采用自行编写的基于 "
-"<literal>ThreadLocal</literal> 的上下文会话,要么采用 "
-"<literal>HibernateUtil</literal> 这样的辅助类,要么采用第三方框架(比如 "
-"Spring 或 Pico),它们提供了基于代理(proxy)或者基于拦截器(interception)的"
-"上下文相关的会话。"
+msgid "Most applications using Hibernate need some form of \"contextual\" session, where a given session is in effect throughout the scope of a given context. However, across applications the definition of what constitutes a context is typically different; different contexts define different scopes to the notion of current. Applications using Hibernate prior to version 3.0 tended to utilize either home-grown <literal>ThreadLocal</literal>-based contextual sessions, helper classes such as <literal>HibernateUtil</literal>, or utilized third-party frameworks, such as Spring or Pico, which provided proxy/interception-based contextual sessions."
+msgstr "使用 Hibernate 的大多数应用程序需要某种形式的“上下文相关的”会话,特定的会话在整个特定的上下文范围内始终有效。然而,对不同类型的应用程序而言,要为什么是组成这种“上下文”下一个定义通常是困难的;不同的上下文对“当前”这个概念定义了不同的范围。在 3.0 版本之前,使用 Hibernate 的程序要么采用自行编写的基于 <literal>ThreadLocal</literal> 的上下文会话,要么采用 <literal>HibernateUtil</literal> 这样的辅助类,要么采用第三方框架(比如 Spring 或 Pico),它们提供了基于代理(proxy)或者基于拦截器(interception)的上下文相关的会话。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Starting with version 3.0.1, Hibernate added the <literal>SessionFactory."
-"getCurrentSession()</literal> method. Initially, this assumed usage of "
-"<literal>JTA</literal> transactions, where the <literal>JTA</literal> "
-"transaction defined both the scope and context of a current session. Given "
-"the maturity of the numerous stand-alone <literal>JTA TransactionManager</"
-"literal> implementations, most, if not all, applications should be using "
-"<literal>JTA</literal> transaction management, whether or not they are "
-"deployed into a <literal>J2EE</literal> container. Based on that, the "
-"<literal>JTA</literal>-based contextual sessions are all you need to use."
-msgstr ""
-"从 3.0.1 版本开始,Hibernate 增加了 <literal>SessionFactory.getCurrentSession"
-"()</literal> 方法。一开始,它假定了采用 <literal>JTA</literal> 事务,"
-"<literal>JTA</literal> 事务定义了当前 session 的范围和上下文(scope 和 "
-"context)。因为有好几个独立的 <literal>JTA TransactionManager</literal> 实现"
-"稳定可用,不论是否被部署到一个 <literal>J2EE</literal> 容器中,大多数(假若不"
-"是所有的)应用程序都应该采用 <literal>JTA</literal> 事务管理。基于这一点,采"
-"用 <literal>JTA</literal> 的上下文相关的会话可以满足你一切需要。"
+msgid "Starting with version 3.0.1, Hibernate added the <literal>SessionFactory.getCurrentSession()</literal> method. Initially, this assumed usage of <literal>JTA</literal> transactions, where the <literal>JTA</literal> transaction defined both the scope and context of a current session. Given the maturity of the numerous stand-alone <literal>JTA TransactionManager</literal> implementations, most, if not all, applications should be using <literal>JTA</literal> transaction management, whether or not they are deployed into a <literal>J2EE</literal> container. Based on that, the <literal>JTA</literal>-based contextual sessions are all you need to use."
+msgstr "从 3.0.1 版本开始,Hibernate 增加了 <literal>SessionFactory.getCurrentSession()</literal> 方法。一开始,它假定了采用 <literal>JTA</literal> 事务,<literal>JTA</literal> 事务定义了当前 session 的范围和上下文(scope 和 context)。因为有好几个独立的 <literal>JTA TransactionManager</literal> 实现稳定可用,不论是否被部署到一个 <literal>J2EE</literal> 容器中,大多数(假若不是所有的)应用程序都应该采用 <literal>JTA</literal> 事务管理。基于这一点,采用 <literal>JTA</literal> 的上下文相关的会话可以满足你一切需要。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"However, as of version 3.1, the processing behind <literal>SessionFactory."
-"getCurrentSession()</literal> is now pluggable. To that end, a new extension "
-"interface, <literal>org.hibernate.context.CurrentSessionContext</literal>, "
-"and a new configuration parameter, <literal>hibernate."
-"current_session_context_class</literal>, have been added to allow "
-"pluggability of the scope and context of defining current sessions."
-msgstr ""
-"更好的是,从 3.1 开始,<literal>SessionFactory.getCurrentSession()</literal> "
-"的后台实现是可拔插的。因此,我们引入了新的扩展接口(<literal>org.hibernate."
-"context.CurrentSessionContext</literal>)和新的配置参数(<literal>hibernate."
-"current_session_context_class</literal>),以便对什么是当前会话的范围"
-"(scope)和上下文(context)的定义进行拔插。"
+msgid "However, as of version 3.1, the processing behind <literal>SessionFactory.getCurrentSession()</literal> is now pluggable. To that end, a new extension interface, <literal>org.hibernate.context.CurrentSessionContext</literal>, and a new configuration parameter, <literal>hibernate.current_session_context_class</literal>, have been added to allow pluggability of the scope and context of defining current sessions."
+msgstr "更好的是,从 3.1 开始,<literal>SessionFactory.getCurrentSession()</literal> 的后台实现是可拔插的。因此,我们引入了新的扩展接口(<literal>org.hibernate.context.CurrentSessionContext</literal>)和新的配置参数(<literal>hibernate.current_session_context_class</literal>),以便对什么是当前会话的范围(scope)和上下文(context)的定义进行拔插。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"See the Javadocs for the <literal>org.hibernate.context."
-"CurrentSessionContext</literal> interface for a detailed discussion of its "
-"contract. It defines a single method, <literal>currentSession()</literal>, "
-"by which the implementation is responsible for tracking the current "
-"contextual session. Out-of-the-box, Hibernate comes with three "
-"implementations of this interface:"
-msgstr ""
-"请参阅 <literal>org.hibernate.context.CurrentSessionContext</literal> 接口的 "
-"Javadoc,那里有关于它的契约的详细讨论。它定义了单一的方法,"
-"<literal>currentSession()</literal>,特定的实现用它来负责跟踪当前的上下文相关"
-"的会话。Hibernate 内置了此接口的三种实现:"
+msgid "See the Javadocs for the <literal>org.hibernate.context.CurrentSessionContext</literal> interface for a detailed discussion of its contract. It defines a single method, <literal>currentSession()</literal>, by which the implementation is responsible for tracking the current contextual session. Out-of-the-box, Hibernate comes with three implementations of this interface:"
+msgstr "请参阅 <literal>org.hibernate.context.CurrentSessionContext</literal> 接口的 Javadoc,那里有关于它的契约的详细讨论。它定义了单一的方法,<literal>currentSession()</literal>,特定的实现用它来负责跟踪当前的上下文相关的会话。Hibernate 内置了此接口的三种实现:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>org.hibernate.context.JTASessionContext</literal>: current sessions "
-"are tracked and scoped by a <literal>JTA</literal> transaction. The "
-"processing here is exactly the same as in the older JTA-only approach. See "
-"the Javadocs for details."
-msgstr ""
-"<literal>org.hibernate.context.JTASessionContext</literal>:当前会话根据 "
-"<literal>JTA</literal> 来跟踪和界定。这和以前的仅支持 JTA 的方法是完全一样"
-"的。详情请参阅 Javadoc。"
+msgid "<literal>org.hibernate.context.JTASessionContext</literal>: current sessions are tracked and scoped by a <literal>JTA</literal> transaction. The processing here is exactly the same as in the older JTA-only approach. See the Javadocs for details."
+msgstr "<literal>org.hibernate.context.JTASessionContext</literal>:当前会话根据 <literal>JTA</literal> 来跟踪和界定。这和以前的仅支持 JTA 的方法是完全一样的。详情请参阅 Javadoc。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>org.hibernate.context.ThreadLocalSessionContext</literal>:current "
-"sessions are tracked by thread of execution. See the Javadocs for details."
-msgstr ""
-"<literal>org.hibernate.context.ThreadLocalSessionContext</literal>:当前会话"
-"通过当前执行的线程来跟踪和界定。详情也请参阅 Javadoc。"
+msgid "<literal>org.hibernate.context.ThreadLocalSessionContext</literal>:current sessions are tracked by thread of execution. See the Javadocs for details."
+msgstr "<literal>org.hibernate.context.ThreadLocalSessionContext</literal>:当前会话通过当前执行的线程来跟踪和界定。详情也请参阅 Javadoc。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>org.hibernate.context.ManagedSessionContext</literal>: current "
-"sessions are tracked by thread of execution. However, you are responsible to "
-"bind and unbind a <literal>Session</literal> instance with static methods on "
-"this class: it does not open, flush, or close a <literal>Session</literal>."
-msgstr ""
-"<literal>org.hibernate.context.ManagedSessionContext</literal>:当前会话通过"
-"当前执行的线程来跟踪和界定。但是,你需要负责使用这个类的静态方法将 "
-"<literal>Session</literal> 实例绑定、或者取消绑定,它并不会打开(open)、"
-"flush 或者关闭(close)任何 <literal>Session</literal>。"
+msgid "<literal>org.hibernate.context.ManagedSessionContext</literal>: current sessions are tracked by thread of execution. However, you are responsible to bind and unbind a <literal>Session</literal> instance with static methods on this class: it does not open, flush, or close a <literal>Session</literal>."
+msgstr "<literal>org.hibernate.context.ManagedSessionContext</literal>:当前会话通过当前执行的线程来跟踪和界定。但是,你需要负责使用这个类的静态方法将 <literal>Session</literal> 实例绑定、或者取消绑定,它并不会打开(open)、flush 或者关闭(close)任何 <literal>Session</literal>。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The first two implementations provide a \"one session - one database "
-"transaction\" programming model. This is also also known and used as "
-"<emphasis>session-per-request</emphasis>. The beginning and end of a "
-"Hibernate session is defined by the duration of a database transaction. If "
-"you use programmatic transaction demarcation in plain JSE without JTA, you "
-"are advised to use the Hibernate <literal>Transaction</literal> API to hide "
-"the underlying transaction system from your code. If you use JTA, you can "
-"utilize the JTA interfaces to demarcate transactions. If you execute in an "
-"EJB container that supports CMT, transaction boundaries are defined "
-"declaratively and you do not need any transaction or session demarcation "
-"operations in your code. Refer to <xref linkend=\"transactions\" /> for more "
-"information and code examples."
-msgstr ""
-"前两种实现都提供了“one session - one database transaction”的编程模型,也称作 "
-"<emphasis>session-per-request</emphasis>。Hibernate session 的起始和终结由数"
-"据库事务的生存来控制。假若你在纯粹的 Java SE之上采用自行编写代码来管理事务,"
-"而不使用 JTA,建议你使用 Hibernate <literal>Transaction</literal> API 来把底"
-"层事务实现从你的代码中隐藏掉。如果你使用 JTA,请使用 JTA 接口来对事务限界。如"
-"果你在支持 CMT 的 EJB 容器中执行代码,事务边界是声明式定义的,你不需要在代码"
-"中进行任何事务或会话管理操作。请参阅 <xref linkend=\"transactions\"/> 一节来"
-"阅读更多的内容和示例代码。"
+#, no-c-format
+msgid "The first two implementations provide a \"one session - one database transaction\" programming model. This is also also known and used as <emphasis>session-per-request</emphasis>. The beginning and end of a Hibernate session is defined by the duration of a database transaction. If you use programmatic transaction demarcation in plain JSE without JTA, you are advised to use the Hibernate <literal>Transaction</literal> API to hide the underlying transaction system from your code. If you use JTA, you can utilize the JTA interfaces to demarcate transactions. If you execute in an EJB container that supports CMT, transaction boundaries are defined declaratively and you do not need any transaction or session demarcation operations in your code. Refer to <xref linkend=\"transactions\" /> for more information and code examples."
+msgstr "前两种实现都提供了“one session - one database transaction”的编程模型,也称作 <emphasis>session-per-request</emphasis>。Hibernate session 的起始和终结由数据库事务的生存来控制。假若你在纯粹的 Java SE之上采用自行编写代码来管理事务,而不使用 JTA,建议你使用 Hibernate <literal>Transaction</literal> API 来把底层事务实现从你的代码中隐藏掉。如果你使用 JTA,请使用 JTA 接口来对事务限界。如果你在支持 CMT 的 EJB 容器中执行代码,事务边界是声明式定义的,你不需要在代码中进行任何事务或会话管理操作。请参阅 <xref linkend=\"transactions\"/> 一节来阅读更多的内容和示例代码。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>hibernate.current_session_context_class</literal> configuration "
-"parameter defines which <literal>org.hibernate.context."
-"CurrentSessionContext</literal> implementation should be used. For backwards "
-"compatibility, if this configuration parameter is not set but a <literal>org."
-"hibernate.transaction.TransactionManagerLookup</literal> is configured, "
-"Hibernate will use the <literal>org.hibernate.context.JTASessionContext</"
-"literal>. Typically, the value of this parameter would just name the "
-"implementation class to use. For the three out-of-the-box implementations, "
-"however, there are three corresponding short names: \"jta\", \"thread\", and "
-"\"managed\"."
-msgstr ""
-"<literal>hibernate.current_session_context_class</literal> 配置参数定义了应该"
-"采用哪个 <literal>org.hibernate.context.CurrentSessionContext</literal> 实"
-"现。注意,为了向下兼容,如果未配置此参数,但是存在 <literal>org.hibernate."
-"transaction.TransactionManagerLookup</literal> 的配置,Hibernate 会采用"
-"<literal>org.hibernate.context.JTASessionContext</literal>。一般而言,此参数"
-"的值指明了要使用的实现类的全名,但那三种内置的实现可以使用简写,即 \"jta\"、"
-"\"thread\" 和 \"managed\"。 "
+msgid "The <literal>hibernate.current_session_context_class</literal> configuration parameter defines which <literal>org.hibernate.context.CurrentSessionContext</literal> implementation should be used. For backwards compatibility, if this configuration parameter is not set but a <literal>org.hibernate.transaction.TransactionManagerLookup</literal> is configured, Hibernate will use the <literal>org.hibernate.context.JTASessionContext</literal>. Typically, the value of this parameter would just name the implementation class to use. For the three out-of-the-box implementations, however, there are three corresponding short names: \"jta\", \"thread\", and \"managed\"."
+msgstr "<literal>hibernate.current_session_context_class</literal> 配置参数定义了应该采用哪个 <literal>org.hibernate.context.CurrentSessionContext</literal> 实现。注意,为了向下兼容,如果未配置此参数,但是存在 <literal>org.hibernate.transaction.TransactionManagerLookup</literal> 的配置,Hibernate 会采用<literal>org.hibernate.context.JTASessionContext</literal>。一般而言,此参数的值指明了要使用的实现类的全名,但那三种内置的实现可以使用简写,即 \"jta\"、\"thread\" 和 \"managed\"。 "
+

Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/basic_mapping.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/basic_mapping.po	2009-12-10 21:31:45 UTC (rev 97707)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/basic_mapping.po	2009-12-11 00:50:05 UTC (rev 97708)
@@ -7,7 +7,7 @@
 "Project-Id-Version: basic_mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-12-03T00:15:25\n"
-"PO-Revision-Date: 2009-11-23 09:52+1000\n"
+"PO-Revision-Date: 2009-12-11 09:27+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -27,25 +27,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Object/relational mappings are usually defined in an XML document. The "
-"mapping document is designed to be readable and hand-editable. The mapping "
-"language is Java-centric, meaning that mappings are constructed around "
-"persistent class declarations and not table declarations."
-msgstr ""
-"对象和关系数据库之间的映射通常是用一个 XML 文档来定义的。这个映射文档被设计为"
-"易读的,并且可以手工修改。映射语言是以 Java 为中心,这意味着映射文档是按照持"
-"久化类的定义来创建的,而非表的定义。 "
+msgid "Object/relational mappings are usually defined in an XML document. The mapping document is designed to be readable and hand-editable. The mapping language is Java-centric, meaning that mappings are constructed around persistent class declarations and not table declarations."
+msgstr "对象和关系数据库之间的映射通常是用一个 XML 文档来定义的。这个映射文档被设计为易读的,并且可以手工修改。映射语言是以 Java 为中心,这意味着映射文档是按照持久化类的定义来创建的,而非表的定义。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Please note that even though many Hibernate users choose to write the XML by "
-"hand, a number of tools exist to generate the mapping document. These "
-"include XDoclet, Middlegen and AndroMDA."
-msgstr ""
-"请注意,虽然很多 Hibernate 用户选择手写 XML 映射文档,但也有一些工具可以用来"
-"生成映射文档,包括 XDoclet、Middlegen 和 AndroMDA。"
+msgid "Please note that even though many Hibernate users choose to write the XML by hand, a number of tools exist to generate the mapping document. These include XDoclet, Middlegen and AndroMDA."
+msgstr "请注意,虽然很多 Hibernate 用户选择手写 XML 映射文档,但也有一些工具可以用来生成映射文档,包括 XDoclet、Middlegen 和 AndroMDA。"
 
 #. Tag: para
 #, no-c-format
@@ -54,16 +42,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"We will now discuss the content of the mapping document. We will only "
-"describe, however, the document elements and attributes that are used by "
-"Hibernate at runtime. The mapping document also contains some extra optional "
-"attributes and elements that affect the database schemas exported by the "
-"schema export tool (for example, the <literal> not-null</literal> attribute)."
-msgstr ""
-"我们现在开始讨论映射文档的内容。我们只描述 Hibernate 在运行时用到的文档元素和"
-"属性。映射文档还包括一些额外的可选属性和元素,它们在使用 schema 导出工具的时"
-"候会影响导出的数据库 schema 结果(比如,<literal>not-null</literal> 属性)。"
+msgid "We will now discuss the content of the mapping document. We will only describe, however, the document elements and attributes that are used by Hibernate at runtime. The mapping document also contains some extra optional attributes and elements that affect the database schemas exported by the schema export tool (for example, the <literal> not-null</literal> attribute)."
+msgstr "我们现在开始讨论映射文档的内容。我们只描述 Hibernate 在运行时用到的文档元素和属性。映射文档还包括一些额外的可选属性和元素,它们在使用 schema 导出工具的时候会影响导出的数据库 schema 结果(比如,<literal>not-null</literal> 属性)。"
 
 #. Tag: title
 #, no-c-format
@@ -72,19 +52,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"All XML mappings should declare the doctype shown. The actual DTD can be "
-"found at the URL above, in the directory <literal>hibernate-x.x.x/src/org/"
-"hibernate </literal>, or in <literal>hibernate3.jar</literal>. Hibernate "
-"will always look for the DTD in its classpath first. If you experience "
-"lookups of the DTD using an Internet connection, check the DTD declaration "
-"against the contents of your classpath."
-msgstr ""
-"所有的 XML 映射都需要定义如上所示的 doctype。DTD 可以从上述 URL 中获取,也可"
-"以从 <literal>hibernate-x.x.x/src/org/hibernate </literal> 目录中、或 "
-"<literal>hibernate.jar</literal> 文件中找到。Hibernate 总是会首先在它的 "
-"classptah 中搜索 DTD 文件。如果你发现它是通过连接 Internet 查找 DTD 文件,就"
-"对照你的 classpath 目录检查 XML 文件里的 DTD 声明。"
+msgid "All XML mappings should declare the doctype shown. The actual DTD can be found at the URL above, in the directory <literal>hibernate-x.x.x/src/org/hibernate </literal>, or in <literal>hibernate3.jar</literal>. Hibernate will always look for the DTD in its classpath first. If you experience lookups of the DTD using an Internet connection, check the DTD declaration against the contents of your classpath."
+msgstr "所有的 XML 映射都需要定义如上所示的 doctype。DTD 可以从上述 URL 中获取,也可以从 <literal>hibernate-x.x.x/src/org/hibernate </literal> 目录中、或 <literal>hibernate.jar</literal> 文件中找到。Hibernate 总是会首先在它的 classptah 中搜索 DTD 文件。如果你发现它是通过连接 Internet 查找 DTD 文件,就对照你的 classpath 目录检查 XML 文件里的 DTD 声明。"
 
 #. Tag: title
 #, no-c-format
@@ -93,44 +62,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate will first attempt to resolve DTDs in its classpath. It does this "
-"is by registering a custom <literal>org.xml.sax.EntityResolver</literal> "
-"implementation with the SAXReader it uses to read in the xml files. This "
-"custom <literal>EntityResolver</literal> recognizes two different systemId "
-"namespaces:"
-msgstr ""
-"Hibernate 首先试图在其 classpath 中解析 DTD。这是依靠在系统中注册的 "
-"<literal>org.xml.sax.EntityResolver</literal> 的一个具体实现,SAXReader 依靠"
-"它来读取 xml 文件。这个自定义的 <literal>EntityResolver</literal> 能辨认两种"
-"不同的 systenId 命名空间:"
+msgid "Hibernate will first attempt to resolve DTDs in its classpath. It does this is by registering a custom <literal>org.xml.sax.EntityResolver</literal> implementation with the SAXReader it uses to read in the xml files. This custom <literal>EntityResolver</literal> recognizes two different systemId namespaces:"
+msgstr "Hibernate 首先试图在其 classpath 中解析 DTD。这是依靠在系统中注册的 <literal>org.xml.sax.EntityResolver</literal> 的一个具体实现,SAXReader 依靠它来读取 xml 文件。这个自定义的 <literal>EntityResolver</literal> 能辨认两种不同的 systenId 命名空间:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"a <literal>hibernate namespace</literal> is recognized whenever the resolver "
-"encounters a systemId starting with <literal>http://hibernate.sourceforge."
-"net/</literal>. The resolver attempts to resolve these entities via the "
-"classloader which loaded the Hibernate classes."
-msgstr ""
-"若 resolver 遇到了一个以 <literal>http://hibernate.sourceforge.net/</"
-"literal> 为开头的 systemId,它会辨认出是 <literal>hibernate namespace</"
-"literal>,resolver 就试图通过加载 Hibernate 类的 classloader 来查找这些实"
-"体。 "
+msgid "a <literal>hibernate namespace</literal> is recognized whenever the resolver encounters a systemId starting with <literal>http://hibernate.sourceforge.net/</literal>. The resolver attempts to resolve these entities via the classloader which loaded the Hibernate classes."
+msgstr "若 resolver 遇到了一个以 <literal>http://hibernate.sourceforge.net/</literal> 为开头的 systemId,它会辨认出是 <literal>hibernate namespace</literal>,resolver 就试图通过加载 Hibernate 类的 classloader 来查找这些实体。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"a <literal>user namespace</literal> is recognized whenever the resolver "
-"encounters a systemId using a <literal>classpath://</literal> URL protocol. "
-"The resolver will attempt to resolve these entities via (1) the current "
-"thread context classloader and (2) the classloader which loaded the "
-"Hibernate classes."
-msgstr ""
-"若 resolver 遇到了一个使用 <literal>classpath://</literal> URL 协议的 "
-"systemId,它会辨认出这是 <literal>user namespace</literal>,resolver 试图通过"
-"(1) 当前线程上下文的 classloader 和(2) 加载 Hibernate class 的 classloader "
-"来查找这些实体。"
+msgid "a <literal>user namespace</literal> is recognized whenever the resolver encounters a systemId using a <literal>classpath://</literal> URL protocol. The resolver will attempt to resolve these entities via (1) the current thread context classloader and (2) the classloader which loaded the Hibernate classes."
+msgstr "若 resolver 遇到了一个使用 <literal>classpath://</literal> URL 协议的 systemId,它会辨认出这是 <literal>user namespace</literal>,resolver 试图通过(1) 当前线程上下文的 classloader 和(2) 加载 Hibernate class 的 classloader 来查找这些实体。"
 
 #. Tag: para
 #, no-c-format
@@ -138,14 +81,9 @@
 msgstr "下面是一个使用用户命名空间(user namespace)的例子:"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Where <literal>types.xml</literal> is a resource in the <literal>your."
-"domain</literal> package and contains a custom <xref linkend=\"mapping-types-"
-"custom\" />."
-msgstr ""
-"这里的 <literal>types.xml</literal> 是 <literal>your.domain</literal> 包中的"
-"一个资源,它包含了一个自定义的 <xref linkend=\"mapping-types-custom\"/>。"
+#, no-c-format
+msgid "Where <literal>types.xml</literal> is a resource in the <literal>your.domain</literal> package and contains a custom <xref linkend=\"mapping-types-custom\" />."
+msgstr "这里的 <literal>types.xml</literal> 是 <literal>your.domain</literal> 包中的一个资源,它包含了一个自定义的 <xref linkend=\"mapping-types-custom\"/>。 "
 
 #. Tag: title
 #, no-c-format
@@ -154,25 +92,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"This element has several optional attributes. The <literal>schema</literal> "
-"and <literal>catalog</literal> attributes specify that tables referred to in "
-"this mapping belong to the named schema and/or catalog. If they are "
-"specified, tablenames will be qualified by the given schema and catalog "
-"names. If they are missing, tablenames will be unqualified. The "
-"<literal>default-cascade</literal> attribute specifies what cascade style "
-"should be assumed for properties and collections that do not specify a "
-"<literal>cascade</literal> attribute. By default, the <literal>auto-import</"
-"literal> attribute allows you to use unqualified class names in the query "
-"language."
-msgstr ""
-"这个元素包括一些可选的属性。<literal>schema</literal> 和 <literal>catalog</"
-"literal> 属性, 指明了这个映射所连接(refer)的表所在的 schema 和/或 catalog "
-"名称。假若指定了这个属性,表名会加上所指定的 schema 和 catalog 的名字扩展为全"
-"限定名。假若没有指定,表名就不会使用全限定名。<literal>default-cascade</"
-"literal> 指定了未明确注明 <literal>cascade</literal> 属性的 Java 属性和 集合"
-"类 Hibernate 会采取什么样的默认级联风格。<literal>auto-import</literal> 属性"
-"默认让我们在查询语言中可以使用非全限定名的类名。"
+msgid "This element has several optional attributes. The <literal>schema</literal> and <literal>catalog</literal> attributes specify that tables referred to in this mapping belong to the named schema and/or catalog. If they are specified, tablenames will be qualified by the given schema and catalog names. If they are missing, tablenames will be unqualified. The <literal>default-cascade</literal> attribute specifies what cascade style should be assumed for properties and collections that do not specify a <literal>cascade</literal> attribute. By default, the <literal>auto-import</literal> attribute allows you to use unqualified class names in the query language."
+msgstr "这个元素包括一些可选的属性。<literal>schema</literal> 和 <literal>catalog</literal> 属性, 指明了这个映射所连接(refer)的表所在的 schema 和/或 catalog 名称。假若指定了这个属性,表名会加上所指定的 schema 和 catalog 的名字扩展为全限定名。假若没有指定,表名就不会使用全限定名。<literal>default-cascade</literal> 指定了未明确注明 <literal>cascade</literal> 属性的 Java 属性和 集合类 Hibernate 会采取什么样的默认级联风格。<literal>auto-import</literal> 属性默认让我们在查询语言中可以使用非全限定名的类名。"
 
 #. Tag: para
 #, no-c-format
@@ -186,81 +107,38 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>default-cascade</literal> (optional - defaults to <literal>none</"
-"literal>): a default cascade style."
-msgstr ""
-"<literal>default-cascade</literal>(可选 — 默认为 <literal>none</literal>):"
-"默认的级联风格。 "
+msgid "<literal>default-cascade</literal> (optional - defaults to <literal>none</literal>): a default cascade style."
+msgstr "<literal>default-cascade</literal>(可选 — 默认为 <literal>none</literal>):默认的级联风格。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>default-access</literal> (optional - defaults to <literal>property</"
-"literal>): the strategy Hibernate should use for accessing all properties. "
-"It can be a custom implementation of <literal>PropertyAccessor</literal>."
-msgstr ""
-"<literal>default-access</literal>(可选 — 默认为 <literal>property</"
-"literal>):Hibernate 用来访问所有属性的策略。可以通过实现 "
-"<literal>PropertyAccessor</literal> 接口自定义。 "
+msgid "<literal>default-access</literal> (optional - defaults to <literal>property</literal>): the strategy Hibernate should use for accessing all properties. It can be a custom implementation of <literal>PropertyAccessor</literal>."
+msgstr "<literal>default-access</literal>(可选 — 默认为 <literal>property</literal>):Hibernate 用来访问所有属性的策略。可以通过实现 <literal>PropertyAccessor</literal> 接口自定义。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>default-lazy</literal> (optional - defaults to <literal>true</"
-"literal>): the default value for unspecified <literal>lazy</literal> "
-"attributes of class and collection mappings."
-msgstr ""
-"<literal>default-lazy</literal>(可选 — 默认为 <literal>true</literal>):指"
-"定了未明确注明 <literal>lazy</literal> 属性的 Java 属性和集合类,Hibernate 会"
-"采取什么样的默认加载风格。 "
+msgid "<literal>default-lazy</literal> (optional - defaults to <literal>true</literal>): the default value for unspecified <literal>lazy</literal> attributes of class and collection mappings."
+msgstr "<literal>default-lazy</literal>(可选 — 默认为 <literal>true</literal>):指定了未明确注明 <literal>lazy</literal> 属性的 Java 属性和集合类,Hibernate 会采取什么样的默认加载风格。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>auto-import</literal> (optional - defaults to <literal>true</"
-"literal>): specifies whether we can use unqualified class names of classes "
-"in this mapping in the query language."
-msgstr ""
-"<literal>auto-import</literal>(可选 — 默认为 <literal>true</literal>):指定"
-"我们是否可以在查询语言中使用非全限定的类名(仅限于本映射文件中的类)。 "
+msgid "<literal>auto-import</literal> (optional - defaults to <literal>true</literal>): specifies whether we can use unqualified class names of classes in this mapping in the query language."
+msgstr "<literal>auto-import</literal>(可选 — 默认为 <literal>true</literal>):指定我们是否可以在查询语言中使用非全限定的类名(仅限于本映射文件中的类)。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>package</literal> (optional): specifies a package prefix to use for "
-"unqualified class names in the mapping document."
-msgstr ""
-"<literal>package</literal>(可选):指定一个包前缀,如果在映射文档中没有指定"
-"全限定的类名,就使用这个作为包名。 "
+msgid "<literal>package</literal> (optional): specifies a package prefix to use for unqualified class names in the mapping document."
+msgstr "<literal>package</literal>(可选):指定一个包前缀,如果在映射文档中没有指定全限定的类名,就使用这个作为包名。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If you have two persistent classes with the same unqualified name, you "
-"should set <literal>auto-import=\"false\"</literal>. An exception will "
-"result if you attempt to assign two classes to the same \"imported\" name."
-msgstr ""
-"假若你有两个持久化类,它们的非全限定名是一样的(就是两个类的名字一样,所在的"
-"包不一样 — 译者注),你应该设置 <literal>auto-import=\"false\"</literal>。如"
-"果你把一个“导入过”的名字同时对应两个类,Hibernate 会抛出一个异常。"
+msgid "If you have two persistent classes with the same unqualified name, you should set <literal>auto-import=\"false\"</literal>. An exception will result if you attempt to assign two classes to the same \"imported\" name."
+msgstr "假若你有两个持久化类,它们的非全限定名是一样的(就是两个类的名字一样,所在的包不一样 — 译者注),你应该设置 <literal>auto-import=\"false\"</literal>。如果你把一个“导入过”的名字同时对应两个类,Hibernate 会抛出一个异常。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>hibernate-mapping</literal> element allows you to nest several "
-"persistent <literal>&lt;class&gt;</literal> mappings, as shown above. It is, "
-"however, good practice (and expected by some tools) to map only a single "
-"persistent class, or a single class hierarchy, in one mapping file and name "
-"it after the persistent superclass. For example, <literal>Cat.hbm.xml</"
-"literal>, <literal>Dog.hbm.xml</literal>, or if using inheritance, "
-"<literal>Animal.hbm.xml</literal>."
-msgstr ""
-"注意 <literal>hibernate-mapping</literal> 元素允许你嵌套多个如上所示的 "
-"<literal>&lt;class&gt;</literal> 映射。但是最好的做法(也许一些工具需要的)是"
-"一个持久化类(或一个类的继承层次)对应一个映射文件,并以持久化的超类名称命"
-"名,例如:<literal>Cat.hbm.xml</literal>、<literal>Dog.hbm.xml</literal>,或"
-"者如果使用继承,<literal>Animal.hbm.xml</literal>。"
+msgid "The <literal>hibernate-mapping</literal> element allows you to nest several persistent <literal>&lt;class&gt;</literal> mappings, as shown above. It is, however, good practice (and expected by some tools) to map only a single persistent class, or a single class hierarchy, in one mapping file and name it after the persistent superclass. For example, <literal>Cat.hbm.xml</literal>, <literal>Dog.hbm.xml</literal>, or if using inheritance, <literal>Animal.hbm.xml</literal>."
+msgstr "注意 <literal>hibernate-mapping</literal> 元素允许你嵌套多个如上所示的 <literal>&lt;class&gt;</literal> 映射。但是最好的做法(也许一些工具需要的)是一个持久化类(或一个类的继承层次)对应一个映射文件,并以持久化的超类名称命名,例如:<literal>Cat.hbm.xml</literal>、<literal>Dog.hbm.xml</literal>,或者如果使用继承,<literal>Animal.hbm.xml</literal>。"
 
 #. Tag: title
 #, no-c-format
@@ -269,351 +147,153 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You can declare a persistent class using the <literal>class</literal> "
-"element. For example:"
+msgid "You can declare a persistent class using the <literal>class</literal> element. For example:"
 msgstr "你可以使用 <literal>class</literal> 元素来定义一个持久化类。例如:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>name</literal> (optional): the fully qualified Java class name of "
-"the persistent class or interface. If this attribute is missing, it is "
-"assumed that the mapping is for a non-POJO entity."
-msgstr ""
-"<literal>name</literal>(可选):持久化类(或者接口)的 Java 全限定名。 如果"
-"这个属性不存在,Hibernate 将假定这是一个非 POJO 的实体映射。 "
+msgid "<literal>name</literal> (optional): the fully qualified Java class name of the persistent class or interface. If this attribute is missing, it is assumed that the mapping is for a non-POJO entity."
+msgstr "<literal>name</literal>(可选):持久化类(或者接口)的 Java 全限定名。 如果这个属性不存在,Hibernate 将假定这是一个非 POJO 的实体映射。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>table</literal> (optional - defaults to the unqualified class "
-"name): the name of its database table."
-msgstr ""
-"<literal>table</literal>(可选 — 默认是类的非全限定名):对应的数据库表名。 "
+msgid "<literal>table</literal> (optional - defaults to the unqualified class name): the name of its database table."
+msgstr "<literal>table</literal>(可选 — 默认是类的非全限定名):对应的数据库表名。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>discriminator-value</literal> (optional - defaults to the class "
-"name): a value that distinguishes individual subclasses that is used for "
-"polymorphic behavior. Acceptable values include <literal>null</literal> and "
-"<literal>not null</literal>."
-msgstr ""
-"<literal>discriminator-value</literal>(可选 — 默认和类名一样):一个用于区分"
-"不同的子类的值,在多态行为时使用。它可以接受的值包括 <literal>null</literal> "
-"和 <literal>not null</literal>。 "
+msgid "<literal>discriminator-value</literal> (optional - defaults to the class name): a value that distinguishes individual subclasses that is used for polymorphic behavior. Acceptable values include <literal>null</literal> and <literal>not null</literal>."
+msgstr "<literal>discriminator-value</literal>(可选 — 默认和类名一样):一个用于区分不同的子类的值,在多态行为时使用。它可以接受的值包括 <literal>null</literal> 和 <literal>not null</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>mutable</literal> (optional - defaults to <literal>true</literal>): "
-"specifies that instances of the class are (not) mutable."
-msgstr ""
-"<literal>mutable</literal>(可选,默认值为 <literal>true</literal>):表明该"
-"类的实例是可变的或者不可变的。 "
+msgid "<literal>mutable</literal> (optional - defaults to <literal>true</literal>): specifies that instances of the class are (not) mutable."
+msgstr "<literal>mutable</literal>(可选,默认值为 <literal>true</literal>):表明该类的实例是可变的或者不可变的。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>schema</literal> (optional): overrides the schema name specified by "
-"the root <literal>&lt;hibernate-mapping&gt;</literal> element."
-msgstr ""
-"<literal>schema</literal>(可选):覆盖在根 <literal>&lt;hibernate-"
-"mapping&gt;</literal> 元素中指定的 schema 名字。 "
+msgid "<literal>schema</literal> (optional): overrides the schema name specified by the root <literal>&lt;hibernate-mapping&gt;</literal> element."
+msgstr "<literal>schema</literal>(可选):覆盖在根 <literal>&lt;hibernate-mapping&gt;</literal> 元素中指定的 schema 名字。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>catalog</literal> (optional): overrides the catalog name specified "
-"by the root <literal>&lt;hibernate-mapping&gt;</literal> element."
-msgstr ""
-"<literal>catalog</literal>(可选):覆盖在根 <literal>&lt;hibernate-"
-"mapping&gt;</literal> 元素中指定的 catalog 名字。 "
+msgid "<literal>catalog</literal> (optional): overrides the catalog name specified by the root <literal>&lt;hibernate-mapping&gt;</literal> element."
+msgstr "<literal>catalog</literal>(可选):覆盖在根 <literal>&lt;hibernate-mapping&gt;</literal> 元素中指定的 catalog 名字。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>proxy</literal> (optional): specifies an interface to use for lazy "
-"initializing proxies. You can specify the name of the class itself."
-msgstr ""
-"<literal>proxy</literal>(可选):指定一个接口,在延迟装载时作为代理使用。你"
-"可以在这里使用该类自己的名字。 "
+msgid "<literal>proxy</literal> (optional): specifies an interface to use for lazy initializing proxies. You can specify the name of the class itself."
+msgstr "<literal>proxy</literal>(可选):指定一个接口,在延迟装载时作为代理使用。你可以在这里使用该类自己的名字。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>dynamic-update</literal> (optional - defaults to <literal>false</"
-"literal>): specifies that <literal>UPDATE</literal> SQL should be generated "
-"at runtime and can contain only those columns whose values have changed."
-msgstr ""
-"<literal>dynamic-update</literal>(可选,默认为 <literal>false</literal>):"
-"指定用于 <literal>UPDATE</literal> 的 SQL 将会在运行时动态生成,并且只更新那"
-"些改变过的字段。 "
+msgid "<literal>dynamic-update</literal> (optional - defaults to <literal>false</literal>): specifies that <literal>UPDATE</literal> SQL should be generated at runtime and can contain only those columns whose values have changed."
+msgstr "<literal>dynamic-update</literal>(可选,默认为 <literal>false</literal>):指定用于 <literal>UPDATE</literal> 的 SQL 将会在运行时动态生成,并且只更新那些改变过的字段。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>dynamic-insert</literal> (optional - defaults to <literal>false</"
-"literal>): specifies that <literal>INSERT</literal> SQL should be generated "
-"at runtime and contain only the columns whose values are not null."
-msgstr ""
-"<literal>dynamic-insert</literal>(可选,默认为 <literal>false</literal>):"
-"指定用于 <literal>INSERT</literal> 的 SQL 将会在运行时动态生成,并且只包含那"
-"些非空值字段。 "
+msgid "<literal>dynamic-insert</literal> (optional - defaults to <literal>false</literal>): specifies that <literal>INSERT</literal> SQL should be generated at runtime and contain only the columns whose values are not null."
+msgstr "<literal>dynamic-insert</literal>(可选,默认为 <literal>false</literal>):指定用于 <literal>INSERT</literal> 的 SQL 将会在运行时动态生成,并且只包含那些非空值字段。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>select-before-update</literal> (optional - defaults to "
-"<literal>false</literal>): specifies that Hibernate should <emphasis>never</"
-"emphasis> perform an SQL <literal>UPDATE</literal> unless it is certain that "
-"an object is actually modified. Only when a transient object has been "
-"associated with a new session using <literal>update()</literal>, will "
-"Hibernate perform an extra SQL <literal>SELECT</literal> to determine if an "
-"<literal>UPDATE</literal> is actually required."
-msgstr ""
-"<literal>select-before-update</literal>(可选,默认为 <literal>false</"
-"literal>):指定 Hibernate 除非确定对象真正被修改了(如果该值为 true — 译"
-"注),否则<emphasis>不会</emphasis>执行 SQL <literal>UPDATE</literal> 操作。"
-"在特定场合(实际上,它只在一个瞬时对象(transient object)关联到一个新的 "
-"session 中时执行的 update() 中生效),这说明 Hibernate 会在 <literal>UPDATE</"
-"literal> 之前执行一次额外的 SQL <literal>SELECT</literal> 操作来决定是否确实"
-"需要执行 <literal>UPDATE</literal>。"
+msgid "<literal>select-before-update</literal> (optional - defaults to <literal>false</literal>): specifies that Hibernate should <emphasis>never</emphasis> perform an SQL <literal>UPDATE</literal> unless it is certain that an object is actually modified. Only when a transient object has been associated with a new session using <literal>update()</literal>, will Hibernate perform an extra SQL <literal>SELECT</literal> to determine if an <literal>UPDATE</literal> is actually required."
+msgstr "<literal>select-before-update</literal>(可选,默认为 <literal>false</literal>):指定 Hibernate 除非确定对象真正被修改了(如果该值为 true — 译注),否则<emphasis>不会</emphasis>执行 SQL <literal>UPDATE</literal> 操作。在特定场合(实际上,它只在一个瞬时对象(transient object)关联到一个新的 session 中时执行的 update() 中生效),这说明 Hibernate 会在 <literal>UPDATE</literal> 之前执行一次额外的 SQL <literal>SELECT</literal> 操作来决定是否确实需要执行 <literal>UPDATE</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>polymorphism</literal> (optional - defaults to <literal>implicit</"
-"literal>): determines whether implicit or explicit query polymorphism is "
-"used."
-msgstr ""
-"<literal>polymorphism(多态)</literal>(可选,默认值为 <literal>implicit "
-"(隐式)</literal>):界定是隐式还是显式的使用多态查询(这只在 Hibernate 的具"
-"体表继承策略中用到 — 译注)。 "
+msgid "<literal>polymorphism</literal> (optional - defaults to <literal>implicit</literal>): determines whether implicit or explicit query polymorphism is used."
+msgstr "<literal>polymorphism(多态)</literal>(可选,默认值为 <literal>implicit (隐式)</literal>):界定是隐式还是显式的使用多态查询(这只在 Hibernate 的具体表继承策略中用到 — 译注)。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>where</literal> (optional): specifies an arbitrary SQL "
-"<literal>WHERE</literal> condition to be used when retrieving objects of "
-"this class."
-msgstr ""
-"<literal>where</literal>(可选)指定一个附加的 SQL <literal>WHERE</literal> "
-"条件,在抓取这个类的对象时会一直增加这个条件。 "
+msgid "<literal>where</literal> (optional): specifies an arbitrary SQL <literal>WHERE</literal> condition to be used when retrieving objects of this class."
+msgstr "<literal>where</literal>(可选)指定一个附加的 SQL <literal>WHERE</literal> 条件,在抓取这个类的对象时会一直增加这个条件。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>persister</literal> (optional): specifies a custom "
-"<literal>ClassPersister</literal>."
-msgstr ""
-"<literal>persister</literal>(可选):指定一个定制的 "
-"<literal>ClassPersister</literal>。 "
+msgid "<literal>persister</literal> (optional): specifies a custom <literal>ClassPersister</literal>."
+msgstr "<literal>persister</literal>(可选):指定一个定制的 <literal>ClassPersister</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>batch-size</literal> (optional - defaults to <literal>1</literal>): "
-"specifies a \"batch size\" for fetching instances of this class by "
-"identifier."
-msgstr ""
-"<literal>batch-size</literal>(可选,默认是 <literal>1</literal>)指定一个用"
-"于 根据标识符(identifier)抓取实例时使用的 \"batch size\"(批次抓取数量)。 "
+msgid "<literal>batch-size</literal> (optional - defaults to <literal>1</literal>): specifies a \"batch size\" for fetching instances of this class by identifier."
+msgstr "<literal>batch-size</literal>(可选,默认是 <literal>1</literal>)指定一个用于 根据标识符(identifier)抓取实例时使用的 \"batch size\"(批次抓取数量)。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>optimistic-lock</literal> (optional - defaults to <literal>version</"
-"literal>): determines the optimistic locking strategy."
-msgstr ""
-"<literal>optimistic-lock(乐观锁定)</literal>(可选,默认是 "
-"<literal>version</literal>):决定乐观锁定的策略。 "
+msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>version</literal>): determines the optimistic locking strategy."
+msgstr "<literal>optimistic-lock(乐观锁定)</literal>(可选,默认是 <literal>version</literal>):决定乐观锁定的策略。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>lazy</literal> (optional): lazy fetching can be disabled by setting "
-"<literal>lazy=\"false\"</literal>."
-msgstr ""
-"<literal>lazy</literal>(可选):通过设置 <literal>lazy=\"false\"</literal>,"
-"所有的延迟加载(Lazy fetching)功能将被全部禁用(disabled)。"
+msgid "<literal>lazy</literal> (optional): lazy fetching can be disabled by setting <literal>lazy=\"false\"</literal>."
+msgstr "<literal>lazy</literal>(可选):通过设置 <literal>lazy=\"false\"</literal>,所有的延迟加载(Lazy fetching)功能将被全部禁用(disabled)。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>entity-name</literal> (optional - defaults to the class name): "
-"Hibernate3 allows a class to be mapped multiple times, potentially to "
-"different tables. It also allows entity mappings that are represented by "
-"Maps or XML at the Java level. In these cases, you should provide an "
-"explicit arbitrary name for the entity. See <xref linkend=\"persistent-"
-"classes-dynamicmodels\" /> and <xref linkend=\"xml\" /> for more information."
-msgstr ""
-"<literal>entity-name</literal>(可选,默认为类名):Hibernate3 允许一个类进行"
-"多次映射(前提是映射到不同的表),并且允许使用 Maps 或 XML 代替 Java 层次的实"
-"体映射(也就是实现动态领域模型,不用写持久化类-译注)。更多信息请看 <xref "
-"linkend=\"persistent-classes-dynamicmodels\"/> 和 <xref linkend=\"xml\"/>。"
+#, no-c-format
+msgid "<literal>entity-name</literal> (optional - defaults to the class name): Hibernate3 allows a class to be mapped multiple times, potentially to different tables. It also allows entity mappings that are represented by Maps or XML at the Java level. In these cases, you should provide an explicit arbitrary name for the entity. See <xref linkend=\"persistent-classes-dynamicmodels\" /> and <xref linkend=\"xml\" /> for more information."
+msgstr "<literal>entity-name</literal>(可选,默认为类名):Hibernate3 允许一个类进行多次映射(前提是映射到不同的表),并且允许使用 Maps 或 XML 代替 Java 层次的实体映射(也就是实现动态领域模型,不用写持久化类-译注)。更多信息请看 <xref linkend=\"persistent-classes-dynamicmodels\"/> 和 <xref linkend=\"xml\"/>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>check</literal> (optional): an SQL expression used to generate a "
-"multi-row <emphasis>check</emphasis> constraint for automatic schema "
-"generation."
-msgstr ""
-"<literal>check</literal>(可选):这是一个 SQL 表达式, 用于为自动生成的 "
-"schema 添加多行(multi-row)约束<emphasis>检查</emphasis>。 "
+msgid "<literal>check</literal> (optional): an SQL expression used to generate a multi-row <emphasis>check</emphasis> constraint for automatic schema generation."
+msgstr "<literal>check</literal>(可选):这是一个 SQL 表达式, 用于为自动生成的 schema 添加多行(multi-row)约束<emphasis>检查</emphasis>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>rowid</literal> (optional): Hibernate can use ROWIDs on databases. "
-"On Oracle, for example, Hibernate can use the <literal>rowid</literal> extra "
-"column for fast updates once this option has been set to <literal>rowid</"
-"literal>. A ROWID is an implementation detail and represents the physical "
-"location of a stored tuple."
-msgstr ""
-"<literal>rowid</literal>(可选):Hibernate 可以使用数据库支持的所谓的 "
-"ROWIDs,例如:Oracle 数据库,如果你设置这个可选的 <literal>rowid</literal>,"
-"Hibernate 可以使用额外的字段 <literal>rowid</literal> 实现快速更新。ROWID 是"
-"这个功能实现的重点,它代表了一个存储元组(tuple)的物理位置。 "
+msgid "<literal>rowid</literal> (optional): Hibernate can use ROWIDs on databases. On Oracle, for example, Hibernate can use the <literal>rowid</literal> extra column for fast updates once this option has been set to <literal>rowid</literal>. A ROWID is an implementation detail and represents the physical location of a stored tuple."
+msgstr "<literal>rowid</literal>(可选):Hibernate 可以使用数据库支持的所谓的 ROWIDs,例如:Oracle 数据库,如果你设置这个可选的 <literal>rowid</literal>,Hibernate 可以使用额外的字段 <literal>rowid</literal> 实现快速更新。ROWID 是这个功能实现的重点,它代表了一个存储元组(tuple)的物理位置。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>subselect</literal> (optional): maps an immutable and read-only "
-"entity to a database subselect. This is useful if you want to have a view "
-"instead of a base table. See below for more information."
-msgstr ""
-"<literal>subselect</literal>(可选):它将一个不可变(immutable)并且只读的实"
-"体映射到一个数据库的子查询中。当你想用视图代替一张基本表的时候,这是有用的,"
-"但最好不要这样做。更多的介绍请看下面内容。 "
+msgid "<literal>subselect</literal> (optional): maps an immutable and read-only entity to a database subselect. This is useful if you want to have a view instead of a base table. See below for more information."
+msgstr "<literal>subselect</literal>(可选):它将一个不可变(immutable)并且只读的实体映射到一个数据库的子查询中。当你想用视图代替一张基本表的时候,这是有用的,但最好不要这样做。更多的介绍请看下面内容。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>abstract</literal> (optional): is used to mark abstract "
-"superclasses in <literal>&lt;union-subclass&gt;</literal> hierarchies."
-msgstr ""
-"<literal>abstract</literal>(可选):用于在 <literal>&lt;union-subclass&gt;</"
-"literal> 的层次结构(hierarchies)中标识抽象超类。"
+msgid "<literal>abstract</literal> (optional): is used to mark abstract superclasses in <literal>&lt;union-subclass&gt;</literal> hierarchies."
+msgstr "<literal>abstract</literal>(可选):用于在 <literal>&lt;union-subclass&gt;</literal> 的层次结构(hierarchies)中标识抽象超类。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"It is acceptable for the named persistent class to be an interface. You can "
-"declare implementing classes of that interface using the <literal>&lt;"
-"subclass&gt;</literal> element. You can persist any <emphasis>static</"
-"emphasis> inner class. Specify the class name using the standard form i.e. "
-"<literal>e.g.Foo$Bar</literal>."
-msgstr ""
-"若指明的持久化类实际上是一个接口,这也是完全可以接受的。之后你可以用元素 "
-"<literal>&lt;subclass&gt;</literal> 来指定该接口的实际实现类。你可以持久化任"
-"何 <emphasis>static</emphasis>(静态的)内部类。你应该使用标准的类名格式来指"
-"定类名,比如:<literal>Foo$Bar</literal>。"
+msgid "It is acceptable for the named persistent class to be an interface. You can declare implementing classes of that interface using the <literal>&lt;subclass&gt;</literal> element. You can persist any <emphasis>static</emphasis> inner class. Specify the class name using the standard form i.e. <literal>e.g.Foo$Bar</literal>."
+msgstr "若指明的持久化类实际上是一个接口,这也是完全可以接受的。之后你可以用元素 <literal>&lt;subclass&gt;</literal> 来指定该接口的实际实现类。你可以持久化任何 <emphasis>static</emphasis>(静态的)内部类。你应该使用标准的类名格式来指定类名,比如:<literal>Foo$Bar</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Immutable classes, <literal>mutable=\"false\"</literal>, cannot be updated "
-"or deleted by the application. This allows Hibernate to make some minor "
-"performance optimizations."
-msgstr ""
-"不可变类,<literal>mutable=\"false\"</literal> 不可以被应用程序更新或者删除。"
-"这允许 Hibernate 实现一些小小的性能优化。"
+msgid "Immutable classes, <literal>mutable=\"false\"</literal>, cannot be updated or deleted by the application. This allows Hibernate to make some minor performance optimizations."
+msgstr "不可变类,<literal>mutable=\"false\"</literal> 不可以被应用程序更新或者删除。这允许 Hibernate 实现一些小小的性能优化。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The optional <literal>proxy</literal> attribute enables lazy initialization "
-"of persistent instances of the class. Hibernate will initially return CGLIB "
-"proxies that implement the named interface. The persistent object will load "
-"when a method of the proxy is invoked. See \"Initializing collections and "
-"proxies\" below."
-msgstr ""
-"可选的 <literal>proxy</literal> 属性允许延迟加载类的持久化实例。Hibernate 开"
-"始会返回实现了这个命名接口的 CGLIB 代理。当代理的某个方法被实际调用的时候,真"
-"实的持久化对象才会被装载。参见下面的“用于延迟装载的代理”。 "
+msgid "The optional <literal>proxy</literal> attribute enables lazy initialization of persistent instances of the class. Hibernate will initially return CGLIB proxies that implement the named interface. The persistent object will load when a method of the proxy is invoked. See \"Initializing collections and proxies\" below."
+msgstr "可选的 <literal>proxy</literal> 属性允许延迟加载类的持久化实例。Hibernate 开始会返回实现了这个命名接口的 CGLIB 代理。当代理的某个方法被实际调用的时候,真实的持久化对象才会被装载。参见下面的“用于延迟装载的代理”。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis>Implicit</emphasis> polymorphism means that instances of the class "
-"will be returned by a query that names any superclass or implemented "
-"interface or class, and that instances of any subclass of the class will be "
-"returned by a query that names the class itself. <emphasis>Explicit</"
-"emphasis> polymorphism means that class instances will be returned only by "
-"queries that explicitly name that class. Queries that name the class will "
-"return only instances of subclasses mapped inside this <literal>&lt;class&gt;"
-"</literal> declaration as a <literal>&lt;subclass&gt;</literal> or "
-"<literal>&lt;joined-subclass&gt;</literal>. For most purposes, the default "
-"<literal>polymorphism=\"implicit\"</literal> is appropriate. Explicit "
-"polymorphism is useful when two different classes are mapped to the same "
-"table This allows a \"lightweight\" class that contains a subset of the "
-"table columns."
-msgstr ""
-"<emphasis>Implicit</emphasis>(隐式)的多态是指,如果查询时给出的是任何超类、"
-"该类实现的接口或者该类的名字,都会返回这个类的实例;如果查询中给出的是子类的"
-"名字,则会返回子类的实例。<emphasis>Explicit</emphasis>(显式)的多态是指,只"
-"有在查询时给出明确的该类名字时才会返回这个类的实例; 同时只有在这个 "
-"<literal>&lt;class&gt;</literal> 的定义中作为 <literal>&lt;subclass&gt;</"
-"literal> 或者 <literal>&lt;joined-subclass&gt;</literal> 出现的子类,才会可能"
-"返回。在大多数情况下,默认的 <literal>polymorphism=\"implicit\"</literal> 都"
-"是合适的。显式的多态在有两个不同的类映射到同一个表的时候很有用。(允许一个“轻"
-"量级”的类,只包含部分表字段)。 "
+msgid "<emphasis>Implicit</emphasis> polymorphism means that instances of the class will be returned by a query that names any superclass or implemented interface or class, and that instances of any subclass of the class will be returned by a query that names the class itself. <emphasis>Explicit</emphasis> polymorphism means that class instances will be returned only by queries that explicitly name that class. Queries that name the class will return only instances of subclasses mapped inside this <literal>&lt;class&gt;</literal> declaration as a <literal>&lt;subclass&gt;</literal> or <literal>&lt;joined-subclass&gt;</literal>. For most purposes, the default <literal>polymorphism=\"implicit\"</literal> is appropriate. Explicit polymorphism is useful when two different classes are mapped to the same table This allows a \"lightweight\" class that contains a subset of the table columns."
+msgstr "<emphasis>Implicit</emphasis>(隐式)的多态是指,如果查询时给出的是任何超类、该类实现的接口或者该类的名字,都会返回这个类的实例;如果查询中给出的是子类的名字,则会返回子类的实例。<emphasis>Explicit</emphasis>(显式)的多态是指,只有在查询时给出明确的该类名字时才会返回这个类的实例; 同时只有在这个 <literal>&lt;class&gt;</literal> 的定义中作为 <literal>&lt;subclass&gt;</literal> 或者 <literal>&lt;joined-subclass&gt;</literal> 出现的子类,才会可能返回。在大多数情况下,默认的 <literal>polymorphism=\"implicit\"</literal> 都是合适的。显式的多态在有两个不同的类映射到同一个表的时候很有用。(允许一个“轻量级”的类,只包含部分表字段)。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>persister</literal> attribute lets you customize the "
-"persistence strategy used for the class. You can, for example, specify your "
-"own subclass of <literal>org.hibernate.persister.EntityPersister</literal>, "
-"or you can even provide a completely new implementation of the interface "
-"<literal>org.hibernate.persister.ClassPersister</literal> that implements, "
-"for example, persistence via stored procedure calls, serialization to flat "
-"files or LDAP. See <literal>org.hibernate.test.CustomPersister</literal> for "
-"a simple example of \"persistence\" to a <literal>Hashtable</literal>."
-msgstr ""
-"<literal>persister</literal> 属性可以让你定制这个类使用的持久化策略。你可以指"
-"定你自己实现 <literal>org.hibernate.persister.EntityPersister</literal> 的子"
-"类,你甚至可以完全从头开始编写一个 <literal>org.hibernate.persister."
-"ClassPersister</literal> 接口的实现,比如是用储存过程调用、序列化到文件或者 "
-"LDAP 数据库来实现。参阅 <literal>org.hibernate.test.CustomPersister</"
-"literal>,这是持久化到 <literal>Hashtable</literal> 的一个简单例子。 "
+msgid "The <literal>persister</literal> attribute lets you customize the persistence strategy used for the class. You can, for example, specify your own subclass of <literal>org.hibernate.persister.EntityPersister</literal>, or you can even provide a completely new implementation of the interface <literal>org.hibernate.persister.ClassPersister</literal> that implements, for example, persistence via stored procedure calls, serialization to flat files or LDAP. See <literal>org.hibernate.test.CustomPersister</literal> for a simple example of \"persistence\" to a <literal>Hashtable</literal>."
+msgstr "<literal>persister</literal> 属性可以让你定制这个类使用的持久化策略。你可以指定你自己实现 <literal>org.hibernate.persister.EntityPersister</literal> 的子类,你甚至可以完全从头开始编写一个 <literal>org.hibernate.persister.ClassPersister</literal> 接口的实现,比如是用储存过程调用、序列化到文件或者 LDAP 数据库来实现。参阅 <literal>org.hibernate.test.CustomPersister</literal>,这是持久化到 <literal>Hashtable</literal> 的一个简单例子。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>dynamic-update</literal> and <literal>dynamic-insert</literal> "
-"settings are not inherited by subclasses, so they can also be specified on "
-"the <literal>&lt;subclass&gt;</literal> or <literal>&lt;joined-subclass&gt;</"
-"literal> elements. Although these settings can increase performance in some "
-"cases, they can actually decrease performance in others."
-msgstr ""
-"请注意 <literal>dynamic-update</literal> 和 <literal>dynamic-insert</"
-"literal> 的设置并不会继承到子类,所以在 <literal>&lt;subclass&gt;</literal> "
-"或者 <literal>&lt;joined-subclass&gt;</literal> 元素中可能需要再次设置。这些"
-"设置在某些情况下能够提高效率,而其他情况下则反而可能降低性能。"
+msgid "The <literal>dynamic-update</literal> and <literal>dynamic-insert</literal> settings are not inherited by subclasses, so they can also be specified on the <literal>&lt;subclass&gt;</literal> or <literal>&lt;joined-subclass&gt;</literal> elements. Although these settings can increase performance in some cases, they can actually decrease performance in others."
+msgstr "请注意 <literal>dynamic-update</literal> 和 <literal>dynamic-insert</literal> 的设置并不会继承到子类,所以在 <literal>&lt;subclass&gt;</literal> 或者 <literal>&lt;joined-subclass&gt;</literal> 元素中可能需要再次设置。这些设置在某些情况下能够提高效率,而其他情况下则反而可能降低性能。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Use of <literal>select-before-update</literal> will usually decrease "
-"performance. It is useful to prevent a database update trigger being called "
-"unnecessarily if you reattach a graph of detached instances to a "
-"<literal>Session</literal>."
-msgstr ""
-"使用 <literal>select-before-update</literal> 通常会降低性能。如果你重新连接一"
-"个脱管(detached)对象实例 到一个 <literal>Session</literal> 中时,它可以防止"
-"数据库不必要的触发 update。这就很有用了。"
+msgid "Use of <literal>select-before-update</literal> will usually decrease performance. It is useful to prevent a database update trigger being called unnecessarily if you reattach a graph of detached instances to a <literal>Session</literal>."
+msgstr "使用 <literal>select-before-update</literal> 通常会降低性能。如果你重新连接一个脱管(detached)对象实例 到一个 <literal>Session</literal> 中时,它可以防止数据库不必要的触发 update。这就很有用了。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If you enable <literal>dynamic-update</literal>, you will have a choice of "
-"optimistic locking strategies:"
-msgstr ""
-"如果你打开了<literal>dynamic-update</literal>,你可以选择几种乐观锁定的策略:"
+msgid "If you enable <literal>dynamic-update</literal>, you will have a choice of optimistic locking strategies:"
+msgstr "如果你打开了<literal>dynamic-update</literal>,你可以选择几种乐观锁定的策略:"
 
 #. Tag: para
 #, no-c-format
@@ -627,11 +307,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>dirty</literal>: check the changed columns, allowing some "
-"concurrent updates"
-msgstr ""
-"<literal>dirty(脏检查)</literal>:只检察修改过的字段,允许某些并行更新"
+msgid "<literal>dirty</literal>: check the changed columns, allowing some concurrent updates"
+msgstr "<literal>dirty(脏检查)</literal>:只检察修改过的字段,允许某些并行更新"
 
 #. Tag: para
 #, no-c-format
@@ -640,126 +317,68 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"It is <emphasis>strongly</emphasis> recommended that you use version/"
-"timestamp columns for optimistic locking with Hibernate. This strategy "
-"optimizes performance and correctly handles modifications made to detached "
-"instances (i.e. when <literal>Session.merge()</literal> is used)."
-msgstr ""
-"我们<emphasis>强烈</emphasis>建议你在 Hibernate 中使用 version/timestamp 字段"
-"来进行乐观锁定。这个选择可以优化性能,且能够处理对脱管实例的修改(例如:在使"
-"用 <literal>Session.merge()</literal> 的时候)。"
+msgid "It is <emphasis>strongly</emphasis> recommended that you use version/timestamp columns for optimistic locking with Hibernate. This strategy optimizes performance and correctly handles modifications made to detached instances (i.e. when <literal>Session.merge()</literal> is used)."
+msgstr "我们<emphasis>强烈</emphasis>建议你在 Hibernate 中使用 version/timestamp 字段来进行乐观锁定。这个选择可以优化性能,且能够处理对脱管实例的修改(例如:在使用 <literal>Session.merge()</literal> 的时候)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"There is no difference between a view and a base table for a Hibernate "
-"mapping. This is transparent at the database level, although some DBMS do "
-"not support views properly, especially with updates. Sometimes you want to "
-"use a view, but you cannot create one in the database (i.e. with a legacy "
-"schema). In this case, you can map an immutable and read-only entity to a "
-"given SQL subselect expression:"
-msgstr ""
-"对 Hibernate 映射来说视图和表是没有区别的,这是因为它们在数据层都是透明的"
-"( 注意:一些数据库不支持视图属性,特别是更新的时候)。有时你想使用视图,但却"
-"不能在数据库中创建它(例如:在遗留的 schema 中)。这样的话,你可以映射一个不"
-"可变的(immutable)并且是 只读的实体到一个给定的 SQL 子查询表达式: "
+msgid "There is no difference between a view and a base table for a Hibernate mapping. This is transparent at the database level, although some DBMS do not support views properly, especially with updates. Sometimes you want to use a view, but you cannot create one in the database (i.e. with a legacy schema). In this case, you can map an immutable and read-only entity to a given SQL subselect expression:"
+msgstr "对 Hibernate 映射来说视图和表是没有区别的,这是因为它们在数据层都是透明的( 注意:一些数据库不支持视图属性,特别是更新的时候)。有时你想使用视图,但却不能在数据库中创建它(例如:在遗留的 schema 中)。这样的话,你可以映射一个不可变的(immutable)并且是 只读的实体到一个给定的 SQL 子查询表达式: "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Declare the tables to synchronize this entity with, ensuring that auto-flush "
-"happens correctly and that queries against the derived entity do not return "
-"stale data. The <literal>&lt;subselect&gt;</literal> is available both as an "
-"attribute and a nested mapping element."
-msgstr ""
-"定义这个实体用到的表为同步(synchronize),确保自动刷新(auto-flush)正确执"
-"行,并且依赖原实体的查询不会返回过期数据。在属性元素和嵌套映射元素中都可使用 "
-"<literal>&lt;subselect&gt;</literal>。"
+msgid "Declare the tables to synchronize this entity with, ensuring that auto-flush happens correctly and that queries against the derived entity do not return stale data. The <literal>&lt;subselect&gt;</literal> is available both as an attribute and a nested mapping element."
+msgstr "定义这个实体用到的表为同步(synchronize),确保自动刷新(auto-flush)正确执行,并且依赖原实体的查询不会返回过期数据。在属性元素和嵌套映射元素中都可使用 <literal>&lt;subselect&gt;</literal>。"
 
 #. Tag: title
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "id"
-msgstr "uuid"
+msgstr "id"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Mapped classes <emphasis>must</emphasis> declare the primary key column of "
-"the database table. Most classes will also have a JavaBeans-style property "
-"holding the unique identifier of an instance. The <literal>&lt;id&gt;</"
-"literal> element defines the mapping from that property to the primary key "
-"column."
-msgstr ""
-"被映射的类<emphasis>必须</emphasis>定义对应数据库表主键字段。大多数类有一个 "
-"JavaBeans 风格的属性, 为每一个实例包含唯一的标识。<literal>&lt;id&gt;</"
-"literal> 元素定义了该属性到数据库表主键字段的映射。"
+msgid "Mapped classes <emphasis>must</emphasis> declare the primary key column of the database table. Most classes will also have a JavaBeans-style property holding the unique identifier of an instance. The <literal>&lt;id&gt;</literal> element defines the mapping from that property to the primary key column."
+msgstr "被映射的类<emphasis>必须</emphasis>定义对应数据库表主键字段。大多数类有一个 JavaBeans 风格的属性, 为每一个实例包含唯一的标识。<literal>&lt;id&gt;</literal> 元素定义了该属性到数据库表主键字段的映射。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>name</literal> (optional): the name of the identifier property."
+msgid "<literal>name</literal> (optional): the name of the identifier property."
 msgstr "<literal>name</literal>(可选):标识属性的名字。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>type</literal> (optional): a name that indicates the Hibernate type."
+msgid "<literal>type</literal> (optional): a name that indicates the Hibernate type."
 msgstr "<literal>type</literal>(可选):一个 Hibernate 类型的名字。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>column</literal> (optional - defaults to the property name): the "
-"name of the primary key column."
+msgid "<literal>column</literal> (optional - defaults to the property name): the name of the primary key column."
 msgstr "<literal>column</literal>(可选 — 默认为属性名):主键字段的名字。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>unsaved-value</literal> (optional - defaults to a \"sensible\" "
-"value): an identifier property value that indicates an instance is newly "
-"instantiated (unsaved), distinguishing it from detached instances that were "
-"saved or loaded in a previous session."
-msgstr ""
-"<literal>unsaved-value</literal>(可选 — 默认为一个切合实际(sensible)的"
-"值):一个特定的标识属性值,用来标志该实例是刚刚创建的,尚未保存。这可以把这"
-"种实例和从以前的 session 中装载过(可能又做过修改--译者注)但未再次持久化的实"
-"例区分开来。 "
+msgid "<literal>unsaved-value</literal> (optional - defaults to a \"sensible\" value): an identifier property value that indicates an instance is newly instantiated (unsaved), distinguishing it from detached instances that were saved or loaded in a previous session."
+msgstr "<literal>unsaved-value</literal>(可选 — 默认为一个切合实际(sensible)的值):一个特定的标识属性值,用来标志该实例是刚刚创建的,尚未保存。这可以把这种实例和从以前的 session 中装载过(可能又做过修改--译者注)但未再次持久化的实例区分开来。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>access</literal> (optional - defaults to <literal>property</"
-"literal>): the strategy Hibernate should use for accessing the property "
-"value."
-msgstr ""
-"<literal>access</literal>(可选 — 默认为 <literal>property</literal>):"
-"Hibernate 用来访问属性值的策略。 "
+msgid "<literal>access</literal> (optional - defaults to <literal>property</literal>): the strategy Hibernate should use for accessing the property value."
+msgstr "<literal>access</literal>(可选 — 默认为 <literal>property</literal>):Hibernate 用来访问属性值的策略。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If the <literal>name</literal> attribute is missing, it is assumed that the "
-"class has no identifier property."
+msgid "If the <literal>name</literal> attribute is missing, it is assumed that the class has no identifier property."
 msgstr "如果 <literal>name</literal> 属性不存在,会认为这个类没有标识属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>unsaved-value</literal> attribute is almost never needed in "
-"Hibernate3."
+msgid "The <literal>unsaved-value</literal> attribute is almost never needed in Hibernate3."
 msgstr "<literal>unsaved-value</literal> 属性在 Hibernate3 中几乎不再需要。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"There is an alternative <literal>&lt;composite-id&gt;</literal> declaration "
-"that allows access to legacy data with composite keys. Its use is strongly "
-"discouraged for anything else."
-msgstr ""
-"还有一个另外的 <literal>&lt;composite-id&gt;</literal> 定义可以访问旧式的多主"
-"键数据。我们非常不鼓励使用这种方式。"
+msgid "There is an alternative <literal>&lt;composite-id&gt;</literal> declaration that allows access to legacy data with composite keys. Its use is strongly discouraged for anything else."
+msgstr "还有一个另外的 <literal>&lt;composite-id&gt;</literal> 定义可以访问旧式的多主键数据。我们非常不鼓励使用这种方式。"
 
 #. Tag: title
 #, no-c-format
@@ -768,134 +387,78 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The optional <literal>&lt;generator&gt;</literal> child element names a Java "
-"class used to generate unique identifiers for instances of the persistent "
-"class. If any parameters are required to configure or initialize the "
-"generator instance, they are passed using the <literal>&lt;param&gt;</"
-"literal> element."
-msgstr ""
-"可选的 <literal>&lt;generator&gt;</literal> 子元素是一个 Java 类的名字,用来"
-"为该持久化类的实例生成唯一的标识。如果这个生成器实例需要某些配置值或者初始化"
-"参数,用 <literal>&lt;param&gt;</literal> 元素来传递。"
+msgid "The optional <literal>&lt;generator&gt;</literal> child element names a Java class used to generate unique identifiers for instances of the persistent class. If any parameters are required to configure or initialize the generator instance, they are passed using the <literal>&lt;param&gt;</literal> element."
+msgstr "可选的 <literal>&lt;generator&gt;</literal> 子元素是一个 Java 类的名字,用来为该持久化类的实例生成唯一的标识。如果这个生成器实例需要某些配置值或者初始化参数,用 <literal>&lt;param&gt;</literal> 元素来传递。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"All generators implement the interface <literal>org.hibernate.id."
-"IdentifierGenerator</literal>. This is a very simple interface. Some "
-"applications can choose to provide their own specialized implementations, "
-"however, Hibernate provides a range of built-in implementations. The "
-"shortcut names for the built-in generators are as follows:"
-msgstr ""
-"所有的生成器都实现 <literal>org.hibernate.id.IdentifierGenerator</literal> 接"
-"口。这是一个非常简单的接口;某些应用程序可以选择提供他们自己特定的实现。当"
-"然,Hibernate 提供了很多内置的实现。下面是一些内置生成器的快捷名字:  "
+msgid "All generators implement the interface <literal>org.hibernate.id.IdentifierGenerator</literal>. This is a very simple interface. Some applications can choose to provide their own specialized implementations, however, Hibernate provides a range of built-in implementations. The shortcut names for the built-in generators are as follows:"
+msgstr "所有的生成器都实现 <literal>org.hibernate.id.IdentifierGenerator</literal> 接口。这是一个非常简单的接口;某些应用程序可以选择提供他们自己特定的实现。当然,Hibernate 提供了很多内置的实现。下面是一些内置生成器的快捷名字:  "
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>increment</literal>"
-msgstr "<literal>name</literal>:属性名"
+msgstr "<literal>increment</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"generates identifiers of type <literal>long</literal>, <literal>short</"
-"literal> or <literal>int</literal> that are unique only when no other "
-"process is inserting data into the same table. <emphasis>Do not use in a "
-"cluster.</emphasis>"
-msgstr ""
-"用于为 <literal>long</literal>, <literal>short</literal> 或者 <literal>int</"
-"literal> 类型生成 唯一标识。只有在没有其他进程往同一张表中插入数据时才能使"
-"用。<emphasis>在集群下不要使用。</emphasis>"
+msgid "generates identifiers of type <literal>long</literal>, <literal>short</literal> or <literal>int</literal> that are unique only when no other process is inserting data into the same table. <emphasis>Do not use in a cluster.</emphasis>"
+msgstr "用于为 <literal>long</literal>, <literal>short</literal> 或者 <literal>int</literal> 类型生成 唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用。<emphasis>在集群下不要使用。</emphasis>"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>identity</literal>"
-msgstr "<literal>id-type</literal>:标识符类型"
+msgstr "<literal>identity</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"supports identity columns in DB2, MySQL, MS SQL Server, Sybase and "
-"HypersonicSQL. The returned identifier is of type <literal>long</literal>, "
-"<literal>short</literal> or <literal>int</literal>."
-msgstr ""
-"对 DB2,MySQL,MS SQL Server,Sybase 和 HypersonicSQL 的内置标识字段提供支"
-"持。返回的标识符是 <literal>long</literal>,<literal>short</literal> 或者 "
-"<literal>int</literal> 类型的。"
+msgid "supports identity columns in DB2, MySQL, MS SQL Server, Sybase and HypersonicSQL. The returned identifier is of type <literal>long</literal>, <literal>short</literal> or <literal>int</literal>."
+msgstr "对 DB2,MySQL,MS SQL Server,Sybase 和 HypersonicSQL 的内置标识字段提供支持。返回的标识符是 <literal>long</literal>,<literal>short</literal> 或者 <literal>int</literal> 类型的。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>sequence</literal>"
-msgstr "<literal>name</literal>:属性名"
+msgstr "<literal>sequence</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"uses a sequence in DB2, PostgreSQL, Oracle, SAP DB, McKoi or a generator in "
-"Interbase. The returned identifier is of type <literal>long</literal>, "
-"<literal>short</literal> or <literal>int</literal>"
-msgstr ""
-"在 DB2,PostgreSQL,Oracle,SAP DB,McKoi 中使用序列(sequence), 而在 "
-"Interbase 中使用生成器(generator)。返回的标识符是 <literal>long</literal>,"
-"<literal>short</literal> 或者 <literal>int</literal> 类型的。"
+msgid "uses a sequence in DB2, PostgreSQL, Oracle, SAP DB, McKoi or a generator in Interbase. The returned identifier is of type <literal>long</literal>, <literal>short</literal> or <literal>int</literal>"
+msgstr "在 DB2,PostgreSQL,Oracle,SAP DB,McKoi 中使用序列(sequence), 而在 Interbase 中使用生成器(generator)。返回的标识符是 <literal>long</literal>,<literal>short</literal> 或者 <literal>int</literal> 类型的。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hilo</literal>"
-msgstr "<literal>all(全部)</literal>:检查全部字段"
+msgstr "<literal>hilo</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"uses a hi/lo algorithm to efficiently generate identifiers of type "
-"<literal>long</literal>, <literal>short</literal> or <literal>int</literal>, "
-"given a table and column (by default <literal>hibernate_unique_key</literal> "
-"and <literal>next_hi</literal> respectively) as a source of hi values. The "
-"hi/lo algorithm generates identifiers that are unique only for a particular "
-"database."
-msgstr ""
-"使用一个高/低位算法高效的生成 <literal>long</literal>,<literal>short</"
-"literal> 或者 <literal>int</literal> 类型的标识符。给定一个表和字段(默认分别"
-"是 <literal>hibernate_unique_key</literal> 和 <literal>next_hi</literal>)作"
-"为高位值的来源。高/低位算法生成的标识符只在一个特定的数据库中是唯一的。"
+msgid "uses a hi/lo algorithm to efficiently generate identifiers of type <literal>long</literal>, <literal>short</literal> or <literal>int</literal>, given a table and column (by default <literal>hibernate_unique_key</literal> and <literal>next_hi</literal> respectively) as a source of hi values. The hi/lo algorithm generates identifiers that are unique only for a particular database."
+msgstr "使用一个高/低位算法高效的生成 <literal>long</literal>,<literal>short</literal> 或者 <literal>int</literal> 类型的标识符。给定一个表和字段(默认分别是 <literal>hibernate_unique_key</literal> 和 <literal>next_hi</literal>)作为高位值的来源。高/低位算法生成的标识符只在一个特定的数据库中是唯一的。"
 
 #. Tag: term
 #, no-c-format
 msgid "<literal>seqhilo</literal>"
-msgstr ""
+msgstr "<literal>seqhilo</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"uses a hi/lo algorithm to efficiently generate identifiers of type "
-"<literal>long</literal>, <literal>short</literal> or <literal>int</literal>, "
-"given a named database sequence."
-msgstr ""
-"使用一个高/低位算法来高效的生成 <literal>long</literal>,<literal>short</"
-"literal> 或者 <literal>int</literal> 类型的标识符,给定一个数据库序列"
-"(sequence)的名字。"
+msgid "uses a hi/lo algorithm to efficiently generate identifiers of type <literal>long</literal>, <literal>short</literal> or <literal>int</literal>, given a named database sequence."
+msgstr "使用一个高/低位算法来高效的生成 <literal>long</literal>,<literal>short</literal> 或者 <literal>int</literal> 类型的标识符,给定一个数据库序列(sequence)的名字。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>uuid</literal>"
-msgstr "<title>id</title>"
+msgstr "<literal>uuid</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"uses a 128-bit UUID algorithm to generate identifiers of type string that "
-"are unique within a network (the IP address is used). The UUID is encoded as "
-"a string of 32 hexadecimal digits in length."
-msgstr ""
-"用一个 128-bit 的 UUID 算法生成字符串类型的标识符,这在一个网络中是唯一的(使"
-"用了 IP 地址)。UUID 被编码为一个 32 位 16 进制数字的字符串。 "
+msgid "uses a 128-bit UUID algorithm to generate identifiers of type string that are unique within a network (the IP address is used). The UUID is encoded as a string of 32 hexadecimal digits in length."
+msgstr "用一个 128-bit 的 UUID 算法生成字符串类型的标识符,这在一个网络中是唯一的(使用了 IP 地址)。UUID 被编码为一个 32 位 16 进制数字的字符串。 "
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>guid</literal>"
-msgstr "<title>id</title>"
+msgstr "<literal>guid</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -903,81 +466,54 @@
 msgstr "在 MS SQL Server 和 MySQL 中使用数据库生成的 GUID 字符串。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>native</literal>"
-msgstr "<literal>name</literal>:属性名"
+msgstr "<literal>native</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"selects <literal>identity</literal>, <literal>sequence</literal> or "
-"<literal>hilo</literal> depending upon the capabilities of the underlying "
-"database."
-msgstr ""
-"根据底层数据库的能力选择 <literal>identity</literal>、<literal>sequence</"
-"literal> 或者 <literal>hilo</literal> 中的一个。"
+msgid "selects <literal>identity</literal>, <literal>sequence</literal> or <literal>hilo</literal> depending upon the capabilities of the underlying database."
+msgstr "根据底层数据库的能力选择 <literal>identity</literal>、<literal>sequence</literal> 或者 <literal>hilo</literal> 中的一个。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>assigned</literal>"
-msgstr "<literal>name</literal>:属性名"
+msgstr "<literal>assigned</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"lets the application assign an identifier to the object before <literal>save"
-"()</literal> is called. This is the default strategy if no <literal>&lt;"
-"generator&gt;</literal> element is specified."
-msgstr ""
-"让应用程序在调用 <literal>save()</literal> 之前为对象分配一个标识符。这是 "
-"<literal>&lt;generator&gt;</literal> 元素没有指定时的默认生成策略。"
+msgid "lets the application assign an identifier to the object before <literal>save()</literal> is called. This is the default strategy if no <literal>&lt;generator&gt;</literal> element is specified."
+msgstr "让应用程序在调用 <literal>save()</literal> 之前为对象分配一个标识符。这是 <literal>&lt;generator&gt;</literal> 元素没有指定时的默认生成策略。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>select</literal>"
-msgstr "<literal>all(全部)</literal>:检查全部字段"
+msgstr "<literal>select</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"retrieves a primary key, assigned by a database trigger, by selecting the "
-"row by some unique key and retrieving the primary key value."
+msgid "retrieves a primary key, assigned by a database trigger, by selecting the row by some unique key and retrieving the primary key value."
 msgstr "通过数据库触发器选择一些唯一主键的行并返回主键值来分配一个主键。 "
 
 #. Tag: term
 #, no-c-format
 msgid "<literal>foreign</literal>"
-msgstr ""
+msgstr "<literal>foreign</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"uses the identifier of another associated object. It is usually used in "
-"conjunction with a <literal>&lt;one-to-one&gt;</literal> primary key "
-"association."
-msgstr ""
-"使用另外一个相关联的对象的标识符。它通常和 <literal>&lt;one-to-one&gt;</"
-"literal> 联合起来使用。"
+msgid "uses the identifier of another associated object. It is usually used in conjunction with a <literal>&lt;one-to-one&gt;</literal> primary key association."
+msgstr "使用另外一个相关联的对象的标识符。它通常和 <literal>&lt;one-to-one&gt;</literal> 联合起来使用。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>sequence-identity</literal>"
-msgstr "sequence-identity"
+msgstr "<literal>sequence-identity</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"a specialized sequence generation strategy that utilizes a database sequence "
-"for the actual value generation, but combines this with JDBC3 "
-"getGeneratedKeys to return the generated identifier value as part of the "
-"insert statement execution. This strategy is only supported on Oracle 10g "
-"drivers targeted for JDK 1.4. Comments on these insert statements are "
-"disabled due to a bug in the Oracle drivers."
-msgstr ""
-"一种特别的序列生成策略,它使用数据库序列来生成实际值,但将它和 JDBC3 的 "
-"getGeneratedKeys 结合在一起,使得在插入语句执行的时候就返回生成的值。目前为止"
-"只有面向 JDK 1.4 的 Oracle 10g 驱动支持这一策略。由于 Oracle 驱动程序的一个 "
-"bug,这些插入语句的注释被关闭了。"
+msgid "a specialized sequence generation strategy that utilizes a database sequence for the actual value generation, but combines this with JDBC3 getGeneratedKeys to return the generated identifier value as part of the insert statement execution. This strategy is only supported on Oracle 10g drivers targeted for JDK 1.4. Comments on these insert statements are disabled due to a bug in the Oracle drivers."
+msgstr "一种特别的序列生成策略,它使用数据库序列来生成实际值,但将它和 JDBC3 的 getGeneratedKeys 结合在一起,使得在插入语句执行的时候就返回生成的值。目前为止只有面向 JDK 1.4 的 Oracle 10g 驱动支持这一策略。由于 Oracle 驱动程序的一个 bug,这些插入语句的注释被关闭了。"
 
 #. Tag: title
 #, no-c-format
@@ -986,31 +522,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>hilo</literal> and <literal>seqhilo</literal> generators "
-"provide two alternate implementations of the hi/lo algorithm. The first "
-"implementation requires a \"special\" database table to hold the next "
-"available \"hi\" value. Where supported, the second uses an Oracle-style "
-"sequence."
-msgstr ""
-"<literal>hilo</literal> 和 <literal>seqhilo</literal> 生成器给出了两种 hi/lo "
-"算法的实现, 这是一种很令人满意的标识符生成算法。第一种实现需要一个“特殊”的数"
-"据库表来保存下一个可用的“hi”值。 第二种实现使用一个 Oracle 风格的序列(在被支"
-"持的情况下)。 "
+msgid "The <literal>hilo</literal> and <literal>seqhilo</literal> generators provide two alternate implementations of the hi/lo algorithm. The first implementation requires a \"special\" database table to hold the next available \"hi\" value. Where supported, the second uses an Oracle-style sequence."
+msgstr "<literal>hilo</literal> 和 <literal>seqhilo</literal> 生成器给出了两种 hi/lo 算法的实现, 这是一种很令人满意的标识符生成算法。第一种实现需要一个“特殊”的数据库表来保存下一个可用的“hi”值。 第二种实现使用一个 Oracle 风格的序列(在被支持的情况下)。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Unfortunately, you cannot use <literal>hilo</literal> when supplying your "
-"own <literal>Connection</literal> to Hibernate. When Hibernate uses an "
-"application server datasource to obtain connections enlisted with JTA, you "
-"must configure the <literal>hibernate.transaction.manager_lookup_class</"
-"literal>."
-msgstr ""
-"可惜的是,你在为 Hibernate 自行提供 <literal>Connection</literal> 时无法使用 "
-"<literal>hilo</literal>。 当 Hibernate 使用 JTA 获取应用服务器的数据源连接"
-"时,你必须正确地配置 <literal>hibernate.transaction.manager_lookup_class</"
-"literal>。"
+msgid "Unfortunately, you cannot use <literal>hilo</literal> when supplying your own <literal>Connection</literal> to Hibernate. When Hibernate uses an application server datasource to obtain connections enlisted with JTA, you must configure the <literal>hibernate.transaction.manager_lookup_class</literal>."
+msgstr "可惜的是,你在为 Hibernate 自行提供 <literal>Connection</literal> 时无法使用 <literal>hilo</literal>。 当 Hibernate 使用 JTA 获取应用服务器的数据源连接时,你必须正确地配置 <literal>hibernate.transaction.manager_lookup_class</literal>。"
 
 #. Tag: title
 #, no-c-format
@@ -1019,15 +537,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The UUID contains: IP address, startup time of the JVM that is accurate to a "
-"quarter second, system time and a counter value that is unique within the "
-"JVM. It is not possible to obtain a MAC address or memory address from Java "
-"code, so this is the best option without using JNI."
-msgstr ""
-"UUID 包含:IP 地址、JVM 的启动时间(精确到 1/4 秒)、系统时间和一个计数器值"
-"(在 JVM 中唯一)。 在 Java 代码中不可能获得 MAC 地址或者内存地址,所以这已经"
-"是我们在不使用 JNI 的前提下的能做的最好实现了。"
+msgid "The UUID contains: IP address, startup time of the JVM that is accurate to a quarter second, system time and a counter value that is unique within the JVM. It is not possible to obtain a MAC address or memory address from Java code, so this is the best option without using JNI."
+msgstr "UUID 包含:IP 地址、JVM 的启动时间(精确到 1/4 秒)、系统时间和一个计数器值(在 JVM 中唯一)。 在 Java 代码中不可能获得 MAC 地址或者内存地址,所以这已经是我们在不使用 JNI 的前提下的能做的最好实现了。"
 
 #. Tag: title
 #, no-c-format
@@ -1036,30 +547,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"For databases that support identity columns (DB2, MySQL, Sybase, MS SQL), "
-"you can use <literal>identity</literal> key generation. For databases that "
-"support sequences (DB2, Oracle, PostgreSQL, Interbase, McKoi, SAP DB) you "
-"can use <literal>sequence</literal> style key generation. Both of these "
-"strategies require two SQL queries to insert a new object. For example:"
-msgstr ""
-"对于内部支持标识字段的数据库(DB2、MySQL、Sybase 和 MS SQL),你可以使用 "
-"<literal>identity</literal> 关键字生成。对于内部支持序列的数据库(DB2、"
-"Oracle、PostgreSQL、Interbase、McKoi 和 SAP DB),你可以使用 "
-"<literal>sequence</literal> 风格的关键字生成。这两种方式对于插入一个新的对象"
-"都需要两次 SQL 查询。例如:"
+msgid "For databases that support identity columns (DB2, MySQL, Sybase, MS SQL), you can use <literal>identity</literal> key generation. For databases that support sequences (DB2, Oracle, PostgreSQL, Interbase, McKoi, SAP DB) you can use <literal>sequence</literal> style key generation. Both of these strategies require two SQL queries to insert a new object. For example:"
+msgstr "对于内部支持标识字段的数据库(DB2、MySQL、Sybase 和 MS SQL),你可以使用 <literal>identity</literal> 关键字生成。对于内部支持序列的数据库(DB2、Oracle、PostgreSQL、Interbase、McKoi 和 SAP DB),你可以使用 <literal>sequence</literal> 风格的关键字生成。这两种方式对于插入一个新的对象都需要两次 SQL 查询。例如:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"For cross-platform development, the <literal>native</literal> strategy will, "
-"depending on the capabilities of the underlying database, choose from the "
-"<literal>identity</literal>, <literal>sequence</literal> and <literal>hilo</"
-"literal> strategies."
-msgstr ""
-"对于跨平台开发,<literal>native</literal> 策略会从 <literal>identity</"
-"literal>、<literal>sequence</literal> 和 <literal>hilo</literal> 中进行选择,"
-"选择哪一个,这取决于底层数据库的支持能力。"
+msgid "For cross-platform development, the <literal>native</literal> strategy will, depending on the capabilities of the underlying database, choose from the <literal>identity</literal>, <literal>sequence</literal> and <literal>hilo</literal> strategies."
+msgstr "对于跨平台开发,<literal>native</literal> 策略会从 <literal>identity</literal>、<literal>sequence</literal> 和 <literal>hilo</literal> 中进行选择,选择哪一个,这取决于底层数据库的支持能力。"
 
 #. Tag: title
 #, no-c-format
@@ -1068,35 +562,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If you want the application to assign identifiers, as opposed to having "
-"Hibernate generate them, you can use the <literal>assigned</literal> "
-"generator. This special generator uses the identifier value already assigned "
-"to the object's identifier property. The generator is used when the primary "
-"key is a natural key instead of a surrogate key. This is the default "
-"behavior if you do not specify a <literal>&lt;generator&gt;</literal> "
-"element."
-msgstr ""
-"如果你需要应用程序分配一个标示符(而非 Hibernate 来生成),你可以使用 "
-"<literal>assigned</literal> 生成器。这种特殊的生成器会使用已经分配给对象的标"
-"识符属性的标识符值。 这个生成器使用一个自然键(natural key,有商业意义的列-"
-"译注)作为主键,而不是使用一个代理键( surrogate key,没有商业意义的列-译"
-"注)。这是没有指定 <literal>&lt;generator&gt;</literal> 元素时的默认行为。"
+msgid "If you want the application to assign identifiers, as opposed to having Hibernate generate them, you can use the <literal>assigned</literal> generator. This special generator uses the identifier value already assigned to the object's identifier property. The generator is used when the primary key is a natural key instead of a surrogate key. This is the default behavior if you do not specify a <literal>&lt;generator&gt;</literal> element."
+msgstr "如果你需要应用程序分配一个标示符(而非 Hibernate 来生成),你可以使用 <literal>assigned</literal> 生成器。这种特殊的生成器会使用已经分配给对象的标识符属性的标识符值。 这个生成器使用一个自然键(natural key,有商业意义的列-译注)作为主键,而不是使用一个代理键( surrogate key,没有商业意义的列-译注)。这是没有指定 <literal>&lt;generator&gt;</literal> 元素时的默认行为。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>assigned</literal> generator makes Hibernate use "
-"<literal>unsaved-value=\"undefined\"</literal>. This forces Hibernate to go "
-"to the database to determine if an instance is transient or detached, unless "
-"there is a version or timestamp property, or you define <literal>Interceptor."
-"isUnsaved()</literal>."
-msgstr ""
-"当选择 <literal>assigned</literal> 生成器时,除非有一个 version 或 timestamp "
-"属性,或者你定义了 <literal>Interceptor.isUnsaved()</literal>,否则需要让 "
-"Hiberante 使用 <literal>unsaved-value=\"undefined\"</literal>,强制 "
-"Hibernatet 查询数据库来确定一个实例是瞬时的(transient) 还是脱管的"
-"(detached)。"
+msgid "The <literal>assigned</literal> generator makes Hibernate use <literal>unsaved-value=\"undefined\"</literal>. This forces Hibernate to go to the database to determine if an instance is transient or detached, unless there is a version or timestamp property, or you define <literal>Interceptor.isUnsaved()</literal>."
+msgstr "当选择 <literal>assigned</literal> 生成器时,除非有一个 version 或 timestamp 属性,或者你定义了 <literal>Interceptor.isUnsaved()</literal>,否则需要让 Hiberante 使用 <literal>unsaved-value=\"undefined\"</literal>,强制 Hibernatet 查询数据库来确定一个实例是瞬时的(transient) 还是脱管的(detached)。"
 
 #. Tag: title
 #, no-c-format
@@ -1105,21 +577,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate does not generate DDL with triggers. It is for legacy schemas only."
+msgid "Hibernate does not generate DDL with triggers. It is for legacy schemas only."
 msgstr "仅仅用于遗留的 schema 中(Hibernate 不能用触发器生成 DDL)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"In the above example, there is a unique valued property named "
-"<literal>socialSecurityNumber</literal>. It is defined by the class, as a "
-"natural key and a surrogate key named <literal>person_id</literal>, whose "
-"value is generated by a trigger."
-msgstr ""
-"在上面的例子中,类定义了一个命名为 <literal>socialSecurityNumber</literal> 的"
-"具有唯一值的属性,它是一个自然键(natural key),命名为 <literal>person_id</"
-"literal> 的代理键(surrogate key)的值由触发器生成。"
+msgid "In the above example, there is a unique valued property named <literal>socialSecurityNumber</literal>. It is defined by the class, as a natural key and a surrogate key named <literal>person_id</literal>, whose value is generated by a trigger."
+msgstr "在上面的例子中,类定义了一个命名为 <literal>socialSecurityNumber</literal> 的具有唯一值的属性,它是一个自然键(natural key),命名为 <literal>person_id</literal> 的代理键(surrogate key)的值由触发器生成。"
 
 #. Tag: title
 #, no-c-format
@@ -1128,208 +592,88 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Starting with release 3.2.3, there are 2 new generators which represent a re-"
-"thinking of 2 different aspects of identifier generation. The first aspect "
-"is database portability; the second is optimization Optimization means that "
-"you do not have to query the database for every request for a new identifier "
-"value. These two new generators are intended to take the place of some of "
-"the named generators described above, starting in 3.3.x. However, they are "
-"included in the current releases and can be referenced by FQN."
-msgstr ""
-"从 3.2.3 版本开始,有两个代表不同标识符生成概念的新的生成器。第一个概念是数据"
-"库移植性;第二个是优化。优化表示你不需对每个新标识符的请求都查询数据库。从 "
-"3.3.x 开始,这两个新的生成器都是用来取代上面所述的生成器的。然而,它们也包括"
-"在当前版本里且可以由 FQN 进行引用。"
+msgid "Starting with release 3.2.3, there are 2 new generators which represent a re-thinking of 2 different aspects of identifier generation. The first aspect is database portability; the second is optimization Optimization means that you do not have to query the database for every request for a new identifier value. These two new generators are intended to take the place of some of the named generators described above, starting in 3.3.x. However, they are included in the current releases and can be referenced by FQN."
+msgstr "从 3.2.3 版本开始,有两个代表不同标识符生成概念的新的生成器。第一个概念是数据库移植性;第二个是优化。优化表示你不需对每个新标识符的请求都查询数据库。从 3.3.x 开始,这两个新的生成器都是用来取代上面所述的生成器的。然而,它们也包括在当前版本里且可以由 FQN 进行引用。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The first of these new generators is <literal>org.hibernate.id.enhanced."
-"SequenceStyleGenerator</literal> which is intended, firstly, as a "
-"replacement for the <literal>sequence</literal> generator and, secondly, as "
-"a better portability generator than <literal>native</literal>. This is "
-"because <literal>native</literal> generally chooses between "
-"<literal>identity</literal> and <literal>sequence</literal> which have "
-"largely different semantics that can cause subtle issues in applications "
-"eyeing portability. <literal>org.hibernate.id.enhanced."
-"SequenceStyleGenerator</literal>, however, achieves portability in a "
-"different manner. It chooses between a table or a sequence in the database "
-"to store its incrementing values, depending on the capabilities of the "
-"dialect being used. The difference between this and <literal>native</"
-"literal> is that table-based and sequence-based storage have the same exact "
-"semantic. In fact, sequences are exactly what Hibernate tries to emulate "
-"with its table-based generators. This generator has a number of "
-"configuration parameters:"
-msgstr ""
-"这些生成器的第一个是 <literal>org.hibernate.id.enhanced."
-"SequenceStyleGenerator</literal>,首先,它是作为 <literal>sequence</literal> "
-"生成器的替代物,其次,它是比 <literal>native</literal> 具有更好移植性的生成"
-"器。这是因为 <literal>native</literal> 通常在 <literal>identity</literal> 和 "
-"<literal>sequence</literal> 之间选择,它有差别很大的 semantic,在移植时会导致"
-"潜在的问题。然而,<literal>org.hibernate.id.enhanced.SequenceStyleGenerator</"
-"literal> 以不同的方式实现移植性。它根据所使用的方言的能力,在数据库表或序列之"
-"间选择以存储其增量。这和 <literal>native</literal> 的区别是基于表或序列的存储"
-"具有恰好相同的 semantic。实际上,序列就是 Hibernate 试图用基于表的生成器来模"
-"拟的。这个生成器有如下的配置参数:"
+msgid "The first of these new generators is <literal>org.hibernate.id.enhanced.SequenceStyleGenerator</literal> which is intended, firstly, as a replacement for the <literal>sequence</literal> generator and, secondly, as a better portability generator than <literal>native</literal>. This is because <literal>native</literal> generally chooses between <literal>identity</literal> and <literal>sequence</literal> which have largely different semantics that can cause subtle issues in applications eyeing portability. <literal>org.hibernate.id.enhanced.SequenceStyleGenerator</literal>, however, achieves portability in a different manner. It chooses between a table or a sequence in the database to store its incrementing values, depending on the capabilities of the dialect being used. The difference between this and <literal>native</literal> is that table-based and sequence-based storage have the same exact semantic. In fact, sequences are exactly what Hibernate tries to emulate with!
  its table-based generators. This generator has a number of configuration parameters:"
+msgstr "这些生成器的第一个是 <literal>org.hibernate.id.enhanced.SequenceStyleGenerator</literal>,首先,它是作为 <literal>sequence</literal> 生成器的替代物,其次,它是比 <literal>native</literal> 具有更好移植性的生成器。这是因为 <literal>native</literal> 通常在 <literal>identity</literal> 和 <literal>sequence</literal> 之间选择,它有差别很大的 semantic,在移植时会导致潜在的问题。然而,<literal>org.hibernate.id.enhanced.SequenceStyleGenerator</literal> 以不同的方式实现移植性。它根据所使用的方言的能力,在数据库表或序列之间选择以存储其增量。这和 <literal>native</literal> 的区别是基于表或序列的存储具有恰好相同的 semantic。实际上,序列就是 Hibernate 试图用基于表的生成器来模拟的。这个生成器有如下的配置参数:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>sequence_name</literal> (optional, defaults to "
-"<literal>hibernate_sequence</literal>): the name of the sequence or table to "
-"be used."
-msgstr ""
-"<literal>sequence_name</literal>(可选 — 默认为 <literal>hibernate_sequence</"
-"literal>):序列或表的名字"
+msgid "<literal>sequence_name</literal> (optional, defaults to <literal>hibernate_sequence</literal>): the name of the sequence or table to be used."
+msgstr "<literal>sequence_name</literal>(可选 — 默认为 <literal>hibernate_sequence</literal>):序列或表的名字"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>initial_value</literal> (optional, defaults to <literal>1</"
-"literal>): the initial value to be retrieved from the sequence/table. In "
-"sequence creation terms, this is analogous to the clause typically named "
-"\"STARTS WITH\"."
-msgstr ""
-"<literal>initial_value</literal>(可选,默认为 <literal>1</literal>):从序"
-"列/表里获取的初始值。按照序列创建的术语,这等同于子句 \"STARTS WITH\"。"
+msgid "<literal>initial_value</literal> (optional, defaults to <literal>1</literal>): the initial value to be retrieved from the sequence/table. In sequence creation terms, this is analogous to the clause typically named \"STARTS WITH\"."
+msgstr "<literal>initial_value</literal>(可选,默认为 <literal>1</literal>):从序列/表里获取的初始值。按照序列创建的术语,这等同于子句 \"STARTS WITH\"。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>increment_size</literal> (optional - defaults to <literal>1</"
-"literal>): the value by which subsequent calls to the sequence/table should "
-"differ. In sequence creation terms, this is analogous to the clause "
-"typically named \"INCREMENT BY\"."
-msgstr ""
-"<literal>increment_size</literal>(可选 - 缺省为 <literal>1</literal>):对序"
-"列/表的调用应该区分的值。按照序列创建的术语,这等同于子句 \"INCREMENT BY\"。"
+msgid "<literal>increment_size</literal> (optional - defaults to <literal>1</literal>): the value by which subsequent calls to the sequence/table should differ. In sequence creation terms, this is analogous to the clause typically named \"INCREMENT BY\"."
+msgstr "<literal>increment_size</literal>(可选 - 缺省为 <literal>1</literal>):对序列/表的调用应该区分的值。按照序列创建的术语,这等同于子句 \"INCREMENT BY\"。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>force_table_use</literal> (optional - defaults to <literal>false</"
-"literal>): should we force the use of a table as the backing structure even "
-"though the dialect might support sequence?"
-msgstr ""
-"<literal>force_table_use</literal>(可选 - 缺省为 <literal>false</"
-"literal>):即使方言可能支持序列,是否也应该强制把表用作后台结构。"
+msgid "<literal>force_table_use</literal> (optional - defaults to <literal>false</literal>): should we force the use of a table as the backing structure even though the dialect might support sequence?"
+msgstr "<literal>force_table_use</literal>(可选 - 缺省为 <literal>false</literal>):即使方言可能支持序列,是否也应该强制把表用作后台结构。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>value_column</literal> (optional - defaults to <literal>next_val</"
-"literal>): only relevant for table structures, it is the name of the column "
-"on the table which is used to hold the value."
-msgstr ""
-"<literal>value_column</literal>(可选 - 缺省为 <literal>next_val</"
-"literal>):只和表结构相关,它是用于保存值的字段的名称。"
+msgid "<literal>value_column</literal> (optional - defaults to <literal>next_val</literal>): only relevant for table structures, it is the name of the column on the table which is used to hold the value."
+msgstr "<literal>value_column</literal>(可选 - 缺省为 <literal>next_val</literal>):只和表结构相关,它是用于保存值的字段的名称。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>optimizer</literal> (optional - defaults to <literal>none</"
-"literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" /"
-">"
-msgstr "<literal>optimizer</literal>(可选 — 默认是<literal>none</literal>):"
+#, no-c-format
+msgid "<literal>optimizer</literal> (optional - defaults to <literal>none</literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />"
+msgstr "<literal>optimizer</literal>(可选 — 默认是<literal>none</literal>):请参考 <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The second of these new generators is <literal>org.hibernate.id.enhanced."
-"TableGenerator</literal>, which is intended, firstly, as a replacement for "
-"the <literal>table</literal> generator, even though it actually functions "
-"much more like <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</"
-"literal>, and secondly, as a re-implementation of <literal>org.hibernate.id."
-"MultipleHiLoPerTableGenerator</literal> that utilizes the notion of "
-"pluggable optimizers. Essentially this generator defines a table capable of "
-"holding a number of different increment values simultaneously by using "
-"multiple distinctly keyed rows. This generator has a number of configuration "
-"parameters:"
-msgstr ""
-"新生成器的第二个是 <literal>org.hibernate.id.enhanced.TableGenerator</"
-"literal>,它的目的首先是替代 <literal>table</literal> 生成器,即使它实际上比 "
-"<literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal> 功能要强得"
-"多;其次,作为利用可插拔 optimizer 的 <literal>org.hibernate.id."
-"MultipleHiLoPerTableGenerator</literal> 的替代品。基本上这个生成器定义了一个"
-"可以利用多个不同的键值记录存储大量不同增量值的表。这个生成器有如下的配置参"
-"数:"
+msgid "The second of these new generators is <literal>org.hibernate.id.enhanced.TableGenerator</literal>, which is intended, firstly, as a replacement for the <literal>table</literal> generator, even though it actually functions much more like <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal>, and secondly, as a re-implementation of <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal> that utilizes the notion of pluggable optimizers. Essentially this generator defines a table capable of holding a number of different increment values simultaneously by using multiple distinctly keyed rows. This generator has a number of configuration parameters:"
+msgstr "新生成器的第二个是 <literal>org.hibernate.id.enhanced.TableGenerator</literal>,它的目的首先是替代 <literal>table</literal> 生成器,即使它实际上比 <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal> 功能要强得多;其次,作为利用可插拔 optimizer 的 <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal> 的替代品。基本上这个生成器定义了一个可以利用多个不同的键值记录存储大量不同增量值的表。这个生成器有如下的配置参数:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>table_name</literal> (optional - defaults to "
-"<literal>hibernate_sequences</literal>): the name of the table to be used."
-msgstr ""
-"<literal>table_name</literal>(可选 — 默认是 <literal>hibernate_sequences</"
-"literal>):所用的表的名称。"
+msgid "<literal>table_name</literal> (optional - defaults to <literal>hibernate_sequences</literal>): the name of the table to be used."
+msgstr "<literal>table_name</literal>(可选 — 默认是 <literal>hibernate_sequences</literal>):所用的表的名称。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>value_column_name</literal> (optional - defaults to "
-"<literal>next_val</literal>): the name of the column on the table that is "
-"used to hold the value."
-msgstr ""
-"<literal>value_column_name</literal>(可选 — 默认为 <literal>next_val</"
-"literal>):用于存储这些值的表的字段的名字。"
+msgid "<literal>value_column_name</literal> (optional - defaults to <literal>next_val</literal>): the name of the column on the table that is used to hold the value."
+msgstr "<literal>value_column_name</literal>(可选 — 默认为 <literal>next_val</literal>):用于存储这些值的表的字段的名字。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>segment_column_name</literal> (optional - defaults to "
-"<literal>sequence_name</literal>): the name of the column on the table that "
-"is used to hold the \"segment key\". This is the value which identifies "
-"which increment value to use."
-msgstr ""
-"<literal>segment_column_name</literal>(可选,默认为 <literal>sequence_name</"
-"literal>):用于保存 \"segment key\" 的字段的名称。这是标识使用哪个增量值的"
-"值。"
+msgid "<literal>segment_column_name</literal> (optional - defaults to <literal>sequence_name</literal>): the name of the column on the table that is used to hold the \"segment key\". This is the value which identifies which increment value to use."
+msgstr "<literal>segment_column_name</literal>(可选,默认为 <literal>sequence_name</literal>):用于保存 \"segment key\" 的字段的名称。这是标识使用哪个增量值的值。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>segment_value</literal> (optional - defaults to <literal>default</"
-"literal>): The \"segment key\" value for the segment from which we want to "
-"pull increment values for this generator."
-msgstr ""
-"<literal>segment_value</literal>(可选,默认为 <literal>default</literal>):"
-"我们为这个生成器获取增量值的 segment 的 \"segment key\"。"
+msgid "<literal>segment_value</literal> (optional - defaults to <literal>default</literal>): The \"segment key\" value for the segment from which we want to pull increment values for this generator."
+msgstr "<literal>segment_value</literal>(可选,默认为 <literal>default</literal>):我们为这个生成器获取增量值的 segment 的 \"segment key\"。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>segment_value_length</literal> (optional - defaults to "
-"<literal>255</literal>): Used for schema generation; the column size to "
-"create this segment key column."
-msgstr ""
-"<literal>segment_value_length</literal>(可选 — 默认为 <literal>255</"
-"literal>):用于 schema 生成;创建 Segment Key 字段的字段大小。"
+msgid "<literal>segment_value_length</literal> (optional - defaults to <literal>255</literal>): Used for schema generation; the column size to create this segment key column."
+msgstr "<literal>segment_value_length</literal>(可选 — 默认为 <literal>255</literal>):用于 schema 生成;创建 Segment Key 字段的字段大小。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>initial_value</literal> (optional - defaults to <literal>1</"
-"literal>): The initial value to be retrieved from the table."
-msgstr ""
-"<literal>initial_value</literal>(可选 — 默认是 <literal>1</literal>):从表"
-"里获取的初始值。"
+msgid "<literal>initial_value</literal> (optional - defaults to <literal>1</literal>): The initial value to be retrieved from the table."
+msgstr "<literal>initial_value</literal>(可选 — 默认是 <literal>1</literal>):从表里获取的初始值。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>increment_size</literal> (optional - defaults to <literal>1</"
-"literal>): The value by which subsequent calls to the table should differ."
-msgstr ""
-"<literal>increment_size</literal>(可选 — 默认是 <literal>1</literal>):对表"
-"随后的调用应该区分的值。"
+msgid "<literal>increment_size</literal> (optional - defaults to <literal>1</literal>): The value by which subsequent calls to the table should differ."
+msgstr "<literal>increment_size</literal>(可选 — 默认是 <literal>1</literal>):对表随后的调用应该区分的值。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>optimizer</literal> (optional - defaults to <literal></literal>): "
-"See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />"
-msgstr "<literal>optimizer</literal>(可选 — 默认是 <literal> </literal>):"
+#, no-c-format
+msgid "<literal>optimizer</literal> (optional - defaults to <literal></literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />"
+msgstr "<literal>optimizer</literal>(可选 — 默认是 <literal> </literal>):请参考 <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />。"
 
 #. Tag: title
 #, no-c-format
@@ -1337,59 +681,24 @@
 msgstr "标识符生成器的优化"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"For identifier generators that store values in the database, it is "
-"inefficient for them to hit the database on each and every call to generate "
-"a new identifier value. Instead, you can group a bunch of them in memory and "
-"only hit the database when you have exhausted your in-memory value group. "
-"This is the role of the pluggable optimizers. Currently only the two "
-"enhanced generators (<xref linkend=\"mapping-declaration-id-enhanced\" /> "
-"support this operation."
-msgstr ""
-"对于在数据库里存储值的标识符生成器,生成新标识符时的每次调用都访问数据库是低"
-"效的。因此,你可以把它们在内存里分组并只有在快用光内存时才访问数据库。这是可"
-"插拔 optimizer 的任务。目前只有两个增强型的生成器支持这个操作(<xref linkend="
-"\"mapping-declaration-id-enhanced\"/>)。"
+#, no-c-format
+msgid "For identifier generators that store values in the database, it is inefficient for them to hit the database on each and every call to generate a new identifier value. Instead, you can group a bunch of them in memory and only hit the database when you have exhausted your in-memory value group. This is the role of the pluggable optimizers. Currently only the two enhanced generators (<xref linkend=\"mapping-declaration-id-enhanced\" /> support this operation."
+msgstr "对于在数据库里存储值的标识符生成器,生成新标识符时的每次调用都访问数据库是低效的。因此,你可以把它们在内存里分组并只有在快用光内存时才访问数据库。这是可插拔 optimizer 的任务。目前只有两个增强型的生成器支持这个操作(<xref linkend=\"mapping-declaration-id-enhanced\"/>)。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>none</literal> (generally this is the default if no optimizer was "
-"specified): this will not perform any optimizations and hit the database for "
-"each and every request."
-msgstr ""
-"<literal>none</literal>(如果没有指定 optimizer,通常这是缺省配置):这不会执"
-"行任何优化,在每次请求时都访问数据库。"
+msgid "<literal>none</literal> (generally this is the default if no optimizer was specified): this will not perform any optimizations and hit the database for each and every request."
+msgstr "<literal>none</literal>(如果没有指定 optimizer,通常这是缺省配置):这不会执行任何优化,在每次请求时都访问数据库。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>hilo</literal>: applies a hi/lo algorithm around the database "
-"retrieved values. The values from the database for this optimizer are "
-"expected to be sequential. The values retrieved from the database structure "
-"for this optimizer indicates the \"group number\". The "
-"<literal>increment_size</literal> is multiplied by that value in memory to "
-"define a group \"hi value\"."
-msgstr ""
-"<literal>hilo</literal>:对从数据库获取的值应用 hi/lo 算法。用于这个 "
-"optimizer 的从数据库获取的值应该是有序的。它们表明“组编号”。"
-"<literal>increment_size</literal> 将乘以内存里的值来定义组的“hi 值”。"
+msgid "<literal>hilo</literal>: applies a hi/lo algorithm around the database retrieved values. The values from the database for this optimizer are expected to be sequential. The values retrieved from the database structure for this optimizer indicates the \"group number\". The <literal>increment_size</literal> is multiplied by that value in memory to define a group \"hi value\"."
+msgstr "<literal>hilo</literal>:对从数据库获取的值应用 hi/lo 算法。用于这个 optimizer 的从数据库获取的值应该是有序的。它们表明“组编号”。<literal>increment_size</literal> 将乘以内存里的值来定义组的“hi 值”。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>pooled</literal>: as with the case of <literal>hilo</literal>, this "
-"optimizer attempts to minimize the number of hits to the database. Here, "
-"however, we simply store the starting value for the \"next group\" into the "
-"database structure rather than a sequential value in combination with an in-"
-"memory grouping algorithm. Here, <literal>increment_size</literal> refers to "
-"the values coming from the database."
-msgstr ""
-"<literal>pooled</literal>:和 <literal>hilo</literal> 一样,这个 optimizer 试"
-"图最小化对数据库的访问。然而,我们只是简单地把“下一组”的起始值而不是把序列值"
-"和分组算法的组合存入到数据库结构里。在这里,<literal>increment_size</"
-"literal> 表示数据库里的值。"
+msgid "<literal>pooled</literal>: as with the case of <literal>hilo</literal>, this optimizer attempts to minimize the number of hits to the database. Here, however, we simply store the starting value for the \"next group\" into the database structure rather than a sequential value in combination with an in-memory grouping algorithm. Here, <literal>increment_size</literal> refers to the values coming from the database."
+msgstr "<literal>pooled</literal>:和 <literal>hilo</literal> 一样,这个 optimizer 试图最小化对数据库的访问。然而,我们只是简单地把“下一组”的起始值而不是把序列值和分组算法的组合存入到数据库结构里。在这里,<literal>increment_size</literal> 表示数据库里的值。"
 
 #. Tag: title
 #, no-c-format
@@ -1398,147 +707,68 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A table with a composite key can be mapped with multiple properties of the "
-"class as identifier properties. The <literal>&lt;composite-id&gt;</literal> "
-"element accepts <literal>&lt;key-property&gt;</literal> property mappings "
-"and <literal>&lt;key-many-to-one&gt;</literal> mappings as child elements."
-msgstr ""
-"如果表使用联合主键,你可以映射类的多个属性为标识符属性。<literal>&lt;"
-"composite-id&gt;</literal> 元素接受 <literal>&lt;key-property&gt;</literal> "
-"属性映射和 <literal>&lt;key-many-to-one&gt;</literal> 属性映射作为子元素。 "
+msgid "A table with a composite key can be mapped with multiple properties of the class as identifier properties. The <literal>&lt;composite-id&gt;</literal> element accepts <literal>&lt;key-property&gt;</literal> property mappings and <literal>&lt;key-many-to-one&gt;</literal> mappings as child elements."
+msgstr "如果表使用联合主键,你可以映射类的多个属性为标识符属性。<literal>&lt;composite-id&gt;</literal> 元素接受 <literal>&lt;key-property&gt;</literal> 属性映射和 <literal>&lt;key-many-to-one&gt;</literal> 属性映射作为子元素。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The persistent class <emphasis>must</emphasis> override <literal>equals()</"
-"literal> and <literal>hashCode()</literal> to implement composite identifier "
-"equality. It must also implement <literal>Serializable</literal>."
-msgstr ""
-"你的持久化类<emphasis>必须</emphasis>覆盖 <literal>equals()</literal> 和 "
-"<literal>hashCode()</literal> 方法,来实现组合的标识符的相等判断。实现 "
-"<literal>Serializable</literal> 接口也是必须的。"
+msgid "The persistent class <emphasis>must</emphasis> override <literal>equals()</literal> and <literal>hashCode()</literal> to implement composite identifier equality. It must also implement <literal>Serializable</literal>."
+msgstr "你的持久化类<emphasis>必须</emphasis>覆盖 <literal>equals()</literal> 和 <literal>hashCode()</literal> 方法,来实现组合的标识符的相等判断。实现 <literal>Serializable</literal> 接口也是必须的。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Unfortunately, this approach means that a persistent object is its own "
-"identifier. There is no convenient \"handle\" other than the object itself. "
-"You must instantiate an instance of the persistent class itself and populate "
-"its identifier properties before you can <literal>load()</literal> the "
-"persistent state associated with a composite key. We call this approach an "
-"<emphasis>embedded</emphasis> composite identifier, and discourage it for "
-"serious applications."
-msgstr ""
-"不幸的是,这种组合关键字的方法意味着一个持久化类是它自己的标识。除了对象自己"
-"之外,没有什么方便的“把手”可用。你必须初始化持久化类的实例,填充它的标识符属"
-"性,再 <literal>load()</literal> 组合关键字关联的持久状态。我们把这种方法称"
-"为 <emphasis>embedded(嵌入式)</emphasis>的组合标识符,在重要的应用中不鼓励"
-"使用这种用法。 "
+msgid "Unfortunately, this approach means that a persistent object is its own identifier. There is no convenient \"handle\" other than the object itself. You must instantiate an instance of the persistent class itself and populate its identifier properties before you can <literal>load()</literal> the persistent state associated with a composite key. We call this approach an <emphasis>embedded</emphasis> composite identifier, and discourage it for serious applications."
+msgstr "不幸的是,这种组合关键字的方法意味着一个持久化类是它自己的标识。除了对象自己之外,没有什么方便的“把手”可用。你必须初始化持久化类的实例,填充它的标识符属性,再 <literal>load()</literal> 组合关键字关联的持久状态。我们把这种方法称为 <emphasis>embedded(嵌入式)</emphasis>的组合标识符,在重要的应用中不鼓励使用这种用法。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A second approach is what we call a <emphasis>mapped</emphasis> composite "
-"identifier, where the identifier properties named inside the <literal>&lt;"
-"composite-id&gt;</literal> element are duplicated on both the persistent "
-"class and a separate identifier class."
-msgstr ""
-"第二种方法我们称为 <emphasis>mapped(映射式)</emphasis>组合标识符(mapped "
-"composite identifier),<literal>&lt;composite-id&gt;</literal> 元素中列出的"
-"标识属性不但在持久化类出现,还形成一个独立的标识符类。"
+msgid "A second approach is what we call a <emphasis>mapped</emphasis> composite identifier, where the identifier properties named inside the <literal>&lt;composite-id&gt;</literal> element are duplicated on both the persistent class and a separate identifier class."
+msgstr "第二种方法我们称为 <emphasis>mapped(映射式)</emphasis>组合标识符(mapped composite identifier),<literal>&lt;composite-id&gt;</literal> 元素中列出的标识属性不但在持久化类出现,还形成一个独立的标识符类。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"In this example, both the composite identifier class, <literal>MedicareId</"
-"literal>, and the entity class itself have properties named "
-"<literal>medicareNumber</literal> and <literal>dependent</literal>. The "
-"identifier class must override <literal>equals()</literal> and "
-"<literal>hashCode()</literal> and implement <literal>Serializable</literal>. "
-"The main disadvantage of this approach is code duplication."
-msgstr ""
-"在这个例子中,组合标识符类 <literal>MedicareId</literal> 和实体类都含有 "
-"<literal>medicareNumber</literal> 和 <literal>dependent</literal> 属性。标识"
-"符类必须重载 <literal>equals()</literal> 和 <literal>hashCode()</literal> 并"
-"且实现 <literal>Serializable</literal> 接口。这种方法的缺点是出现了明显的代码"
-"重复。"
+msgid "In this example, both the composite identifier class, <literal>MedicareId</literal>, and the entity class itself have properties named <literal>medicareNumber</literal> and <literal>dependent</literal>. The identifier class must override <literal>equals()</literal> and <literal>hashCode()</literal> and implement <literal>Serializable</literal>. The main disadvantage of this approach is code duplication."
+msgstr "在这个例子中,组合标识符类 <literal>MedicareId</literal> 和实体类都含有 <literal>medicareNumber</literal> 和 <literal>dependent</literal> 属性。标识符类必须重载 <literal>equals()</literal> 和 <literal>hashCode()</literal> 并且实现 <literal>Serializable</literal> 接口。这种方法的缺点是出现了明显的代码重复。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The following attributes are used to specify a mapped composite identifier:"
+msgid "The following attributes are used to specify a mapped composite identifier:"
 msgstr "下面列出的属性是用来指定一个映射式组合标识符的:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>mapped</literal> (optional - defaults to <literal>false</literal>): "
-"indicates that a mapped composite identifier is used, and that the contained "
-"property mappings refer to both the entity class and the composite "
-"identifier class."
-msgstr ""
-"<literal>mapped</literal>(可选,默认为 <literal>false</literal>):指明使用"
-"一个映射式组合标识符,其包含的属性映射同时在实体类和组合标识符类中出现。 "
+msgid "<literal>mapped</literal> (optional - defaults to <literal>false</literal>): indicates that a mapped composite identifier is used, and that the contained property mappings refer to both the entity class and the composite identifier class."
+msgstr "<literal>mapped</literal>(可选,默认为 <literal>false</literal>):指明使用一个映射式组合标识符,其包含的属性映射同时在实体类和组合标识符类中出现。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>class</literal> (optional - but required for a mapped composite "
-"identifier): the class used as a composite identifier."
-msgstr ""
-"<literal>class</literal>(可选,但对映射式组合标识符必须指定):作为组合标识符"
-"类使用的类名。"
+msgid "<literal>class</literal> (optional - but required for a mapped composite identifier): the class used as a composite identifier."
+msgstr "<literal>class</literal>(可选,但对映射式组合标识符必须指定):作为组合标识符类使用的类名。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"We will describe a third, even more convenient approach, where the composite "
-"identifier is implemented as a component class in <xref linkend=\"components-"
-"compositeid\" />. The attributes described below apply only to this "
-"alternative approach:"
-msgstr ""
-"在 <xref linkend=\"components-compositeid\"/> 一节中,我们会描述第三种方式,那"
-"就是把组合标识符实现为一个组件(component)类,这是更方便的方法。下面的属性仅"
-"对第三种方法有效:"
+#, no-c-format
+msgid "We will describe a third, even more convenient approach, where the composite identifier is implemented as a component class in <xref linkend=\"components-compositeid\" />. The attributes described below apply only to this alternative approach:"
+msgstr "在 <xref linkend=\"components-compositeid\"/> 一节中,我们会描述第三种方式,那就是把组合标识符实现为一个组件(component)类,这是更方便的方法。下面的属性仅对第三种方法有效: "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>name</literal> (optional - required for this approach): a property "
-"of component type that holds the composite identifier. Please see chapter 9 "
-"for more information."
-msgstr ""
-"<literal>name</literal>(可选,但对这种方法而言必须):包含此组件标识符的组件"
-"类型的名字(参阅第 9 章)。"
+msgid "<literal>name</literal> (optional - required for this approach): a property of component type that holds the composite identifier. Please see chapter 9 for more information."
+msgstr "<literal>name</literal>(可选,但对这种方法而言必须):包含此组件标识符的组件类型的名字(参阅第 9 章)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>access</literal> (optional - defaults to <literal>property</"
-"literal>): the strategy Hibernate uses for accessing the property value."
-msgstr ""
-"<literal>access</literal>(可选 — 默认为 <literal>property</literal>):"
-"Hibernate 用来访问属性值的策略。 "
+msgid "<literal>access</literal> (optional - defaults to <literal>property</literal>): the strategy Hibernate uses for accessing the property value."
+msgstr "<literal>access</literal>(可选 — 默认为 <literal>property</literal>):Hibernate 用来访问属性值的策略。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>class</literal> (optional - defaults to the property type "
-"determined by reflection): the component class used as a composite "
-"identifier. Please see the next section for more information."
-msgstr ""
-"<literal>class</literal>(可选 — 默认会用反射来自动判定属性类型 ):用来作为"
-"组合标识符的组件类的类名(参阅下一节)。 "
+msgid "<literal>class</literal> (optional - defaults to the property type determined by reflection): the component class used as a composite identifier. Please see the next section for more information."
+msgstr "<literal>class</literal>(可选 — 默认会用反射来自动判定属性类型 ):用来作为组合标识符的组件类的类名(参阅下一节)。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The third approach, an <emphasis>identifier component</emphasis>, is "
-"recommended for almost all applications."
-msgstr ""
-"第三种方式,被称为 <emphasis>identifier component(标识符组件)</emphasis>是"
-"我们对几乎所有应用都推荐使用的方式。 "
+msgid "The third approach, an <emphasis>identifier component</emphasis>, is recommended for almost all applications."
+msgstr "第三种方式,被称为 <emphasis>identifier component(标识符组件)</emphasis>是我们对几乎所有应用都推荐使用的方式。 "
 
 #. Tag: title
 #, no-c-format
@@ -1547,105 +777,48 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>&lt;discriminator&gt;</literal> element is required for "
-"polymorphic persistence using the table-per-class-hierarchy mapping "
-"strategy. It declares a discriminator column of the table. The discriminator "
-"column contains marker values that tell the persistence layer what subclass "
-"to instantiate for a particular row. A restricted set of types can be used: "
-"<literal>string</literal>, <literal>character</literal>, <literal>integer</"
-"literal>, <literal>byte</literal>, <literal>short</literal>, "
-"<literal>boolean</literal>, <literal>yes_no</literal>, <literal>true_false</"
-"literal>."
-msgstr ""
-"在\"一棵对象继承树对应一个表\"的策略中,<literal>&lt;discriminator&gt;</"
-"literal> 元素是必需的,它定义了表的鉴别器字段。鉴别器字段包含标志值,用于告知"
-"持久化层应该为某个特定的行创建哪一个子类的实例。如下这些受到限制的类型可以使"
-"用:<literal>string</literal>、<literal>character</literal>、"
-"<literal>integer</literal>、<literal>byte</literal>、<literal>short</"
-"literal>、<literal>boolean</literal>、<literal>yes_no</literal>、"
-"<literal>true_false</literal>。"
+msgid "The <literal>&lt;discriminator&gt;</literal> element is required for polymorphic persistence using the table-per-class-hierarchy mapping strategy. It declares a discriminator column of the table. The discriminator column contains marker values that tell the persistence layer what subclass to instantiate for a particular row. A restricted set of types can be used: <literal>string</literal>, <literal>character</literal>, <literal>integer</literal>, <literal>byte</literal>, <literal>short</literal>, <literal>boolean</literal>, <literal>yes_no</literal>, <literal>true_false</literal>."
+msgstr "在\"一棵对象继承树对应一个表\"的策略中,<literal>&lt;discriminator&gt;</literal> 元素是必需的,它定义了表的鉴别器字段。鉴别器字段包含标志值,用于告知持久化层应该为某个特定的行创建哪一个子类的实例。如下这些受到限制的类型可以使用:<literal>string</literal>、<literal>character</literal>、<literal>integer</literal>、<literal>byte</literal>、<literal>short</literal>、<literal>boolean</literal>、<literal>yes_no</literal>、<literal>true_false</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>column</literal> (optional - defaults to <literal>class</literal>): "
-"the name of the discriminator column."
-msgstr ""
-"<literal>column</literal>(可选 — 默认为 <literal>class</literal>)"
-"discriminator 器字段的名字。"
+msgid "<literal>column</literal> (optional - defaults to <literal>class</literal>): the name of the discriminator column."
+msgstr "<literal>column</literal>(可选 — 默认为 <literal>class</literal>)discriminator 器字段的名字。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>type</literal> (optional - defaults to <literal>string</literal>): "
-"a name that indicates the Hibernate type"
-msgstr ""
-"<literal>type</literal>(可选 — 默认为 <literal>string</literal>)一个 "
-"Hibernate 字段类型的名字 "
+msgid "<literal>type</literal> (optional - defaults to <literal>string</literal>): a name that indicates the Hibernate type"
+msgstr "<literal>type</literal>(可选 — 默认为 <literal>string</literal>)一个 Hibernate 字段类型的名字 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>force</literal> (optional - defaults to <literal>false</literal>): "
-"\"forces\" Hibernate to specify the allowed discriminator values, even when "
-"retrieving all instances of the root class."
-msgstr ""
-"<literal>force(强制)</literal>(可选 — 默认为 <literal>false</literal>)\"强"
-"制\" Hibernate 指定允许的鉴别器值,即使当取得的所有实例都是根类的。 "
+msgid "<literal>force</literal> (optional - defaults to <literal>false</literal>): \"forces\" Hibernate to specify the allowed discriminator values, even when retrieving all instances of the root class."
+msgstr "<literal>force(强制)</literal>(可选 — 默认为 <literal>false</literal>)\"强制\" Hibernate 指定允许的鉴别器值,即使当取得的所有实例都是根类的。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>insert</literal> (optional - defaults to <literal>true</literal>): "
-"set this to <literal>false</literal> if your discriminator column is also "
-"part of a mapped composite identifier. It tells Hibernate not to include the "
-"column in SQL <literal>INSERTs</literal>."
-msgstr ""
-"<literal>insert</literal>(可选 - 默认为<literal>true</literal>)如果你的鉴别"
-"器字段也是映射为复合标识(composite identifier)的一部分,则需将这个值设为 "
-"<literal>false</literal>。(告诉 Hibernate 在做 SQL <literal>INSERT</"
-"literal> 时不包含该列) "
+msgid "<literal>insert</literal> (optional - defaults to <literal>true</literal>): set this to <literal>false</literal> if your discriminator column is also part of a mapped composite identifier. It tells Hibernate not to include the column in SQL <literal>INSERTs</literal>."
+msgstr "<literal>insert</literal>(可选 - 默认为<literal>true</literal>)如果你的鉴别器字段也是映射为复合标识(composite identifier)的一部分,则需将这个值设为 <literal>false</literal>。(告诉 Hibernate 在做 SQL <literal>INSERT</literal> 时不包含该列) "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>formula</literal> (optional): an arbitrary SQL expression that is "
-"executed when a type has to be evaluated. It allows content-based "
-"discrimination."
-msgstr ""
-"<literal>formula</literal>(可选)一个 SQL 表达式,在类型判断(判断是父类还是"
-"具体子类 — 译注)时执行。可用于基于内容的鉴别器。 "
+msgid "<literal>formula</literal> (optional): an arbitrary SQL expression that is executed when a type has to be evaluated. It allows content-based discrimination."
+msgstr "<literal>formula</literal>(可选)一个 SQL 表达式,在类型判断(判断是父类还是具体子类 — 译注)时执行。可用于基于内容的鉴别器。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Actual values of the discriminator column are specified by the "
-"<literal>discriminator-value</literal> attribute of the <literal>&lt;"
-"class&gt;</literal> and <literal>&lt;subclass&gt;</literal> elements."
-msgstr ""
-"鉴别器字段的实际值是根据 <literal>&lt;class&gt;</literal> 和 <literal>&lt;"
-"subclass&gt;</literal> 元素中的 <literal>discriminator-value</literal> 属性得"
-"来的。"
+msgid "Actual values of the discriminator column are specified by the <literal>discriminator-value</literal> attribute of the <literal>&lt;class&gt;</literal> and <literal>&lt;subclass&gt;</literal> elements."
+msgstr "鉴别器字段的实际值是根据 <literal>&lt;class&gt;</literal> 和 <literal>&lt;subclass&gt;</literal> 元素中的 <literal>discriminator-value</literal> 属性得来的。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>force</literal> attribute is only useful if the table contains "
-"rows with \"extra\" discriminator values that are not mapped to a persistent "
-"class. This will not usually be the case."
-msgstr ""
-"<literal>force</literal> 属性仅仅在这种情况下有用的:表中包含没有被映射到持久"
-"化类的附加辨别器值。这种情况不会经常遇到。 "
+msgid "The <literal>force</literal> attribute is only useful if the table contains rows with \"extra\" discriminator values that are not mapped to a persistent class. This will not usually be the case."
+msgstr "<literal>force</literal> 属性仅仅在这种情况下有用的:表中包含没有被映射到持久化类的附加辨别器值。这种情况不会经常遇到。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>formula</literal> attribute allows you to declare an arbitrary "
-"SQL expression that will be used to evaluate the type of a row. For example:"
-msgstr ""
-"使用 <literal>formula</literal> 属性你可以定义一个 SQL 表达式,用来判断一行数"
-"据的类型。"
+msgid "The <literal>formula</literal> attribute allows you to declare an arbitrary SQL expression that will be used to evaluate the type of a row. For example:"
+msgstr "使用 <literal>formula</literal> 属性你可以定义一个 SQL 表达式,用来判断一行数据的类型。"
 
 #. Tag: title
 #, no-c-format
@@ -1654,114 +827,53 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>&lt;version&gt;</literal> element is optional and indicates "
-"that the table contains versioned data. This is particularly useful if you "
-"plan to use <emphasis>long transactions</emphasis>. See below for more "
-"information:"
-msgstr ""
-"<literal>&lt;version&gt;</literal> 元素是可选的,表明表中包含附带版本信息的数"
-"据。这在你准备使用<emphasis> 长事务(long transactions)</emphasis>的时候特别"
-"有用。下面是更多信息:"
+msgid "The <literal>&lt;version&gt;</literal> element is optional and indicates that the table contains versioned data. This is particularly useful if you plan to use <emphasis>long transactions</emphasis>. See below for more information:"
+msgstr "<literal>&lt;version&gt;</literal> 元素是可选的,表明表中包含附带版本信息的数据。这在你准备使用<emphasis> 长事务(long transactions)</emphasis>的时候特别有用。下面是更多信息:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>column</literal> (optional - defaults to the property name): the "
-"name of the column holding the version number."
-msgstr ""
-"<literal>column</literal>(可选 — 默认为属性名):指定持有版本号的字段名。 "
+msgid "<literal>column</literal> (optional - defaults to the property name): the name of the column holding the version number."
+msgstr "<literal>column</literal>(可选 — 默认为属性名):指定持有版本号的字段名。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>name</literal>: the name of a property of the persistent class."
+msgid "<literal>name</literal>: the name of a property of the persistent class."
 msgstr "<literal>name</literal>:持久化类的属性名。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>type</literal> (optional - defaults to <literal>integer</literal>): "
-"the type of the version number."
-msgstr ""
-"<literal>type</literal>(可选 — 默认是 <literal>integer</literal>):版本号的"
-"类型。 "
+msgid "<literal>type</literal> (optional - defaults to <literal>integer</literal>): the type of the version number."
+msgstr "<literal>type</literal>(可选 — 默认是 <literal>integer</literal>):版本号的类型。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>access</literal> (optional - defaults to <literal>property</"
-"literal>): the strategy Hibernate uses to access the property value."
-msgstr ""
-"<literal>access</literal>(可选 — 默认为 <literal>property</literal>):"
-"Hibernate 用来访问属性值的策略。 "
+msgid "<literal>access</literal> (optional - defaults to <literal>property</literal>): the strategy Hibernate uses to access the property value."
+msgstr "<literal>access</literal>(可选 — 默认为 <literal>property</literal>):Hibernate 用来访问属性值的策略。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>unsaved-value</literal> (optional - defaults to <literal>undefined</"
-"literal>): a version property value that indicates that an instance is newly "
-"instantiated (unsaved), distinguishing it from detached instances that were "
-"saved or loaded in a previous session. <literal>Undefined</literal> "
-"specifies that the identifier property value should be used."
-msgstr ""
-"<literal>unsaved-value</literal>(可选 — 默认是 <literal>undefined</"
-"literal>):用于标明某个实例时刚刚被实例化的(尚未保存)版本属性值,依靠这个"
-"值就可以把这种情况 和已经在先前的 session 中保存或装载的脱管(detached)实例"
-"区分开来。(<literal>undefined</literal> 指明应被使用的标识属性值。) "
+msgid "<literal>unsaved-value</literal> (optional - defaults to <literal>undefined</literal>): a version property value that indicates that an instance is newly instantiated (unsaved), distinguishing it from detached instances that were saved or loaded in a previous session. <literal>Undefined</literal> specifies that the identifier property value should be used."
+msgstr "<literal>unsaved-value</literal>(可选 — 默认是 <literal>undefined</literal>):用于标明某个实例时刚刚被实例化的(尚未保存)版本属性值,依靠这个值就可以把这种情况 和已经在先前的 session 中保存或装载的脱管(detached)实例区分开来。(<literal>undefined</literal> 指明应被使用的标识属性值。) "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>generated</literal> (optional - defaults to <literal>never</"
-"literal>): specifies that this version property value is generated by the "
-"database. See the discussion of <xref linkend=\"mapping-generated\" /> for "
-"more information."
-msgstr ""
-"<literal>generated</literal>(可选 — 默认是 <literal>never</literal>):表明"
-"此版本属性值是否实际上是由数据库生成的。请参阅 <xref linkend=\"mapping-"
-"generated\"/> 部分的讨论。"
+#, no-c-format
+msgid "<literal>generated</literal> (optional - defaults to <literal>never</literal>): specifies that this version property value is generated by the database. See the discussion of <xref linkend=\"mapping-generated\" /> for more information."
+msgstr "<literal>generated</literal>(可选 — 默认是 <literal>never</literal>):表明此版本属性值是否实际上是由数据库生成的。请参阅 <xref linkend=\"mapping-generated\"/> 部分的讨论。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>insert</literal> (optional - defaults to <literal>true</literal>): "
-"specifies whether the version column should be included in SQL insert "
-"statements. It can be set to <literal>false</literal> if the database column "
-"is defined with a default value of <literal>0</literal>."
-msgstr ""
-"<literal>insert</literal>(可选 — 默认是 <literal>true</literal>):表明此版"
-"本列应该包含在 SQL 插入语句中。只有当数据库字段有默认值 <literal>0</literal> "
-"的时候,才可以设置为 <literal>false</literal>。 "
+msgid "<literal>insert</literal> (optional - defaults to <literal>true</literal>): specifies whether the version column should be included in SQL insert statements. It can be set to <literal>false</literal> if the database column is defined with a default value of <literal>0</literal>."
+msgstr "<literal>insert</literal>(可选 — 默认是 <literal>true</literal>):表明此版本列应该包含在 SQL 插入语句中。只有当数据库字段有默认值 <literal>0</literal> 的时候,才可以设置为 <literal>false</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Version numbers can be of Hibernate type <literal>long</literal>, "
-"<literal>integer</literal>, <literal>short</literal>, <literal>timestamp</"
-"literal> or <literal>calendar</literal>."
-msgstr ""
-"版本号必须是以下类型:<literal>long</literal>、<literal>integer</literal>、"
-"<literal>short</literal>、<literal>timestamp</literal> 或者 "
-"<literal>calendar</literal>。"
+msgid "Version numbers can be of Hibernate type <literal>long</literal>, <literal>integer</literal>, <literal>short</literal>, <literal>timestamp</literal> or <literal>calendar</literal>."
+msgstr "版本号必须是以下类型:<literal>long</literal>、<literal>integer</literal>、<literal>short</literal>、<literal>timestamp</literal> 或者 <literal>calendar</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A version or timestamp property should never be null for a detached "
-"instance. Hibernate will detect any instance with a null version or "
-"timestamp as transient, irrespective of what other <literal>unsaved-value</"
-"literal> strategies are specified. <emphasis>Declaring a nullable version or "
-"timestamp property is an easy way to avoid problems with transitive "
-"reattachment in Hibernate. It is especially useful for people using assigned "
-"identifiers or composite keys</emphasis>."
-msgstr ""
-"一个脱管(detached)实例的 version 或 timestamp 属性不能为空(null),因为 "
-"Hibernate 不管  <literal>unsaved-value</literal> 被指定为何种策略,它将任何属"
-"性为空的 version 或 timestamp 实例看作为瞬时(transient)实例。 <emphasis>避"
-"免 Hibernate 中的传递重附(transitive reattachment)问题的一个简单方法是 定义"
-"一个不能为空的 version 或 timestamp 属性,特别是在人们使用程序分配的标识符"
-"(assigned identifiers) 或复合主键时非常有用</emphasis>。"
+msgid "A version or timestamp property should never be null for a detached instance. Hibernate will detect any instance with a null version or timestamp as transient, irrespective of what other <literal>unsaved-value</literal> strategies are specified. <emphasis>Declaring a nullable version or timestamp property is an easy way to avoid problems with transitive reattachment in Hibernate. It is especially useful for people using assigned identifiers or composite keys</emphasis>."
+msgstr "一个脱管(detached)实例的 version 或 timestamp 属性不能为空(null),因为 Hibernate 不管  <literal>unsaved-value</literal> 被指定为何种策略,它将任何属性为空的 version 或 timestamp 实例看作为瞬时(transient)实例。 <emphasis>避免 Hibernate 中的传递重附(transitive reattachment)问题的一个简单方法是 定义一个不能为空的 version 或 timestamp 属性,特别是在人们使用程序分配的标识符(assigned identifiers) 或复合主键时非常有用</emphasis>。"
 
 #. Tag: title
 #, no-c-format
@@ -1770,78 +882,33 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The optional <literal>&lt;timestamp&gt;</literal> element indicates that the "
-"table contains timestamped data. This provides an alternative to versioning. "
-"Timestamps are a less safe implementation of optimistic locking. However, "
-"sometimes the application might use the timestamps in other ways."
-msgstr ""
-"可选的 <literal>&lt;timestamp&gt;</literal> 元素指明了表中包含时间戳数据。这"
-"用来作为版本的替代。时间戳本质上是一种对乐观锁定的一种不是特别安全的实现。当"
-"然,有时候应用程序可能在其他方面使用时间戳。 "
+msgid "The optional <literal>&lt;timestamp&gt;</literal> element indicates that the table contains timestamped data. This provides an alternative to versioning. Timestamps are a less safe implementation of optimistic locking. However, sometimes the application might use the timestamps in other ways."
+msgstr "可选的 <literal>&lt;timestamp&gt;</literal> 元素指明了表中包含时间戳数据。这用来作为版本的替代。时间戳本质上是一种对乐观锁定的一种不是特别安全的实现。当然,有时候应用程序可能在其他方面使用时间戳。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>column</literal> (optional - defaults to the property name): the "
-"name of a column holding the timestamp."
-msgstr ""
-"<literal>column</literal>(可选 — 默认为属性名):存有时间戳的字段名。 "
+msgid "<literal>column</literal> (optional - defaults to the property name): the name of a column holding the timestamp."
+msgstr "<literal>column</literal>(可选 — 默认为属性名):存有时间戳的字段名。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>name</literal>: the name of a JavaBeans style property of Java type "
-"<literal>Date</literal> or <literal>Timestamp</literal> of the persistent "
-"class."
-msgstr ""
-"<literal>name</literal>:在持久化类中的 JavaBeans 风格的属性名,其 Java 类型"
-"是 <literal>Date</literal> 或者 <literal>Timestamp</literal> 的。 "
+msgid "<literal>name</literal>: the name of a JavaBeans style property of Java type <literal>Date</literal> or <literal>Timestamp</literal> of the persistent class."
+msgstr "<literal>name</literal>:在持久化类中的 JavaBeans 风格的属性名,其 Java 类型是 <literal>Date</literal> 或者 <literal>Timestamp</literal> 的。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>unsaved-value</literal> (optional - defaults to <literal>null</"
-"literal>): a version property value that indicates that an instance is newly "
-"instantiated (unsaved), distinguishing it from detached instances that were "
-"saved or loaded in a previous session. <literal>Undefined</literal> "
-"specifies that the identifier property value should be used."
-msgstr ""
-"<literal>unsaved-value</literal>(可选 — 默认是 <literal>null</literal>):用"
-"于标明某个实例时刚刚被实例化的(尚未保存)版本属性值,依靠这个值就可以把这种"
-"情况和已经在先前的 session 中保存或装载的脱管(detached)实例区分开来。"
-"(<literal>undefined</literal> 指明使用标识属性值进行这种判断。) "
+msgid "<literal>unsaved-value</literal> (optional - defaults to <literal>null</literal>): a version property value that indicates that an instance is newly instantiated (unsaved), distinguishing it from detached instances that were saved or loaded in a previous session. <literal>Undefined</literal> specifies that the identifier property value should be used."
+msgstr "<literal>unsaved-value</literal>(可选 — 默认是 <literal>null</literal>):用于标明某个实例时刚刚被实例化的(尚未保存)版本属性值,依靠这个值就可以把这种情况和已经在先前的 session 中保存或装载的脱管(detached)实例区分开来。(<literal>undefined</literal> 指明使用标识属性值进行这种判断。) "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>source</literal> (optional - defaults to <literal>vm</literal>): "
-"Where should Hibernate retrieve the timestamp value from? From the database, "
-"or from the current JVM? Database-based timestamps incur an overhead because "
-"Hibernate must hit the database in order to determine the \"next value\". It "
-"is safer to use in clustered environments. Not all <literal>Dialects</"
-"literal> are known to support the retrieval of the database's current "
-"timestamp. Others may also be unsafe for usage in locking due to lack of "
-"precision (Oracle 8, for example)."
-msgstr ""
-"<literal>source</literal>(可选 — 默认是 <literal>vm</literal>):Hibernate "
-"如何才能获取到时间戳的值呢?从数据库,还是当前 JVM?从数据库获取会带来一些负"
-"担,因为 Hibernate 必须访问数据库来获得“下一个值”,但是在集群环境中会更安全"
-"些。还要注意,并不是所有的 <literal>Dialect(方言)</literal>都支持获得数据库"
-"的当前时间戳的,而支持的数据库中又有一部分因为精度不足,用于锁定是不安全的"
-"(例如 Oracle 8)。 "
+msgid "<literal>source</literal> (optional - defaults to <literal>vm</literal>): Where should Hibernate retrieve the timestamp value from? From the database, or from the current JVM? Database-based timestamps incur an overhead because Hibernate must hit the database in order to determine the \"next value\". It is safer to use in clustered environments. Not all <literal>Dialects</literal> are known to support the retrieval of the database's current timestamp. Others may also be unsafe for usage in locking due to lack of precision (Oracle 8, for example)."
+msgstr "<literal>source</literal>(可选 — 默认是 <literal>vm</literal>):Hibernate 如何才能获取到时间戳的值呢?从数据库,还是当前 JVM?从数据库获取会带来一些负担,因为 Hibernate 必须访问数据库来获得“下一个值”,但是在集群环境中会更安全些。还要注意,并不是所有的 <literal>Dialect(方言)</literal>都支持获得数据库的当前时间戳的,而支持的数据库中又有一部分因为精度不足,用于锁定是不安全的(例如 Oracle 8)。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>generated</literal> (optional - defaults to <literal>never</"
-"literal>): specifies that this timestamp property value is actually "
-"generated by the database. See the discussion of <xref linkend=\"mapping-"
-"generated\" /> for more information."
-msgstr ""
-"<literal>generated</literal>(可选 - 默认是 <literal>never</literal>):指出"
-"时间戳值是否实际上是由数据库生成的。请参阅 <xref linkend=\"mapping-generated"
-"\"/> 的讨论。"
+#, no-c-format
+msgid "<literal>generated</literal> (optional - defaults to <literal>never</literal>): specifies that this timestamp property value is actually generated by the database. See the discussion of <xref linkend=\"mapping-generated\" /> for more information."
+msgstr "<literal>generated</literal>(可选 - 默认是 <literal>never</literal>):指出时间戳值是否实际上是由数据库生成的。请参阅 <xref linkend=\"mapping-generated\"/> 的讨论。 "
 
 #. Tag: title
 #, no-c-format
@@ -1850,16 +917,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>&lt;Timestamp&gt;</literal> is equivalent to <literal>&lt;version "
-"type=\"timestamp\"&gt;</literal>. And <literal>&lt;timestamp source=\"db"
-"\"&gt;</literal> is equivalent to <literal>&lt;version type=\"dbtimestamp"
-"\"&gt;</literal>"
-msgstr ""
-"注意,<literal>&lt;timestamp&gt;</literal> 和 <literal>&lt;version type="
-"\"timestamp\"&gt;</literal> 是等价的。并且 <literal>&lt;timestamp source=\"db"
-"\"&gt;</literal> 和 <literal>&lt;version type=\"dbtimestamp\"&gt;</literal> "
-"是等价的。 "
+msgid "<literal>&lt;Timestamp&gt;</literal> is equivalent to <literal>&lt;version type=\"timestamp\"&gt;</literal>. And <literal>&lt;timestamp source=\"db\"&gt;</literal> is equivalent to <literal>&lt;version type=\"dbtimestamp\"&gt;</literal>"
+msgstr "注意,<literal>&lt;timestamp&gt;</literal> 和 <literal>&lt;version type=\"timestamp\"&gt;</literal> 是等价的。并且 <literal>&lt;timestamp source=\"db\"&gt;</literal> 和 <literal>&lt;version type=\"dbtimestamp\"&gt;</literal> 是等价的。 "
 
 #. Tag: title
 #, no-c-format
@@ -1868,109 +927,53 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>&lt;property&gt;</literal> element declares a persistent "
-"JavaBean style property of the class."
-msgstr ""
-"<literal>&lt;property&gt;</literal> 元素为类定义了一个持久化的、JavaBean 风格"
-"的属性。 "
+msgid "The <literal>&lt;property&gt;</literal> element declares a persistent JavaBean style property of the class."
+msgstr "<literal>&lt;property&gt;</literal> 元素为类定义了一个持久化的、JavaBean 风格的属性。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>name</literal>: the name of the property, with an initial lowercase "
-"letter."
+msgid "<literal>name</literal>: the name of the property, with an initial lowercase letter."
 msgstr "<literal>name</literal>:属性的名字,以小写字母开头。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>column</literal> (optional - defaults to the property name): the "
-"name of the mapped database table column. This can also be specified by "
-"nested <literal>&lt;column&gt;</literal> element(s)."
-msgstr ""
-"<literal>column</literal>(可选 — 默认为属性名字):对应的数据库字段名。 也可"
-"以通过嵌套的 <literal>&lt;column&gt;</literal> 元素指定。"
+#, no-c-format
+msgid "<literal>column</literal> (optional - defaults to the property name): the name of the mapped database table column. This can also be specified by nested <literal>&lt;column&gt;</literal> element(s)."
+msgstr "<literal>column</literal>(可选 — 默认为属性名字):对应的数据库字段名。也可以通过嵌套的 <literal>&lt;column&gt;</literal> 元素指定。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>update, insert</literal> (optional - defaults to <literal>true</"
-"literal>): specifies that the mapped columns should be included in SQL "
-"<literal>UPDATE</literal> and/or <literal>INSERT</literal> statements. "
-"Setting both to <literal>false</literal> allows a pure \"derived\" property "
-"whose value is initialized from some other property that maps to the same "
-"column(s), or by a trigger or other application."
-msgstr ""
-"<literal>update, insert</literal>(可选 — 默认为 <literal>true</literal>): "
-"表明用于 <literal>UPDATE</literal> 和/或 <literal>INSERT</literal> 的 SQL 语"
-"句中是否包含这个被映射了的字段。这二者如果都设置为 <literal>false</literal> "
-"则表明这是一个“外源性(derived)”的属性,它的值来源于映射到同一个(或多个) "
-"字段的某些其他属性,或者通过一个 trigger(触发器)或其他程序生成。"
+#, no-c-format
+msgid "<literal>update, insert</literal> (optional - defaults to <literal>true</literal>): specifies that the mapped columns should be included in SQL <literal>UPDATE</literal> and/or <literal>INSERT</literal> statements. Setting both to <literal>false</literal> allows a pure \"derived\" property whose value is initialized from some other property that maps to the same column(s), or by a trigger or other application."
+msgstr "<literal>update, insert</literal>(可选 — 默认为 <literal>true</literal>): 表明用于 <literal>UPDATE</literal> 和/或 <literal>INSERT</literal> 的 SQL 语句中是否包含这个被映射了的字段。这二者如果都设置为 <literal>false</literal> 则表明这是一个“外源性(derived)”的属性,它的值来源于映射到同一个(或多个) 字段的某些其他属性,或者通过一个 trigger(触发器)或其他程序生成。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>formula</literal> (optional): an SQL expression that defines the "
-"value for a <emphasis>computed</emphasis> property. Computed properties do "
-"not have a column mapping of their own."
-msgstr ""
-"<literal>formula</literal>(可选):一个 SQL 表达式,定义了这个<emphasis>计"
-"算 (computed)</emphasis> 属性的值。计算属性没有和它对应的数据库字段。"
+msgid "<literal>formula</literal> (optional): an SQL expression that defines the value for a <emphasis>computed</emphasis> property. Computed properties do not have a column mapping of their own."
+msgstr "<literal>formula</literal>(可选):一个 SQL 表达式,定义了这个<emphasis>计算 (computed)</emphasis> 属性的值。计算属性没有和它对应的数据库字段。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>lazy</literal> (optional - defaults to <literal>false</literal>): "
-"specifies that this property should be fetched lazily when the instance "
-"variable is first accessed. It requires build-time bytecode instrumentation."
-msgstr ""
-"<literal>lazy</literal>(可选 — 默认为 <literal>false</literal>):指定 指定"
-"实例变量第一次被访问时,这个属性是否延迟抓取(fetched lazily)( 需要运行时字"
-"节码增强)。"
+#, no-c-format
+msgid "<literal>lazy</literal> (optional - defaults to <literal>false</literal>): specifies that this property should be fetched lazily when the instance variable is first accessed. It requires build-time bytecode instrumentation."
+msgstr "<literal>lazy</literal>(可选 — 默认为 <literal>false</literal>):指定指定实例变量第一次被访问时,这个属性是否延迟抓取(fetched lazily)( 需要运行时字节码增强)。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>unique</literal> (optional): enables the DDL generation of a unique "
-"constraint for the columns. Also, allow this to be the target of a "
-"<literal>property-ref</literal>."
-msgstr ""
-"<literal>unique</literal>(可选):使用 DDL 为该字段添加唯一的约束。同样,允"
-"许它作为 <literal>property-ref</literal> 引用的目标。"
+#, no-c-format
+msgid "<literal>unique</literal> (optional): enables the DDL generation of a unique constraint for the columns. Also, allow this to be the target of a <literal>property-ref</literal>."
+msgstr "<literal>unique</literal>(可选):使用 DDL 为该字段添加唯一的约束。同样,允许它作为 <literal>property-ref</literal> 引用的目标。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>not-null</literal> (optional): enables the DDL generation of a "
-"nullability constraint for the columns."
-msgstr ""
-"<literal>not-null</literal>(可选):使用 DDL 为该字段添加可否为空"
-"(nullability)的约束。"
+#, no-c-format
+msgid "<literal>not-null</literal> (optional): enables the DDL generation of a nullability constraint for the columns."
+msgstr "<literal>not-null</literal>(可选):使用 DDL 为该字段添加可否为空(nullability)的约束。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
-"literal>): specifies that updates to this property do or do not require "
-"acquisition of the optimistic lock. In other words, it determines if a "
-"version increment should occur when this property is dirty."
-msgstr ""
-"<literal>optimistic-lock</literal>(可选 — 默认为 <literal>true</literal>):"
-"指定这个属性在做更新时是否需要获得乐观锁定(optimistic lock)。换句话说,它决"
-"定这个属性发生脏数据时版本(version)的值是否增长。"
+#, no-c-format
+msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</literal>): specifies that updates to this property do or do not require acquisition of the optimistic lock. In other words, it determines if a version increment should occur when this property is dirty."
+msgstr "<literal>optimistic-lock</literal>(可选 — 默认为 <literal>true</literal>):指定这个属性在做更新时是否需要获得乐观锁定(optimistic lock)。换句话说,它决定这个属性发生脏数据时版本(version)的值是否增长。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>generated</literal> (optional - defaults to <literal>never</"
-"literal>): specifies that this property value is actually generated by the "
-"database. See the discussion of <xref linkend=\"mapping-generated\" /> for "
-"more information."
-msgstr ""
-"<literal>generated</literal>(可选 — 默认为 <literal>never</literal>):表明"
-"此属性值是否实际上是由数据库生成的。请参阅 <xref linkend=\"Basic_OR_Mapping-"
-"Generated_Properties\"/> 的讨论。"
+#, no-c-format
+msgid "<literal>generated</literal> (optional - defaults to <literal>never</literal>): specifies that this property value is actually generated by the database. See the discussion of <xref linkend=\"mapping-generated\" /> for more information."
+msgstr "<literal>generated</literal>(可选 — 默认为 <literal>never</literal>):表明此属性值是否实际上是由数据库生成的。请参阅 <xref linkend=\"mapping-generated\" /> 的讨论。"
 
 #. Tag: para
 #, no-c-format
@@ -1978,24 +981,14 @@
 msgstr "<emphasis>typename</emphasis> 可以是如下几种:"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The name of a Hibernate basic type: <literal>integer, string, character, "
-"date, timestamp, float, binary, serializable, object, blob</literal> etc."
-msgstr ""
-"Hibernate 基本类型名(比如:<literal>integer, string, character,date, "
-"timestamp, float, binary, serializable, object, blob</literal>)。"
+#, no-c-format
+msgid "The name of a Hibernate basic type: <literal>integer, string, character, date, timestamp, float, binary, serializable, object, blob</literal> etc."
+msgstr "Hibernate 基本类型名(比如:<literal>integer, string, character,date, timestamp, float, binary, serializable, object, blob</literal>)。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The name of a Java class with a default basic type: <literal>int, float, "
-"char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob</"
-"literal> etc."
-msgstr ""
-"一个 Java 类的名字,这个类属于一种默认基础类型(比如:<literal>int, float,"
-"char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob</"
-"literal>)。"
+#, no-c-format
+msgid "The name of a Java class with a default basic type: <literal>int, float, char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob</literal> etc."
+msgstr "一个 Java 类的名字,这个类属于一种默认基础类型(比如:<literal>int, float,char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob</literal>)。 "
 
 #. Tag: para
 #, no-c-format
@@ -2003,269 +996,119 @@
 msgstr "一个可以序列化的 Java 类的名字。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The class name of a custom type: <literal>com.illflow.type.MyCustomType</"
-"literal> etc."
-msgstr ""
-"一个自定义类型的类的名字。(比如:<literal>com.illflow.type.MyCustomType</"
-"literal>)。"
+#, no-c-format
+msgid "The class name of a custom type: <literal>com.illflow.type.MyCustomType</literal> etc."
+msgstr "一个自定义类型的类的名字,如:<literal>com.illflow.type.MyCustomType</literal>。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"If you do not specify a type, Hibernate will use reflection upon the named "
-"property and guess the correct Hibernate type. Hibernate will attempt to "
-"interpret the name of the return class of the property getter using, in "
-"order, rules 2, 3, and 4. In certain cases you will need the <literal>type</"
-"literal> attribute. For example, to distinguish between <literal>Hibernate."
-"DATE</literal> and <literal>Hibernate.TIMESTAMP</literal>, or to specify a "
-"custom type."
-msgstr ""
-"如果你没有指定类型,Hibernarte 会使用反射来得到这个名字的属性,以此来猜测正确"
-"的 Hibernate 类型。Hibernate 会按照规则 2,3,4 的顺序对属性读取器(getter方"
-"法)的返回类进行解释。然而,这还不够。 在某些情况下你仍然需要 <literal>type</"
-"literal> 属性。(比如,为了区别<literal>Hibernate.DATE</literal> 和"
-"<literal>Hibernate.TIMESTAMP</literal>,或者为了指定一个自定义类型。)"
+#, no-c-format
+msgid "If you do not specify a type, Hibernate will use reflection upon the named property and guess the correct Hibernate type. Hibernate will attempt to interpret the name of the return class of the property getter using, in order, rules 2, 3, and 4. In certain cases you will need the <literal>type</literal> attribute. For example, to distinguish between <literal>Hibernate.DATE</literal> and <literal>Hibernate.TIMESTAMP</literal>, or to specify a custom type."
+msgstr "如果你没有指定类型,Hibernarte 会使用反射来得到这个名字的属性,以此来猜测正确的 Hibernate 类型。Hibernate 会按照规则 2,3,4 的顺序对属性读取器(getter方法)的返回类进行解释。然而,这还不够。 在某些情况下你仍然需要 <literal>type</literal> 属性。(比如,为了区别<literal>Hibernate.DATE</literal> 和<literal>Hibernate.TIMESTAMP</literal>,或者为了指定一个自定义类型。) "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>access</literal> attribute allows you to control how Hibernate "
-"accesses the property at runtime. By default, Hibernate will call the "
-"property get/set pair. If you specify <literal>access=\"field\"</literal>, "
-"Hibernate will bypass the get/set pair and access the field directly using "
-"reflection. You can specify your own strategy for property access by naming "
-"a class that implements the interface <literal>org.hibernate.property."
-"PropertyAccessor</literal>."
-msgstr ""
-"<literal>access</literal> 属性用来让你控制 Hibernate 如何在运行时访问属性。在"
-"默认情况下,Hibernate 会使用属性的 get/set 方法对(pair)。如果你指明 "
-"<literal>access=\"field\"</literal>,Hibernate 会忽略 get/set 方法对,直接使"
-"用反射来访问成员变量。你也可以指定你自己的策略,这就需要你自己实现 "
-"<literal>org.hibernate.property.PropertyAccessor</literal> 接口,再在 access "
-"中设置你自定义策略类的名字。"
+#, no-c-format
+msgid "The <literal>access</literal> attribute allows you to control how Hibernate accesses the property at runtime. By default, Hibernate will call the property get/set pair. If you specify <literal>access=\"field\"</literal>, Hibernate will bypass the get/set pair and access the field directly using reflection. You can specify your own strategy for property access by naming a class that implements the interface <literal>org.hibernate.property.PropertyAccessor</literal>."
+msgstr "<literal>access</literal> 属性用来让你控制 Hibernate 如何在运行时访问属性。在默认情况下,Hibernate 会使用属性的 get/set 方法对(pair)。如果你指明 <literal>access=\"field\"</literal>,Hibernate 会忽略 get/set 方法对,直接使用反射来访问成员变量。你也可以指定你自己的策略,这就需要你自己实现 <literal>org.hibernate.property.PropertyAccessor</literal> 接口,再在 access 中设置你自定义策略类的名字。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"A powerful feature is derived properties. These properties are by definition "
-"read-only. The property value is computed at load time. You declare the "
-"computation as an SQL expression. This then translates to a <literal>SELECT</"
-"literal> clause subquery in the SQL query that loads an instance:"
-msgstr ""
-"衍生属性(derive propertie)是一个特别强大的特征。这些属性应该定义为只读,属"
-"性值在装载时计算生成。 你用一个 SQL 表达式生成计算的结果,它会在这个实例转载"
-"时翻译成一个 SQL 查询的 <literal>SELECT</literal> 子查询语句。"
+#, no-c-format
+msgid "A powerful feature is derived properties. These properties are by definition read-only. The property value is computed at load time. You declare the computation as an SQL expression. This then translates to a <literal>SELECT</literal> clause subquery in the SQL query that loads an instance:"
+msgstr "衍生属性(derive propertie)是一个特别强大的特征。这些属性应该定义为只读,属性值在装载时计算生成。 你用一个 SQL 表达式生成计算的结果,它会在这个实例转载时翻译成一个 SQL 查询的 <literal>SELECT</literal> 子查询语句:"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"You can reference the entity table by not declaring an alias on a particular "
-"column. This would be <literal>customerId</literal> in the given example. "
-"You can also use the nested <literal>&lt;formula&gt;</literal> mapping "
-"element if you do not want to use the attribute."
-msgstr ""
-"注意,你可以使用实体自己的表,而不用为这个特别的列定义别名(上面例子中的"
-"<literal>customerId</literal>)。同时注意,如果你不喜欢使用属性, 你可以使用"
-"嵌套的 <literal>&lt;formula&gt;</literal> 映射元素。"
+#, no-c-format
+msgid "You can reference the entity table by not declaring an alias on a particular column. This would be <literal>customerId</literal> in the given example. You can also use the nested <literal>&lt;formula&gt;</literal> mapping element if you do not want to use the attribute."
+msgstr "注意,你可以使用实体自己的表,而不用为这个特别的列定义别名(上面例子中的<literal>customerId</literal>)。同时注意,如果你不喜欢使用属性, 你可以使用嵌套的 <literal>&lt;formula&gt;</literal> 映射元素。 "
 
 #. Tag: title
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Many-to-one"
-msgstr "多对一(many-to-one)"
+msgstr "多对一(many-to-one) "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"An ordinary association to another persistent class is declared using a "
-"<literal>many-to-one</literal> element. The relational model is a many-to-"
-"one association; a foreign key in one table is referencing the primary key "
-"column(s) of the target table."
-msgstr ""
-"通过 <literal>many-to-one</literal> 元素,可以定义一种常见的与另一个持久化类的"
-"关联。这种关系模型是多对一关联(实际上是一个对象引用-译注):这个表的一个外"
-"键引用目标表的主键字段。"
+#, no-c-format
+msgid "An ordinary association to another persistent class is declared using a <literal>many-to-one</literal> element. The relational model is a many-to-one association; a foreign key in one table is referencing the primary key column(s) of the target table."
+msgstr "通过 <literal>many-to-one</literal> 元素,可以定义一种常见的与另一个持久化类的关联。这种关系模型是多对一关联(实际上是一个对象引用-译注):这个表的一个外键引用目标表的主键字段。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>name</literal>: the name of the property."
-msgstr "<literal>name</literal>:属性名"
+msgstr "<literal>name</literal>:属性的名称。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>column</literal> (optional): the name of the foreign key column. "
-"This can also be specified by nested <literal>&lt;column&gt;</literal> "
-"element(s)."
-msgstr ""
-"<literal>column</literal>(可选):外键字段的名称。也可以通过嵌套的  "
-"<literal>&lt;column&gt;</literal> 指定。"
+#, no-c-format
+msgid "<literal>column</literal> (optional): the name of the foreign key column. This can also be specified by nested <literal>&lt;column&gt;</literal> element(s)."
+msgstr "<literal>column</literal>(可选):外键字段的名称。也可以通过嵌套的 <literal>&lt;column&gt;</literal> 指定。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>class</literal> (optional - defaults to the property type "
-"determined by reflection): the name of the associated class."
-msgstr ""
-"<literal>class</literal>(可选 — 默认是通过反射得到的属性类型):被关联的类的"
-"名字。"
+#, no-c-format
+msgid "<literal>class</literal> (optional - defaults to the property type determined by reflection): the name of the associated class."
+msgstr "<literal>class</literal>(可选 — 默认是通过反射得到的属性类型):被关联的类的名字。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>cascade</literal> (optional): specifies which operations should be "
-"cascaded from the parent object to the associated object."
-msgstr ""
-"<literal>cascade(级联)</literal>(可选)表明操作是否从父对象级联到被关联的"
-"对象。"
+#, no-c-format
+msgid "<literal>cascade</literal> (optional): specifies which operations should be cascaded from the parent object to the associated object."
+msgstr "<literal>cascade(级联)</literal>(可选)表明操作是否从父对象级联到被关联的对象。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>fetch</literal> (optional - defaults to <literal>select</literal>): "
-"chooses between outer-join fetching or sequential select fetching."
-msgstr ""
-"<literal>fetch</literal>(可选 — 默认为 <literal>select</literal>):在外连接"
-"抓取(outer-join fetching)和序列选择抓取(sequential select fetching)两者中"
-"选择其一。"
+#, no-c-format
+msgid "<literal>fetch</literal> (optional - defaults to <literal>select</literal>): chooses between outer-join fetching or sequential select fetching."
+msgstr "<literal>fetch</literal>(可选 — 默认为 <literal>select</literal>):在外连接抓取(outer-join fetching)和序列选择抓取(sequential select fetching)两者中选择其一。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>update, insert</literal> (optional - defaults to <literal>true</"
-"literal>): specifies that the mapped columns should be included in SQL "
-"<literal>UPDATE</literal> and/or <literal>INSERT</literal> statements. "
-"Setting both to <literal>false</literal> allows a pure \"derived\" "
-"association whose value is initialized from another property that maps to "
-"the same column(s), or by a trigger or other application."
-msgstr ""
-"<literal>update, insert</literal>(可选 — 默认为 <literal>true</literal>)指"
-"定对应的字段是否包含在用于 <literal>UPDATE</literal> 和/或 <literal>INSERT</"
-"literal> 的 SQL 语句中。如果二者都是<literal>false</literal>,则这是一个纯粹"
-"的 “外源性(derived)”关联,它的值是通过映射到同一个(或多个)字段的某些其他"
-"属性得到 或者通过 trigger(触发器)、或其他程序生成。"
+#, no-c-format
+msgid "<literal>update, insert</literal> (optional - defaults to <literal>true</literal>): specifies that the mapped columns should be included in SQL <literal>UPDATE</literal> and/or <literal>INSERT</literal> statements. Setting both to <literal>false</literal> allows a pure \"derived\" association whose value is initialized from another property that maps to the same column(s), or by a trigger or other application."
+msgstr "<literal>update, insert</literal>(可选 — 默认为 <literal>true</literal>)指定对应的字段是否包含在用于 <literal>UPDATE</literal> 和/或 <literal>INSERT</literal> 的 SQL 语句中。如果二者都是<literal>false</literal>,则这是一个纯粹的 “外源性(derived)”关联,它的值是通过映射到同一个(或多个)字段的某些其他属性得到 或者通过 trigger(触发器)、或其他程序生成。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>property-ref</literal> (optional): the name of a property of the "
-"associated class that is joined to this foreign key. If not specified, the "
-"primary key of the associated class is used."
-msgstr ""
-"<literal>property-ref</literal>:(可选)被关联到此外键的类中的对应属性的名"
-"字。如果没有指定,被关联类的主键将被使用。"
+#, no-c-format
+msgid "<literal>property-ref</literal> (optional): the name of a property of the associated class that is joined to this foreign key. If not specified, the primary key of the associated class is used."
+msgstr "<literal>property-ref</literal>:(可选)被关联到此外键的类中的对应属性的名字。如果没有指定,被关联类的主键将被使用。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>unique</literal> (optional): enables the DDL generation of a unique "
-"constraint for the foreign-key column. By allowing this to be the target of "
-"a <literal>property-ref</literal>, you can make the association multiplicity "
-"one-to-one."
-msgstr ""
-"<literal>unique</literal>(可选):使用 DDL 为外键字段生成一个唯一约束。此"
-"外, 这也可以用作 <literal>property-ref</literal> 的目标属性。这使关联同时具"
-"有一对一的效果。"
+#, no-c-format
+msgid "<literal>unique</literal> (optional): enables the DDL generation of a unique constraint for the foreign-key column. By allowing this to be the target of a <literal>property-ref</literal>, you can make the association multiplicity one-to-one."
+msgstr "<literal>unique</literal>(可选):使用 DDL 为外键字段生成一个唯一约束。此外,这也可以用作 <literal>property-ref</literal> 的目标属性。这使关联同时具有一对一的效果。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>not-null</literal> (optional): enables the DDL generation of a "
-"nullability constraint for the foreign key columns."
-msgstr ""
-"<literal>not-null</literal>(可选):使用 DDL 为外键字段生成一个非空约束。"
+#, no-c-format
+msgid "<literal>not-null</literal> (optional): enables the DDL generation of a nullability constraint for the foreign key columns."
+msgstr "<literal>not-null</literal>(可选):使用 DDL 为外键字段生成一个非空约束。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): "
-"by default, single point associations are proxied. <literal>lazy=\"no-proxy"
-"\"</literal> specifies that the property should be fetched lazily when the "
-"instance variable is first accessed. This requires build-time bytecode "
-"instrumentation. <literal>lazy=\"false\"</literal> specifies that the "
-"association will always be eagerly fetched."
-msgstr ""
-"<literal>lazy</literal>(可选 — 默认为 <literal>proxy</literal>):默认情况"
-"下,单点关联是经过代理的。<literal>lazy=\"no-proxy\"</literal> 指定此属性应该"
-"在实例变量第一次被访问时应该延迟抓取(fetche lazily)(需要运行时字节码的增"
-"强)。<literal>lazy=\"false\"</literal> 指定此关联总是被预先抓取。"
+#, no-c-format
+msgid "<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): by default, single point associations are proxied. <literal>lazy=\"no-proxy\"</literal> specifies that the property should be fetched lazily when the instance variable is first accessed. This requires build-time bytecode instrumentation. <literal>lazy=\"false\"</literal> specifies that the association will always be eagerly fetched."
+msgstr "<literal>lazy</literal>(可选 — 默认为 <literal>proxy</literal>):默认情况下,单点关联是经过代理的。<literal>lazy=\"no-proxy\"</literal> 指定此属性应该在实例变量第一次被访问时应该延迟抓取(fetche lazily)(需要运行时字节码的增强)。<literal>lazy=\"false\"</literal> 指定此关联总是被预先抓取。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>not-found</literal> (optional - defaults to <literal>exception</"
-"literal>): specifies how foreign keys that reference missing rows will be "
-"handled. <literal>ignore</literal> will treat a missing row as a null "
-"association."
-msgstr ""
-"<literal>not-found</literal>(可选 - 默认为<literal>exception</literal>):指"
-"定如何处理引用缺失行的外键:<literal>ignore</literal> 会把缺失的行作为一个空"
-"关联处理。"
+#, no-c-format
+msgid "<literal>not-found</literal> (optional - defaults to <literal>exception</literal>): specifies how foreign keys that reference missing rows will be handled. <literal>ignore</literal> will treat a missing row as a null association."
+msgstr "<literal>not-found</literal>(可选 - 默认为<literal>exception</literal>):指定如何处理引用缺失行的外键:<literal>ignore</literal> 会把缺失的行作为一个空关联处理。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>entity-name</literal> (optional): the entity name of the associated "
-"class."
-msgstr "<literal>entity-name</literal>(可选):被关联的类的实体名。"
+#, no-c-format
+msgid "<literal>entity-name</literal> (optional): the entity name of the associated class."
+msgstr "<literal>entity-name</literal>(可选):被关联的类的实体名。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>formula</literal> (optional): an SQL expression that defines the "
-"value for a <emphasis>computed</emphasis> foreign key."
-msgstr ""
-"<literal>formula</literal>(可选):SQL 表达式,用于定义 <emphasis>computed"
-"(计算出的)</emphasis>外键值。"
+msgid "<literal>formula</literal> (optional): an SQL expression that defines the value for a <emphasis>computed</emphasis> foreign key."
+msgstr "<literal>formula</literal>(可选):SQL 表达式,用于定义 <emphasis>computed(计算出的)</emphasis>外键值。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Setting a value of the <literal>cascade</literal> attribute to any "
-"meaningful value other than <literal>none</literal> will propagate certain "
-"operations to the associated object. The meaningful values are divided into "
-"three categories. First, basic operations, which include: <literal>persist, "
-"merge, delete, save-update, evict, replicate, lock and refresh</literal>; "
-"second, special values: <literal>delete-orphan</literal>; and third,"
-"<literal>all</literal> comma-separated combinations of operation names: "
-"<literal>cascade=\"persist,merge,evict\"</literal> or <literal>cascade=\"all,"
-"delete-orphan\"</literal>. See <xref linkend=\"objectstate-transitive\" /> "
-"for a full explanation. Note that single valued, many-to-one and one-to-one, "
-"associations do not support orphan delete."
-msgstr ""
-"<literal>cascade</literal> 属性设置为除了<literal>none</literal> 以外任何有意"
-"义的值,它将把特定的操作传递到关联对象中。这个值就代表着 Hibernate 基本操作的"
-"名称,<literal>persist, merge, delete, save-update, evict, replicate, lock, "
-"refresh</literal>,以及特别的值 <literal>delete-orphan</literal> 和 "
-"<literal>all</literal>,并且可以用逗号分隔符来组合这些操作,例如,"
-"<literal>cascade=\"persist,merge,evict\"</literal> 或  <literal>cascade="
-"\"all,delete-orphan\"</literal>。更全面的解释请参考 <xref linkend="
-"\"Working_with_objects-Transitive_persistence\"/>。注意,单值关联(many-to-"
-"one 和 one-to-one 关联)不支持删除孤儿(orphan delete,删除不再被引用的值)。"
+#, no-c-format
+msgid "Setting a value of the <literal>cascade</literal> attribute to any meaningful value other than <literal>none</literal> will propagate certain operations to the associated object. The meaningful values are divided into three categories. First, basic operations, which include: <literal>persist, merge, delete, save-update, evict, replicate, lock and refresh</literal>; second, special values: <literal>delete-orphan</literal>; and third,<literal>all</literal> comma-separated combinations of operation names: <literal>cascade=\"persist,merge,evict\"</literal> or <literal>cascade=\"all,delete-orphan\"</literal>. See <xref linkend=\"objectstate-transitive\" /> for a full explanation. Note that single valued, many-to-one and one-to-one, associations do not support orphan delete."
+msgstr "<literal>cascade</literal> 属性设置为除了<literal>none</literal> 以外任何有意义的值,它将把特定的操作传递到关联对象中。这个值就代表着 Hibernate 基本操作的名称,<literal>persist, merge, delete, save-update, evict, replicate, lock, refresh</literal>,以及特别的值 <literal>delete-orphan</literal> 和 <literal>all</literal>,并且可以用逗号分隔符来组合这些操作,例如,<literal>cascade=\"persist,merge,evict\"</literal> 或  <literal>cascade=\"all,delete-orphan\"</literal>。更全面的解释请参考 <xref linkend=\"objectstate-transitive\" />。注意,单值关联(many-to-one 和 one-to-one 关联)不支持删除孤儿(orphan delete,删除不再被引用的值)。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Here is an example of a typical <literal>many-to-one</literal> declaration:"
-msgstr "一个典型的简单 <literal>many-to-one</literal> 定义例子:"
+#, no-c-format
+msgid "Here is an example of a typical <literal>many-to-one</literal> declaration:"
+msgstr "一个典型的简单 <literal>many-to-one</literal> 定义例子: "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>property-ref</literal> attribute should only be used for "
-"mapping legacy data where a foreign key refers to a unique key of the "
-"associated table other than the primary key. This is a complicated and "
-"confusing relational model. For example, if the <literal>Product</literal> "
-"class had a unique serial number that is not the primary key. The "
-"<literal>unique</literal> attribute controls Hibernate's DDL generation with "
-"the SchemaExport tool."
-msgstr ""
-"<literal>property-ref</literal> 属性只应该用来对付遗留下来的数据库系统,可能"
-"有外键指向对方关联表的是个非主键字段(但是应该是一个惟一关键字)的情况下。这"
-"是一种十分丑陋的关系模型。比如说,假设 <literal>Product</literal> 类有一个惟"
-"一的序列号,它并不是主键。(<literal>unique</literal> 属性控制 Hibernate 通"
-"过 SchemaExport 工具进行的 DDL 生成。)"
+#, no-c-format
+msgid "The <literal>property-ref</literal> attribute should only be used for mapping legacy data where a foreign key refers to a unique key of the associated table other than the primary key. This is a complicated and confusing relational model. For example, if the <literal>Product</literal> class had a unique serial number that is not the primary key. The <literal>unique</literal> attribute controls Hibernate's DDL generation with the SchemaExport tool."
+msgstr "<literal>property-ref</literal> 属性只应该用来对付遗留下来的数据库系统,可能有外键指向对方关联表的是个非主键字段(但是应该是一个惟一关键字)的情况下。这是一种十分丑陋的关系模型。比如说,假设 <literal>Product</literal> 类有一个惟一的序列号,它并不是主键。(<literal>unique</literal> 属性控制 Hibernate 通过 SchemaExport 工具进行的 DDL 生成。) "
 
 #. Tag: para
 #, no-c-format
@@ -2273,103 +1116,54 @@
 msgstr "那么关于 <literal>OrderItem</literal> 的映射可能是:"
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "This is not encouraged, however."
-msgstr "当然,我们决不鼓励这种用法。"
+msgstr "当然,我们并不鼓励这种用法。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If the referenced unique key comprises multiple properties of the associated "
-"entity, you should map the referenced properties inside a named <literal>&lt;"
-"properties&gt;</literal> element."
-msgstr ""
-"如果被引用的唯一主键由关联实体的多个属性组成,你应该在名称为 <literal>&lt;"
-"properties&gt;</literal> 的元素 里面映射所有关联的属性。"
+msgid "If the referenced unique key comprises multiple properties of the associated entity, you should map the referenced properties inside a named <literal>&lt;properties&gt;</literal> element."
+msgstr "如果被引用的唯一主键由关联实体的多个属性组成,你应该在名称为 <literal>&lt;properties&gt;</literal> 的元素 里面映射所有关联的属性。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"If the referenced unique key is the property of a component, you can specify "
-"a property path:"
-msgstr "假若被引用的唯一主键是组件的属性,你可以指定属性路径:"
+#, no-c-format
+msgid "If the referenced unique key is the property of a component, you can specify a property path:"
+msgstr "假若被引用的唯一主键是组件的属性,你可以指定属性路径: "
 
 #. Tag: title
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "One-to-one"
-msgstr "一对一"
+msgstr "一对一 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A one-to-one association to another persistent class is declared using a "
-"<literal>one-to-one</literal> element."
-msgstr ""
-"持久化对象之间一对一的关联关系是通过 <literal>one-to-one</literal> 元素定义"
-"的。"
+msgid "A one-to-one association to another persistent class is declared using a <literal>one-to-one</literal> element."
+msgstr "持久化对象之间一对一的关联关系是通过 <literal>one-to-one</literal> 元素定义的。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>constrained</literal> (optional): specifies that a foreign key "
-"constraint on the primary key of the mapped table and references the table "
-"of the associated class. This option affects the order in which <literal>save"
-"()</literal> and <literal>delete()</literal> are cascaded, and determines "
-"whether the association can be proxied. It is also used by the schema export "
-"tool."
-msgstr ""
-"<literal>constrained(约束)</literal>(可选)表明该类对应的表对应的数据库"
-"表,和被关联的对象所对应的数据库表之间,通过一个外键引用对主键进行约束。这个"
-"选项影响 <literal>save()</literal> 和 <literal>delete()</literal> 在级联执行"
-"时的先后顺序以及决定该关联能否被委托(也在 schema export tool 中被使用)。"
+#, no-c-format
+msgid "<literal>constrained</literal> (optional): specifies that a foreign key constraint on the primary key of the mapped table and references the table of the associated class. This option affects the order in which <literal>save()</literal> and <literal>delete()</literal> are cascaded, and determines whether the association can be proxied. It is also used by the schema export tool."
+msgstr "<literal>constrained(约束)</literal>(可选)表明该类对应的表对应的数据库表,和被关联的对象所对应的数据库表之间,通过一个外键引用对主键进行约束。这个选项影响 <literal>save()</literal> 和 <literal>delete()</literal> 在级联执行时的先后顺序以及决定该关联能否被委托(也在 schema export tool 中被使用)。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>property-ref</literal> (optional): the name of a property of the "
-"associated class that is joined to the primary key of this class. If not "
-"specified, the primary key of the associated class is used."
-msgstr ""
-"<literal>property-ref</literal>:(可选)指定关联类的属性名,这个属性将会和本"
-"类的主键相对应。如果没有指定,会使用对方关联类的主键。"
+#, no-c-format
+msgid "<literal>property-ref</literal> (optional): the name of a property of the associated class that is joined to the primary key of this class. If not specified, the primary key of the associated class is used."
+msgstr "<literal>property-ref</literal>:(可选)指定关联类的属性名,这个属性将会和本类的主键相对应。如果没有指定,会使用对方关联类的主键。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>formula</literal> (optional): almost all one-to-one associations "
-"map to the primary key of the owning entity. If this is not the case, you "
-"can specify another column, columns or expression to join on using an SQL "
-"formula. See <literal>org.hibernate.test.onetooneformula</literal> for an "
-"example."
-msgstr ""
-"<literal>formula </literal>(可选):绝大多数一对一的关联都指向其实体的主键。"
-"在一些少见的情况中,你可能会指向其他的一个或多个字段,或者是一个表达式,这些"
-"情况下,你可以用一个 SQL 公式来表示。(可以在 org.hibernate.test."
-"onetooneformula 找到例子)"
+#, no-c-format
+msgid "<literal>formula</literal> (optional): almost all one-to-one associations map to the primary key of the owning entity. If this is not the case, you can specify another column, columns or expression to join on using an SQL formula. See <literal>org.hibernate.test.onetooneformula</literal> for an example."
+msgstr "<literal>formula </literal>(可选):绝大多数一对一的关联都指向其实体的主键。在一些少见的情况中,你可能会指向其他的一个或多个字段,或者是一个表达式,这些情况下,你可以用一个 SQL 公式来表示。(可以在 org.hibernate.test.onetooneformula 找到例子) "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): "
-"by default, single point associations are proxied. <literal>lazy=\"no-proxy"
-"\"</literal> specifies that the property should be fetched lazily when the "
-"instance variable is first accessed. It requires build-time bytecode "
-"instrumentation. <literal>lazy=\"false\"</literal> specifies that the "
-"association will always be eagerly fetched. <emphasis>Note that if "
-"<literal>constrained=\"false\"</literal>, proxying is impossible and "
-"Hibernate will eagerly fetch the association</emphasis>."
-msgstr ""
-"<literal>lazy</literal>(可选 — 默认为 <literal>proxy</literal>):默认情况"
-"下,单点关联是经过代理的。<literal>lazy=\"no-proxy\"</literal>指定此属性应该"
-"在实例变量第一次被访问时应该延迟抓取(fetche lazily)(需要运行时字节码的增"
-"强)。 <literal>lazy=\"false\"</literal>指定此关联总是被预先抓取。<emphasis>"
-"注意,如果<literal>constrained=\"false\"</literal>, 不可能使用代理,Hibernate"
-"会采取预先抓取!</emphasis>"
+#, no-c-format
+msgid "<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): by default, single point associations are proxied. <literal>lazy=\"no-proxy\"</literal> specifies that the property should be fetched lazily when the instance variable is first accessed. It requires build-time bytecode instrumentation. <literal>lazy=\"false\"</literal> specifies that the association will always be eagerly fetched. <emphasis>Note that if <literal>constrained=\"false\"</literal>, proxying is impossible and Hibernate will eagerly fetch the association</emphasis>."
+msgstr "<literal>lazy</literal>(可选 — 默认为 <literal>proxy</literal>):默认情况下,单点关联是经过代理的。<literal>lazy=\"no-proxy\"</literal>指定此属性应该在实例变量第一次被访问时应该延迟抓取(fetche lazily)(需要运行时字节码的增强)。 <literal>lazy=\"false\"</literal>指定此关联总是被预先抓取。<emphasis>注意,如果 <literal>constrained=\"false\"</literal>, 不可能使用代理,Hibernate会采取预先抓取!</emphasis>。"
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "There are two varieties of one-to-one associations:"
-msgstr "有两种不同的一对一关联:"
+msgstr "有两种不同的一对一关联: "
 
 #. Tag: para
 #, no-c-format
@@ -2382,221 +1176,114 @@
 msgstr "惟一外键关联"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Primary key associations do not need an extra table column. If two rows are "
-"related by the association, then the two table rows share the same primary "
-"key value. To relate two objects by a primary key association, ensure that "
-"they are assigned the same identifier value."
-msgstr ""
-"主键关联不需要额外的表字段;如果两行是通过这种一对一关系相关联的,那么这两行"
-"就共享同样的主关键字值。所以如果你希望两个对象通过主键一对一关联,你必须确认"
-"它们被赋予同样的标识值!"
+#, no-c-format
+msgid "Primary key associations do not need an extra table column. If two rows are related by the association, then the two table rows share the same primary key value. To relate two objects by a primary key association, ensure that they are assigned the same identifier value."
+msgstr "主键关联不需要额外的表字段;如果两行是通过这种一对一关系相关联的,那么这两行就共享同样的主关键字值。所以如果你希望两个对象通过主键一对一关联,你必须确认它们被赋予同样的标识值。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"For a primary key association, add the following mappings to "
-"<literal>Employee</literal> and <literal>Person</literal> respectively:"
-msgstr ""
-"比如说,对下面的 <literal>Employee</literal> 和 <literal>Person</literal> 进"
-"行主键一对一关联:"
+#, no-c-format
+msgid "For a primary key association, add the following mappings to <literal>Employee</literal> and <literal>Person</literal> respectively:"
+msgstr "比如说,对下面的 <literal>Employee</literal> 和 <literal>Person</literal> 进行主键一对一关联:"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Ensure that the primary keys of the related rows in the PERSON and EMPLOYEE "
-"tables are equal. You use a special Hibernate identifier generation strategy "
-"called <literal>foreign</literal>:"
-msgstr ""
-"现在我们必须确保 PERSON 和 EMPLOYEE 中相关的字段是相等的。我们使用一个被成为 "
-"<literal>foreign</literal> 的特殊的 hibernate 标识符生成策略:"
+#, no-c-format
+msgid "Ensure that the primary keys of the related rows in the PERSON and EMPLOYEE tables are equal. You use a special Hibernate identifier generation strategy called <literal>foreign</literal>:"
+msgstr "现在我们必须确保 PERSON 和 EMPLOYEE 中相关的字段是相等的。我们使用一个被成为 <literal>foreign</literal> 的特殊的 hibernate 标识符生成策略: "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"A newly saved instance of <literal>Person</literal> is assigned the same "
-"primary key value as the <literal>Employee</literal> instance referred with "
-"the <literal>employee</literal> property of that <literal>Person</literal>."
-msgstr ""
-"一个刚刚保存的 <literal>Person</literal> 实例被赋予和该 <literal>Person</"
-"literal> 的 <literal>employee</literal> 属性所指向的 <literal>Employee</"
-"literal> 实例同样的关键字值。"
+#, no-c-format
+msgid "A newly saved instance of <literal>Person</literal> is assigned the same primary key value as the <literal>Employee</literal> instance referred with the <literal>employee</literal> property of that <literal>Person</literal>."
+msgstr "一个刚刚保存的 <literal>Person</literal> 实例被赋予和该 <literal>Person</literal> 的 <literal>employee</literal> 属性所指向的 <literal>Employee</literal> 实例同样的关键字值。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Alternatively, a foreign key with a unique constraint, from "
-"<literal>Employee</literal> to <literal>Person</literal>, can be expressed "
-"as:"
-msgstr ""
-"另一种方式是一个外键和一个惟一关键字对应,上面的 <literal>Employee</literal> "
-"和  <literal>Person</literal> 的例子,如果使用这种关联方式,可以表达成:"
+#, no-c-format
+msgid "Alternatively, a foreign key with a unique constraint, from <literal>Employee</literal> to <literal>Person</literal>, can be expressed as:"
+msgstr "另一种方式是一个外键和一个惟一关键字对应,上面的 <literal>Employee</literal> 和  <literal>Person</literal> 的例子,如果使用这种关联方式,可以表达成: "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"This association can be made bidirectional by adding the following to the "
-"<literal>Person</literal> mapping:"
-msgstr ""
-"如果在 <literal>Person</literal> 的映射加入下面几句,这种关联就是双向的:"
+#, no-c-format
+msgid "This association can be made bidirectional by adding the following to the <literal>Person</literal> mapping:"
+msgstr "如果在 <literal>Person</literal> 的映射加入下面几句,这种关联就是双向的: "
 
 #. Tag: title
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Natural-id"
-msgstr "自然 ID(natural-id)"
+msgstr "自然 ID(natural-id) "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Although we recommend the use of surrogate keys as primary keys, you should "
-"try to identify natural keys for all entities. A natural key is a property "
-"or combination of properties that is unique and non-null. It is also "
-"immutable. Map the properties of the natural key inside the <literal>&lt;"
-"natural-id&gt;</literal> element. Hibernate will generate the necessary "
-"unique key and nullability constraints and, as a result, your mapping will "
-"be more self-documenting."
-msgstr ""
-"我们建议使用代用键(键值不具备实际意义)作为主键,我们仍然应该尝试为所有的实"
-"体采用自然的键值作为(附加——译者注)标示。自然键(natural key)是单个或组合属"
-"性,他们必须唯一且非空。如果它还是不可变的那就更理想了。在 <literal>&lt;"
-"natural-id&gt;</literal> 元素中列出自然键的属性。Hibernate 会帮你生成必须的唯"
-"一键值和非空约束,你的映射会更加的明显易懂(原文是 self-documenting,自我注"
-"解)。"
+#, no-c-format
+msgid "Although we recommend the use of surrogate keys as primary keys, you should try to identify natural keys for all entities. A natural key is a property or combination of properties that is unique and non-null. It is also immutable. Map the properties of the natural key inside the <literal>&lt;natural-id&gt;</literal> element. Hibernate will generate the necessary unique key and nullability constraints and, as a result, your mapping will be more self-documenting."
+msgstr "我们建议使用代用键(键值不具备实际意义)作为主键,我们仍然应该尝试为所有的实体采用自然的键值作为(附加——译者注)标示。自然键(natural key)是单个或组合属性,他们必须唯一且非空。如果它还是不可变的那就更理想了。在 <literal>&lt;natural-id&gt;</literal> 元素中列出自然键的属性。Hibernate 会帮你生成必须的唯一键值和非空约束,你的映射会更加的明显易懂(原文是 self-documenting,自我注解)。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"It is recommended that you implement <literal>equals()</literal> and "
-"<literal>hashCode()</literal> to compare the natural key properties of the "
-"entity."
-msgstr ""
-"我们强烈建议你实现 <literal>equals()</literal> 和 <literal>hashCode()</"
-"literal> 方法,来比较实体的自然键属性。"
+#, no-c-format
+msgid "It is recommended that you implement <literal>equals()</literal> and <literal>hashCode()</literal> to compare the natural key properties of the entity."
+msgstr "我们强烈建议你实现 <literal>equals()</literal> 和 <literal>hashCode()</literal> 方法,来比较实体的自然键属性。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"This mapping is not intended for use with entities that have natural primary "
-"keys."
-msgstr "这一映射不是为了把自然键作为主键而准备的。"
+#, no-c-format
+msgid "This mapping is not intended for use with entities that have natural primary keys."
+msgstr "这一映射不是为了把自然键作为主键而准备的。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>mutable</literal> (optional - defaults to <literal>false</"
-"literal>): by default, natural identifier properties are assumed to be "
-"immutable (constant)."
-msgstr ""
-"<literal>mutable</literal>(可选,默认为 <literal>false</literal>):默认情况"
-"下,自然标识属性被假定为不可变的(常量)。"
+#, no-c-format
+msgid "<literal>mutable</literal> (optional - defaults to <literal>false</literal>): by default, natural identifier properties are assumed to be immutable (constant)."
+msgstr "<literal>mutable</literal>(可选,默认为 <literal>false</literal>):默认情况下,自然标识属性被假定为不可变的(常量)。 "
 
 #. Tag: title
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Component and dynamic-component"
-msgstr "组件(component),动态组件(dynamic-component)"
+msgstr "组件(component),动态组件(dynamic-component) "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>&lt;component&gt;</literal> element maps properties of a child "
-"object to columns of the table of a parent class. Components can, in turn, "
-"declare their own properties, components or collections. See the \"Component"
-"\" examples below:"
-msgstr ""
-"<literal>&lt;component&gt;</literal> 元素把子对象的一些元素与父类对应的表的一"
-"些字段映射起来。然后组件可以定义它们自己的属性、组件或者集合。参见后面"
-"的“Components”一章。"
+#, no-c-format
+msgid "The <literal>&lt;component&gt;</literal> element maps properties of a child object to columns of the table of a parent class. Components can, in turn, declare their own properties, components or collections. See the \"Component\" examples below:"
+msgstr "<literal>&lt;component&gt;</literal> 元素把子对象的一些元素与父类对应的表的一些字段映射起来。然后组件可以定义它们自己的属性、组件或者集合。参见后面的“Components”一章。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>class</literal> (optional - defaults to the property type "
-"determined by reflection): the name of the component (child) class."
-msgstr ""
-"<literal>class</literal>(可选 — 默认为通过反射得到的属性类型):组件(子)类"
-"的名字。"
+#, no-c-format
+msgid "<literal>class</literal> (optional - defaults to the property type determined by reflection): the name of the component (child) class."
+msgstr "<literal>class</literal>(可选 — 默认为通过反射得到的属性类型):组件(子)类的名字。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>insert</literal>: do the mapped columns appear in SQL "
-"<literal>INSERTs</literal>?"
-msgstr ""
-"<literal>insert</literal>:被映射的字段是否出现在 SQL 的 <literal>INSERT</"
-"literal> 语句中?"
+#, no-c-format
+msgid "<literal>insert</literal>: do the mapped columns appear in SQL <literal>INSERTs</literal>?"
+msgstr "<literal>insert</literal>:被映射的字段是否出现在 SQL 的 <literal>INSERT</literal> 语句中? "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>update</literal>: do the mapped columns appear in SQL "
-"<literal>UPDATEs</literal>?"
-msgstr ""
-"<literal>update</literal>:被映射的字段是否出现在 SQL 的 <literal>UPDATE</"
-"literal> 语句中?"
+#, no-c-format
+msgid "<literal>update</literal>: do the mapped columns appear in SQL <literal>UPDATEs</literal>?"
+msgstr "<literal>update</literal>:被映射的字段是否出现在 SQL 的 <literal>UPDATE</literal> 语句中? "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>lazy</literal> (optional - defaults to <literal>false</literal>): "
-"specifies that this component should be fetched lazily when the instance "
-"variable is first accessed. It requires build-time bytecode instrumentation."
-msgstr ""
-"<literal>lazy</literal>(可选 — 默认是 <literal>false</literal>):表明此组件"
-"应在实例变量第一次被访问的时候延迟加载(需要编译时字节码装置器)"
+#, no-c-format
+msgid "<literal>lazy</literal> (optional - defaults to <literal>false</literal>): specifies that this component should be fetched lazily when the instance variable is first accessed. It requires build-time bytecode instrumentation."
+msgstr "<literal>lazy</literal>(可选 — 默认是 <literal>false</literal>):表明此组件应在实例变量第一次被访问的时候延迟加载(需要编译时字节码装置器) "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
-"literal>): specifies that updates to this component either do or do not "
-"require acquisition of the optimistic lock. It determines if a version "
-"increment should occur when this property is dirty."
-msgstr ""
-"<literal>optimistic-lock</literal>(可选 — 默认是 <literal>true</literal>):"
-"表明更新此组件是否需要获取乐观锁。换句话说,当这个属性变脏时,是否增加版本号"
-"(Version)"
+#, no-c-format
+msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</literal>): specifies that updates to this component either do or do not require acquisition of the optimistic lock. It determines if a version increment should occur when this property is dirty."
+msgstr "<literal>optimistic-lock</literal>(可选 — 默认是 <literal>true</literal>):表明更新此组件是否需要获取乐观锁。换句话说,当这个属性变脏时,是否增加版本号(Version) "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>unique</literal> (optional - defaults to <literal>false</literal>): "
-"specifies that a unique constraint exists upon all mapped columns of the "
-"component."
-msgstr ""
-"<literal>unique</literal>(可选 — 默认是 <literal>false</literal>):表明组件"
-"映射的所有字段上都有唯一性约束"
+#, no-c-format
+msgid "<literal>unique</literal> (optional - defaults to <literal>false</literal>): specifies that a unique constraint exists upon all mapped columns of the component."
+msgstr "<literal>unique</literal>(可选 — 默认是 <literal>false</literal>):表明组件映射的所有字段上都有唯一性约束 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The child <literal>&lt;property&gt;</literal> tags map properties of the "
-"child class to table columns."
-msgstr ""
-"其 <literal>&lt;property&gt;</literal> 子标签为子类的一些属性与表字段之间建立"
-"映射。"
+msgid "The child <literal>&lt;property&gt;</literal> tags map properties of the child class to table columns."
+msgstr "其 <literal>&lt;property&gt;</literal> 子标签为子类的一些属性与表字段之间建立映射。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>&lt;component&gt;</literal> element allows a <literal>&lt;"
-"parent&gt;</literal> subelement that maps a property of the component class "
-"as a reference back to the containing entity."
-msgstr ""
-"<literal>&lt;component&gt;</literal> 元素允许加入一个 <literal>&lt;parent&gt;"
-"</literal> 子元素,在组件类内部就可以有一个指向其容器的实体的反向引用。"
+msgid "The <literal>&lt;component&gt;</literal> element allows a <literal>&lt;parent&gt;</literal> subelement that maps a property of the component class as a reference back to the containing entity."
+msgstr "<literal>&lt;component&gt;</literal> 元素允许加入一个 <literal>&lt;parent&gt;</literal> 子元素,在组件类内部就可以有一个指向其容器的实体的反向引用。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>&lt;dynamic-component&gt;</literal> element allows a "
-"<literal>Map</literal> to be mapped as a component, where the property names "
-"refer to keys of the map. See <xref linkend=\"components-dynamic\" /> for "
-"more information."
-msgstr ""
-"<literal>&lt;dynamic-component&gt;</literal> 元素允许把一个 <literal>Map</"
-"literal> 映射为组件,其属性名对应 map 的键值。参见 <xref linkend="
-"\"Component_Mapping-Dynamic_components\"/>。"
+#, no-c-format
+msgid "The <literal>&lt;dynamic-component&gt;</literal> element allows a <literal>Map</literal> to be mapped as a component, where the property names refer to keys of the map. See <xref linkend=\"components-dynamic\" /> for more information."
+msgstr "<literal>&lt;dynamic-component&gt;</literal> 元素允许把一个 <literal>Map</literal> 映射为组件,其属性名对应 map 的键值。参见 <xref linkend=\"components-dynamic\" />。"
 
 #. Tag: title
 #, no-c-format
@@ -2604,488 +1291,254 @@
 msgstr "属性(Properties)"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>&lt;properties&gt;</literal> element allows the definition of a "
-"named, logical grouping of the properties of a class. The most important use "
-"of the construct is that it allows a combination of properties to be the "
-"target of a <literal>property-ref</literal>. It is also a convenient way to "
-"define a multi-column unique constraint. For example:"
-msgstr ""
-"<literal>&lt;properties&gt;</literal> 元素允许定义一个命名的逻辑分组"
-"(grouping)包含一个类中的多个属性。这个元素最重要的用处是允许多个属性的组合"
-"作为 <literal>property-ref</literal> 的目标(target)。这也是定义多字段唯一约"
-"束的一种方便途径。"
+#, no-c-format
+msgid "The <literal>&lt;properties&gt;</literal> element allows the definition of a named, logical grouping of the properties of a class. The most important use of the construct is that it allows a combination of properties to be the target of a <literal>property-ref</literal>. It is also a convenient way to define a multi-column unique constraint. For example:"
+msgstr "<literal>&lt;properties&gt;</literal> 元素允许定义一个命名的逻辑分组(grouping)包含一个类中的多个属性。这个元素最重要的用处是允许多个属性的组合作为 <literal>property-ref</literal> 的目标(target)。这也是定义多字段唯一约束的一种方便途径。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>name</literal>: the logical name of the grouping. It is "
-"<emphasis>not</emphasis> an actual property name."
-msgstr ""
-"<literal>name</literal>:分组的逻辑名称 — <emphasis>不是</emphasis> 实际属性"
-"的名称。"
+#, no-c-format
+msgid "<literal>name</literal>: the logical name of the grouping. It is <emphasis>not</emphasis> an actual property name."
+msgstr "<literal>name</literal>:分组的逻辑名称 — <emphasis>不是</emphasis> 实际属性的名称。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
-"literal>): specifies that updates to these properties either do or do not "
-"require acquisition of the optimistic lock. It determines if a version "
-"increment should occur when these properties are dirty."
-msgstr ""
-"<literal>optimistic-lock</literal>(可选 — 默认是 <literal>true</literal>):"
-"表明更新此组件是否需要获取乐观锁。换句话说,当这个属性变脏时,是否增加版本号"
-"(Version)"
+#, no-c-format
+msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</literal>): specifies that updates to these properties either do or do not require acquisition of the optimistic lock. It determines if a version increment should occur when these properties are dirty."
+msgstr "<literal>optimistic-lock</literal>(可选 — 默认是 <literal>true</literal>):表明更新此组件是否需要获取乐观锁。换句话说,当这个属性变脏时,是否增加版本号(Version)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"For example, if we have the following <literal>&lt;properties&gt;</literal> "
-"mapping:"
+msgid "For example, if we have the following <literal>&lt;properties&gt;</literal> mapping:"
 msgstr "例如,如果我们有如下的 <literal>&lt;properties&gt;</literal> 映射:"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"You might have some legacy data association that refers to this unique key "
-"of the <literal>Person</literal> table, instead of to the primary key:"
-msgstr ""
-"然后,我们可能有一些遗留的数据关联,引用 <literal>Person</literal> 表的这个唯"
-"一键,而不是主键。"
+#, no-c-format
+msgid "You might have some legacy data association that refers to this unique key of the <literal>Person</literal> table, instead of to the primary key:"
+msgstr "然后,我们可能有一些遗留的数据关联,引用 <literal>Person</literal> 表的这个唯一键,而不是主键。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The use of this outside the context of mapping legacy data is not "
-"recommended."
-msgstr "我们并不推荐这样使用,除非在映射遗留数据的情况下。"
+#, no-c-format
+msgid "The use of this outside the context of mapping legacy data is not recommended."
+msgstr "我们并不推荐这样使用,除非在映射遗留数据的情况下。 "
 
 #. Tag: title
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Subclass"
-msgstr "子类(subclass)"
+msgstr "子类(subclass) "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Polymorphic persistence requires the declaration of each subclass of the "
-"root persistent class. For the table-per-class-hierarchy mapping strategy, "
-"the <literal>&lt;subclass&gt;</literal> declaration is used. For example:"
-msgstr ""
-"最后,多态持久化需要为父类的每个子类都进行定义。对于“每一棵类继承树对应一个"
-"表”的策略来说,就需要使用 <literal>&lt;subclass&gt;</literal> 定义。"
+#, no-c-format
+msgid "Polymorphic persistence requires the declaration of each subclass of the root persistent class. For the table-per-class-hierarchy mapping strategy, the <literal>&lt;subclass&gt;</literal> declaration is used. For example:"
+msgstr "最后,多态持久化需要为父类的每个子类都进行定义。对于“每一棵类继承树对应一个表”的策略来说,就需要使用 <literal>&lt;subclass&gt;</literal> 定义。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>name</literal>: the fully qualified class name of the subclass."
-msgstr "<literal>name</literal>:子类的全限定名。"
+#, no-c-format
+msgid "<literal>name</literal>: the fully qualified class name of the subclass."
+msgstr "<literal>name</literal>:子类的全限定名。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>discriminator-value</literal> (optional - defaults to the class "
-"name): a value that distinguishes individual subclasses."
-msgstr ""
-"<literal>discriminator-value(辨别标志)</literal>(可选 — 默认为类名):一个"
-"用于区分每个独立的子类的值。"
+#, no-c-format
+msgid "<literal>discriminator-value</literal> (optional - defaults to the class name): a value that distinguishes individual subclasses."
+msgstr "<literal>discriminator-value(辨别标志)</literal>(可选 — 默认为类名):一个用于区分每个独立的子类的值。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>proxy</literal> (optional): specifies a class or interface used for "
-"lazy initializing proxies."
-msgstr ""
-"<literal>proxy</literal>(可选):指定一个类或者接口,在延迟装载时作为代理使"
-"用。"
+#, no-c-format
+msgid "<literal>proxy</literal> (optional): specifies a class or interface used for lazy initializing proxies."
+msgstr "<literal>proxy</literal>(可选):指定一个类或者接口,在延迟装载时作为代理使用。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>lazy</literal> (optional - defaults to <literal>true</literal>): "
-"setting <literal>lazy=\"false\"</literal> disables the use of lazy fetching."
-msgstr ""
-"<literal>lazy</literal>(可选,默认是 <literal>true</literal>):设置为 "
-"<literal>lazy=\"false\"</literal> 禁止使用延迟装载。"
+#, no-c-format
+msgid "<literal>lazy</literal> (optional - defaults to <literal>true</literal>): setting <literal>lazy=\"false\"</literal> disables the use of lazy fetching."
+msgstr "<literal>lazy</literal>(可选,默认是 <literal>true</literal>):设置为 <literal>lazy=\"false\"</literal> 禁止使用延迟装载。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Each subclass declares its own persistent properties and subclasses. "
-"<literal>&lt;version&gt;</literal> and <literal>&lt;id&gt;</literal> "
-"properties are assumed to be inherited from the root class. Each subclass in "
-"a hierarchy must define a unique <literal>discriminator-value</literal>. If "
-"this is not specified, the fully qualified Java class name is used."
-msgstr ""
-"每个子类都应该定义它自己的持久化属性和子类。<literal>&lt;version&gt;</"
-"literal> 和 <literal>&lt;id&gt;</literal> 属性可以从根父类继承下来。在一棵继"
-"承树上的每个子类都必须定义一个唯一的 <literal>discriminator-value</literal>。"
-"如果没有指定,就会使用 Java 类的全限定名。"
+#, no-c-format
+msgid "Each subclass declares its own persistent properties and subclasses. <literal>&lt;version&gt;</literal> and <literal>&lt;id&gt;</literal> properties are assumed to be inherited from the root class. Each subclass in a hierarchy must define a unique <literal>discriminator-value</literal>. If this is not specified, the fully qualified Java class name is used."
+msgstr "每个子类都应该定义它自己的持久化属性和子类。<literal>&lt;version&gt;</literal> 和 <literal>&lt;id&gt;</literal> 属性可以从根父类继承下来。在一棵继承树上的每个子类都必须定义一个唯一的 <literal>discriminator-value</literal>。如果没有指定,就会使用 Java 类的全限定名。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"For information about inheritance mappings see <xref linkend=\"inheritance"
-"\" />."
-msgstr "更多关于继承映射的信息,参考 <xref linkend=\"Inheritance_Mapping\"/>。"
+#, no-c-format
+msgid "For information about inheritance mappings see <xref linkend=\"inheritance\" />."
+msgstr "更多关于继承映射的信息,参考 <xref linkend=\"inheritance\" />。"
 
 #. Tag: title
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Joined-subclass"
-msgstr "连接的子类(joined-subclass)"
+msgstr "连接的子类(joined-subclass) "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Each subclass can also be mapped to its own table. This is called the table-"
-"per-subclass mapping strategy. An inherited state is retrieved by joining "
-"with the table of the superclass. To do this you use the <literal>&lt;joined-"
-"subclass&gt;</literal> element. For example:"
-msgstr ""
-"此外,每个子类可能被映射到他自己的表中(每个子类一个表的策略)。被继承的状态"
-"通过和超类的表关联得到。我们使用 <literal>&lt;joined-subclass&gt;</literal> "
-"元素。"
+#, no-c-format
+msgid "Each subclass can also be mapped to its own table. This is called the table-per-subclass mapping strategy. An inherited state is retrieved by joining with the table of the superclass. To do this you use the <literal>&lt;joined-subclass&gt;</literal> element. For example:"
+msgstr "此外,每个子类可能被映射到他自己的表中(每个子类一个表的策略)。被继承的状态通过和超类的表关联得到。我们使用 <literal>&lt;joined-subclass&gt;</literal> 元素。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>table</literal>: the name of the subclass table."
-msgstr "<literal>table</literal>:子类的表名"
+msgstr "<literal>table</literal>:子类的表名。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>proxy</literal> (optional): specifies a class or interface to use "
-"for lazy initializing proxies."
-msgstr ""
-"<literal>proxy</literal>(可选):指定一个类或者接口,在延迟装载时作为代理使"
-"用。"
+#, no-c-format
+msgid "<literal>proxy</literal> (optional): specifies a class or interface to use for lazy initializing proxies."
+msgstr "<literal>proxy</literal>(可选):指定一个类或者接口,在延迟装载时作为代理使用。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>lazy</literal> (optional, defaults to <literal>true</literal>): "
-"setting <literal>lazy=\"false\"</literal> disables the use of lazy fetching."
-msgstr ""
-"<literal>lazy</literal>(可选,默认是 <literal>true</literal>):设置为 "
-"<literal>lazy=\"false\"</literal> 禁止使用延迟装载。"
+#, no-c-format
+msgid "<literal>lazy</literal> (optional, defaults to <literal>true</literal>): setting <literal>lazy=\"false\"</literal> disables the use of lazy fetching."
+msgstr "<literal>lazy</literal>(可选,默认是 <literal>true</literal>):设置为 <literal>lazy=\"false\"</literal> 禁止使用延迟装载。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"A discriminator column is not required for this mapping strategy. Each "
-"subclass must, however, declare a table column holding the object identifier "
-"using the <literal>&lt;key&gt;</literal> element. The mapping at the start "
-"of the chapter would then be re-written as:"
-msgstr ""
-"这种映射策略不需要指定辨别标志(discriminator)字段。但是,每一个子类都必须使"
-"用 <literal>&lt;key&gt;</literal> 元素指定一个表字段来持有对象的标识符。本章"
-"开始的映射可以被用如下方式重写:"
+#, no-c-format
+msgid "A discriminator column is not required for this mapping strategy. Each subclass must, however, declare a table column holding the object identifier using the <literal>&lt;key&gt;</literal> element. The mapping at the start of the chapter would then be re-written as:"
+msgstr "这种映射策略不需要指定辨别标志(discriminator)字段。但是,每一个子类都必须使用 <literal>&lt;key&gt;</literal> 元素指定一个表字段来持有对象的标识符。本章开始的映射可以被用如下方式重写: "
 
 #. Tag: title
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Union-subclass"
-msgstr "联合子类(union-subclass)"
+msgstr "联合子类(union-subclass) "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"A third option is to map only the concrete classes of an inheritance "
-"hierarchy to tables. This is called the table-per-concrete-class strategy. "
-"Each table defines all persistent states of the class, including the "
-"inherited state. In Hibernate, it is not necessary to explicitly map such "
-"inheritance hierarchies. You can map each class with a separate <literal>&lt;"
-"class&gt;</literal> declaration. However, if you wish use polymorphic "
-"associations (e.g. an association to the superclass of your hierarchy), you "
-"need to use the <literal>&lt;union-subclass&gt;</literal> mapping. For "
-"example:"
-msgstr ""
-"第三种选择是仅仅映射类继承树中具体类部分到表中(每个具体类一张表的策略)。其"
-"中,每张表定义了类的所有持久化状态,包括继承的状态。在 Hibernate 中,并不需要"
-"完全显式地映射这样的继承树。你可以简单地使用单独的 <literal>&lt;class&gt;</"
-"literal> 定义映射每个类。然而,如果你想使用多态关联(例如,一个对类继承树中超"
-"类的关联),你需要使用 <literal>&lt;union-subclass&gt;</literal> 映射。"
+#, no-c-format
+msgid "A third option is to map only the concrete classes of an inheritance hierarchy to tables. This is called the table-per-concrete-class strategy. Each table defines all persistent states of the class, including the inherited state. In Hibernate, it is not necessary to explicitly map such inheritance hierarchies. You can map each class with a separate <literal>&lt;class&gt;</literal> declaration. However, if you wish use polymorphic associations (e.g. an association to the superclass of your hierarchy), you need to use the <literal>&lt;union-subclass&gt;</literal> mapping. For example:"
+msgstr "第三种选择是仅仅映射类继承树中具体类部分到表中(每个具体类一张表的策略)。其中,每张表定义了类的所有持久化状态,包括继承的状态。在 Hibernate 中,并不需要完全显式地映射这样的继承树。你可以简单地使用单独的 <literal>&lt;class&gt;</literal> 定义映射每个类。然而,如果你想使用多态关联(例如,一个对类继承树中超类的关联),你需要使用 <literal>&lt;union-subclass&gt;</literal> 映射。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"No discriminator column or key column is required for this mapping strategy."
+msgid "No discriminator column or key column is required for this mapping strategy."
 msgstr "这种映射策略不需要指定辨别标志(discriminator)字段。"
 
 #. Tag: title
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Join"
-msgstr "连接(join)"
+msgstr "连接(join) "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Using the <literal>&lt;join&gt;</literal> element, it is possible to map "
-"properties of one class to several tables that have a one-to-one "
-"relationship. For example:"
-msgstr ""
-"使用 <literal>&lt;join&gt;</literal> 元素,假若在表之间存在一对一关联,可以将"
-"一个类的属性映射到多张表中。"
+#, no-c-format
+msgid "Using the <literal>&lt;join&gt;</literal> element, it is possible to map properties of one class to several tables that have a one-to-one relationship. For example:"
+msgstr "使用 <literal>&lt;join&gt;</literal> 元素,假若在表之间存在一对一关联,可以将一个类的属性映射到多张表中。例如:"
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>table</literal>: the name of the joined table."
-msgstr "<literal>table</literal>:被连接表的名称。"
+msgstr "<literal>table</literal>:被连接表的名称。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>fetch</literal> (optional - defaults to <literal>join</literal>): "
-"if set to <literal>join</literal>, the default, Hibernate will use an inner "
-"join to retrieve a <literal>&lt;join&gt;</literal> defined by a class or its "
-"superclasses. It will use an outer join for a <literal>&lt;join&gt;</"
-"literal> defined by a subclass. If set to <literal>select</literal> then "
-"Hibernate will use a sequential select for a <literal>&lt;join&gt;</literal> "
-"defined on a subclass. This will be issued only if a row represents an "
-"instance of the subclass. Inner joins will still be used to retrieve a "
-"<literal>&lt;join&gt;</literal> defined by the class and its superclasses."
-msgstr ""
-"<literal>fetch</literal>(可选 — 默认是 <literal>join</literal>):如果设置为"
-"默认值 <literal>join</literal>,Hibernate 将使用一个内连接来得到这个类或其超"
-"类定义的 <literal>&lt;join&gt;</literal>,而使用一个外连接来得到其子类定义的 "
-"<literal>&lt;join&gt;</literal>。如果设置为 <literal>select</literal>,则 "
-"Hibernate 将为子类定义的 <literal>&lt;join&gt;</literal> 使用顺序选择。这仅在"
-"一行数据表示一个子类的对象的时候才会发生。对这个类和其超类定义的 "
-"<literal>&lt;join&gt;</literal>,依然会使用内连接得到。"
+#, no-c-format
+msgid "<literal>fetch</literal> (optional - defaults to <literal>join</literal>): if set to <literal>join</literal>, the default, Hibernate will use an inner join to retrieve a <literal>&lt;join&gt;</literal> defined by a class or its superclasses. It will use an outer join for a <literal>&lt;join&gt;</literal> defined by a subclass. If set to <literal>select</literal> then Hibernate will use a sequential select for a <literal>&lt;join&gt;</literal> defined on a subclass. This will be issued only if a row represents an instance of the subclass. Inner joins will still be used to retrieve a <literal>&lt;join&gt;</literal> defined by the class and its superclasses."
+msgstr "<literal>fetch</literal>(可选 — 默认是 <literal>join</literal>):如果设置为默认值 <literal>join</literal>,Hibernate 将使用一个内连接来得到这个类或其超类定义的 <literal>&lt;join&gt;</literal>,而使用一个外连接来得到其子类定义的 <literal>&lt;join&gt;</literal>。如果设置为 <literal>select</literal>,则 Hibernate 将为子类定义的 <literal>&lt;join&gt;</literal> 使用顺序选择。这仅在一行数据表示一个子类的对象的时候才会发生。对这个类和其超类定义的 <literal>&lt;join&gt;</literal>,依然会使用内连接得到。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>inverse</literal> (optional - defaults to <literal>false</"
-"literal>): if enabled, Hibernate will not insert or update the properties "
-"defined by this join."
-msgstr ""
-"<literal>inverse</literal>(可选 — 默认是 <literal>false</literal>):如果打"
-"开,Hibernate 不会插入或者更新此连接定义的属性。"
+#, no-c-format
+msgid "<literal>inverse</literal> (optional - defaults to <literal>false</literal>): if enabled, Hibernate will not insert or update the properties defined by this join."
+msgstr "<literal>inverse</literal>(可选 — 默认是 <literal>false</literal>):如果打开,Hibernate 不会插入或者更新此连接定义的属性。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>optional</literal> (optional - defaults to <literal>false</"
-"literal>): if enabled, Hibernate will insert a row only if the properties "
-"defined by this join are non-null. It will always use an outer join to "
-"retrieve the properties."
-msgstr ""
-"<literal>optional</literal>(可选 — 默认是 <literal>false</literal>):如果打"
-"开,Hibernate 只会在此连接定义的属性非空时插入一行数据,并且总是使用一个外连"
-"接来得到这些属性。"
+#, no-c-format
+msgid "<literal>optional</literal> (optional - defaults to <literal>false</literal>): if enabled, Hibernate will insert a row only if the properties defined by this join are non-null. It will always use an outer join to retrieve the properties."
+msgstr "<literal>optional</literal>(可选 — 默认是 <literal>false</literal>):如果打开,Hibernate 只会在此连接定义的属性非空时插入一行数据,并且总是使用一个外连接来得到这些属性。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"For example, address information for a person can be mapped to a separate "
-"table while preserving value type semantics for all properties:"
-msgstr ""
-"例如,一个人(person)的地址(address)信息可以被映射到单独的表中(并保留所有"
-"属性的值类型语义):"
+#, no-c-format
+msgid "For example, address information for a person can be mapped to a separate table while preserving value type semantics for all properties:"
+msgstr "例如,一个人(person)的地址(address)信息可以被映射到单独的表中(并保留所有属性的值类型语义): "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"This feature is often only useful for legacy data models. We recommend fewer "
-"tables than classes and a fine-grained domain model. However, it is useful "
-"for switching between inheritance mapping strategies in a single hierarchy, "
-"as explained later."
-msgstr ""
-"此特性常常对遗留数据模型有用,我们推荐表个数比类个数少,以及细粒度的领域模"
-"型。然而,在单独的继承树上切换继承映射策略是有用的,后面会解释这点。"
+#, no-c-format
+msgid "This feature is often only useful for legacy data models. We recommend fewer tables than classes and a fine-grained domain model. However, it is useful for switching between inheritance mapping strategies in a single hierarchy, as explained later."
+msgstr "此特性常常对遗留数据模型有用,我们推荐表个数比类个数少,以及细粒度的领域模型。然而,在单独的继承树上切换继承映射策略是有用的,后面会解释这点。 "
 
 #. Tag: title
 #, no-c-format
 msgid "Key"
-msgstr ""
+msgstr "Key"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>&lt;key&gt;</literal> element has featured a few times within "
-"this guide. It appears anywhere the parent mapping element defines a join to "
-"a new table that references the primary key of the original table. It also "
-"defines the foreign key in the joined table:"
-msgstr ""
-"我们目前已经见到过 <literal>&lt;key&gt;</literal> 元素多次了。这个元素在父映"
-"射元素定义了对新表的连接,并且在被连接表中定义了一个外键引用原表的主键的情况"
-"下经常使用。"
+#, no-c-format
+msgid "The <literal>&lt;key&gt;</literal> element has featured a few times within this guide. It appears anywhere the parent mapping element defines a join to a new table that references the primary key of the original table. It also defines the foreign key in the joined table:"
+msgstr "我们目前已经见到过 <literal>&lt;key&gt;</literal> 元素多次了。这个元素在父映射元素定义了对新表的连接,并且在被连接表中定义了一个外键引用原表的主键的情况下经常使用。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>on-delete</literal> (optional - defaults to <literal>noaction</"
-"literal>): specifies whether the foreign key constraint has database-level "
-"cascade delete enabled."
-msgstr ""
-"<literal>on-delete</literal>(可选,默认是 <literal>noaction</literal>):表"
-"明外键关联是否打开数据库级别的级联删除。"
+#, no-c-format
+msgid "<literal>on-delete</literal> (optional - defaults to <literal>noaction</literal>): specifies whether the foreign key constraint has database-level cascade delete enabled."
+msgstr "<literal>on-delete</literal>(可选,默认是 <literal>noaction</literal>):表明外键关联是否打开数据库级别的级联删除。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>property-ref</literal> (optional): specifies that the foreign key "
-"refers to columns that are not the primary key of the original table. It is "
-"provided for legacy data."
-msgstr ""
-"<literal>property-ref</literal>(可选):表明外键引用的字段不是原表的主键(提"
-"供给遗留数据)。"
+#, no-c-format
+msgid "<literal>property-ref</literal> (optional): specifies that the foreign key refers to columns that are not the primary key of the original table. It is provided for legacy data."
+msgstr "<literal>property-ref</literal>(可选):表明外键引用的字段不是原表的主键(提供给遗留数据)。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>not-null</literal> (optional): specifies that the foreign key "
-"columns are not nullable. This is implied whenever the foreign key is also "
-"part of the primary key."
-msgstr ""
-"<literal>not-null</literal>(可选):表明外键的字段不可为空(这意味着无论何时"
-"外键都是主键的一部分)。"
+#, no-c-format
+msgid "<literal>not-null</literal> (optional): specifies that the foreign key columns are not nullable. This is implied whenever the foreign key is also part of the primary key."
+msgstr "<literal>not-null</literal>(可选):表明外键的字段不可为空(这意味着无论何时外键都是主键的一部分)。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>update</literal> (optional): specifies that the foreign key should "
-"never be updated. This is implied whenever the foreign key is also part of "
-"the primary key."
-msgstr ""
-"<literal>update</literal>(可选):表明外键决不应该被更新(这意味着无论何时外"
-"键都是主键的一部分)。"
+#, no-c-format
+msgid "<literal>update</literal> (optional): specifies that the foreign key should never be updated. This is implied whenever the foreign key is also part of the primary key."
+msgstr "<literal>update</literal>(可选):表明外键决不应该被更新(这意味着无论何时外键都是主键的一部分)。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>unique</literal> (optional): specifies that the foreign key should "
-"have a unique constraint. This is implied whenever the foreign key is also "
-"the primary key."
-msgstr ""
-"<literal>unique</literal>(可选):表明外键应有唯一性约束(这意味着无论何时外"
-"键都是主键的一部分)。"
+#, no-c-format
+msgid "<literal>unique</literal> (optional): specifies that the foreign key should have a unique constraint. This is implied whenever the foreign key is also the primary key."
+msgstr "<literal>unique</literal>(可选):表明外键应有唯一性约束(这意味着无论何时外键都是主键的一部分)。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"For systems where delete performance is important, we recommend that all "
-"keys should be defined <literal>on-delete=\"cascade\"</literal>. Hibernate "
-"uses a database-level <literal>ON CASCADE DELETE</literal> constraint, "
-"instead of many individual <literal>DELETE</literal> statements. Be aware "
-"that this feature bypasses Hibernate's usual optimistic locking strategy for "
-"versioned data."
-msgstr ""
-"对那些看重删除性能的系统,我们推荐所有的键都应该定义为 <literal>on-delete="
-"\"cascade\"</literal>,这样 Hibernate 将使用数据库级的 <literal>ON CASCADE "
-"DELETE</literal> 约束,而不是多个 <literal>DELETE</literal> 语句。注意,这个"
-"特性会绕过 Hibernate 通常对版本数据(versioned data)采用的乐观锁策略。"
+#, no-c-format
+msgid "For systems where delete performance is important, we recommend that all keys should be defined <literal>on-delete=\"cascade\"</literal>. Hibernate uses a database-level <literal>ON CASCADE DELETE</literal> constraint, instead of many individual <literal>DELETE</literal> statements. Be aware that this feature bypasses Hibernate's usual optimistic locking strategy for versioned data."
+msgstr "对那些看重删除性能的系统,我们推荐所有的键都应该定义为 <literal>on-delete=\"cascade\"</literal>,这样 Hibernate 将使用数据库级的 <literal>ON CASCADE DELETE</literal> 约束,而不是多个 <literal>DELETE</literal> 语句。注意,这个特性会绕过 Hibernate 通常对版本数据(versioned data)采用的乐观锁策略。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>not-null</literal> and <literal>update</literal> attributes are "
-"useful when mapping a unidirectional one-to-many association. If you map a "
-"unidirectional one-to-many association to a non-nullable foreign key, you "
-"<emphasis>must</emphasis> declare the key column using <literal>&lt;key not-"
-"null=\"true\"&gt;</literal>."
-msgstr ""
-"<literal>not-null</literal> 和 <literal>update</literal> 属性在映射单向一对多"
-"关联的时候有用。如果你映射一个单向一对多关联到非空的(non-nullable)外键,你"
-"<emphasis>必须</emphasis> 用 <literal>&lt;key not-null=\"true\"&gt;</"
-"literal> 定义此键字段。"
+#, no-c-format
+msgid "The <literal>not-null</literal> and <literal>update</literal> attributes are useful when mapping a unidirectional one-to-many association. If you map a unidirectional one-to-many association to a non-nullable foreign key, you <emphasis>must</emphasis> declare the key column using <literal>&lt;key not-null=\"true\"&gt;</literal>."
+msgstr "<literal>not-null</literal> 和 <literal>update</literal> 属性在映射单向一对多关联的时候有用。如果你映射一个单向一对多关联到非空的(non-nullable)外键,你<emphasis>必须</emphasis> 用 <literal>&lt;key not-null=\"true\"&gt;</literal> 定义此键字段。 "
 
 #. Tag: title
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Column and formula elements"
-msgstr "字段和规则元素(column and formula elements)"
+msgstr "字段和规则元素(column and formula elements) "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Mapping elements which accept a <literal>column</literal> attribute will "
-"alternatively accept a <literal>&lt;column&gt;</literal> subelement. "
-"Likewise, <literal>&lt;formula&gt;</literal> is an alternative to the "
-"<literal>formula</literal> attribute. For example:"
-msgstr ""
-"任何接受 <literal>column</literal> 属性的映射元素都可以选择接受 <literal>&lt;"
-"column&gt;</literal> 子元素。同样的,<literal>formula</literal> 子元素也可以"
-"替换 <literal>&lt;formula&gt;</literal> 属性。"
+#, no-c-format
+msgid "Mapping elements which accept a <literal>column</literal> attribute will alternatively accept a <literal>&lt;column&gt;</literal> subelement. Likewise, <literal>&lt;formula&gt;</literal> is an alternative to the <literal>formula</literal> attribute. For example:"
+msgstr "任何接受 <literal>column</literal> 属性的映射元素都可以选择接受 <literal>&lt;column&gt;</literal> 子元素。同样的,<literal>formula</literal> 子元素也可以替换 <literal>&lt;formula&gt;</literal> 属性。例如:"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>column</literal> and <literal>formula</literal> attributes can even "
-"be combined within the same property or association mapping to express, for "
-"example, exotic join conditions."
-msgstr ""
-"<literal>column</literal> 和 <literal>formula</literal> 属性甚至可以在同一个"
-"属性或关联映射中被合并来表达,例如,一些奇异的连接条件。"
+#, no-c-format
+msgid "<literal>column</literal> and <literal>formula</literal> attributes can even be combined within the same property or association mapping to express, for example, exotic join conditions."
+msgstr "<literal>column</literal> 和 <literal>formula</literal> 属性甚至可以在同一个属性或关联映射中被合并来表达,例如,一些奇异的连接条件。 "
 
 #. Tag: title
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Import"
-msgstr "引用(import)"
+msgstr "引用(import) "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"If your application has two persistent classes with the same name, and you "
-"do not want to specify the fully qualified package name in Hibernate "
-"queries, classes can be \"imported\" explicitly, rather than relying upon "
-"<literal>auto-import=\"true\"</literal>. You can also import classes and "
-"interfaces that are not explicitly mapped:"
-msgstr ""
-"假设你的应用程序有两个同样名字的持久化类,但是你不想在 Hibernate 查询中使用他"
-"们的全限定名。除了依赖 <literal>auto-import=\"true\"</literal> 以外,类也可以"
-"被显式地“import(引用)”。你甚至可以引用没有被明确映射的类和接口。"
+#, no-c-format
+msgid "If your application has two persistent classes with the same name, and you do not want to specify the fully qualified package name in Hibernate queries, classes can be \"imported\" explicitly, rather than relying upon <literal>auto-import=\"true\"</literal>. You can also import classes and interfaces that are not explicitly mapped:"
+msgstr "假设你的应用程序有两个同样名字的持久化类,但是你不想在 Hibernate 查询中使用他们的全限定名。除了依赖 <literal>auto-import=\"true\"</literal> 以外,类也可以被显式地“import(引用)”。你甚至可以引用没有被明确映射的类和接口。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>class</literal>: the fully qualified class name of any Java class."
-msgstr "<literal>class</literal>:任何 Java 类的全限定名。"
+#, no-c-format
+msgid "<literal>class</literal>: the fully qualified class name of any Java class."
+msgstr "<literal>class</literal>:任何 Java 类的全限定名。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>rename</literal> (optional - defaults to the unqualified class "
-"name): a name that can be used in the query language."
-msgstr ""
-"<literal>rename</literal>(可选 — 默认为类的全限定名):在查询语句中可以使用"
-"的名字。"
+#, no-c-format
+msgid "<literal>rename</literal> (optional - defaults to the unqualified class name): a name that can be used in the query language."
+msgstr "<literal>rename</literal>(可选 — 默认为类的全限定名):在查询语句中可以使用的名字。 "
 
 #. Tag: title
 #, no-c-format
 msgid "Any"
-msgstr ""
+msgstr "Any"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"There is one more type of property mapping. The <literal>&lt;any&gt;</"
-"literal> mapping element defines a polymorphic association to classes from "
-"multiple tables. This type of mapping requires more than one column. The "
-"first column contains the type of the associated entity. The remaining "
-"columns contain the identifier. It is impossible to specify a foreign key "
-"constraint for this kind of association. This is not the usual way of "
-"mapping polymorphic associations and you should use this only in special "
-"cases. For example, for audit logs, user session data, etc."
-msgstr ""
-"这是属性映射的又一种类型。<literal>&lt;any&gt;</literal> 映射元素定义了一种从"
-"多个表到类的多态关联。这种类型的映射常常需要多于一个字段。第一个字段持有被关"
-"联实体的类型,其他的字段持有标识符。对这种类型的关联来说,不可能指定一个外键"
-"约束,所以这当然不是映射(多态)关联的通常的方式。你只应该在非常特殊的情况下"
-"使用它(比如,审计 log,用户会话数据等等)。"
+#, no-c-format
+msgid "There is one more type of property mapping. The <literal>&lt;any&gt;</literal> mapping element defines a polymorphic association to classes from multiple tables. This type of mapping requires more than one column. The first column contains the type of the associated entity. The remaining columns contain the identifier. It is impossible to specify a foreign key constraint for this kind of association. This is not the usual way of mapping polymorphic associations and you should use this only in special cases. For example, for audit logs, user session data, etc."
+msgstr "这是属性映射的又一种类型。<literal>&lt;any&gt;</literal> 映射元素定义了一种从多个表到类的多态关联。这种类型的映射常常需要多于一个字段。第一个字段持有被关联实体的类型,其他的字段持有标识符。对这种类型的关联来说,不可能指定一个外键约束,所以这当然不是映射(多态)关联的通常的方式。你只应该在非常特殊的情况下使用它(比如,审计 log,用户会话数据等等)。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>meta-type</literal> attribute allows the application to specify "
-"a custom type that maps database column values to persistent classes that "
-"have identifier properties of the type specified by <literal>id-type</"
-"literal>. You must specify the mapping from values of the meta-type to class "
-"names."
-msgstr ""
-"<literal>meta-type</literal> 属性使得应用程序能指定一个将数据库字段的值映射到"
-"持久化类的自定义类型。这个持久化类包含有用 <literal>id-type</literal> 指定的"
-"标识符属性。你必须指定从 meta-type 的值到类名的映射。"
+#, no-c-format
+msgid "The <literal>meta-type</literal> attribute allows the application to specify a custom type that maps database column values to persistent classes that have identifier properties of the type specified by <literal>id-type</literal>. You must specify the mapping from values of the meta-type to class names."
+msgstr "<literal>meta-type</literal> 属性使得应用程序能指定一个将数据库字段的值映射到持久化类的自定义类型。这个持久化类包含有用 <literal>id-type</literal> 指定的标识符属性。你必须指定从 meta-type 的值到类名的映射。 "
 
 #. Tag: para
 #, no-c-format
@@ -3098,39 +1551,24 @@
 msgstr "<literal>id-type</literal>:标识符类型"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>meta-type</literal> (optional - defaults to <literal>string</"
-"literal>): any type that is allowed for a discriminator mapping."
-msgstr ""
-"<literal>meta-type</literal>(可选 -默认是 <literal>string</literal>):允许"
-"辨别标志(discriminator)映射的任何类型。"
+#, no-c-format
+msgid "<literal>meta-type</literal> (optional - defaults to <literal>string</literal>): any type that is allowed for a discriminator mapping."
+msgstr "<literal>meta-type</literal>(可选 -默认是 <literal>string</literal>):允许辨别标志(discriminator)映射的任何类型。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>cascade</literal> (optional- defaults to <literal>none</literal>): "
-"the cascade style."
-msgstr ""
-"<literal>cascade</literal>(可选 — 默认是<literal>none</literal>):级联的类"
-"型。"
+msgid "<literal>cascade</literal> (optional- defaults to <literal>none</literal>): the cascade style."
+msgstr "<literal>cascade</literal>(可选 — 默认是<literal>none</literal>):级联的类型。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
-"literal>): specifies that updates to this property either do or do not "
-"require acquisition of the optimistic lock. It defines whether a version "
-"increment should occur if this property is dirty."
-msgstr ""
-"<literal>optimistic-lock</literal>(可选 — 默认是 <literal>true</literal>):"
-"表明更新此组件是否需要获取乐观锁。换句话说,当这个属性变脏时,是否增加版本号"
-"(Version)"
+#, no-c-format
+msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>true</literal>): specifies that updates to this property either do or do not require acquisition of the optimistic lock. It defines whether a version increment should occur if this property is dirty."
+msgstr "<literal>optimistic-lock</literal>(可选 — 默认是 <literal>true</literal>):表明更新此组件是否需要获取乐观锁。换句话说,当这个属性变脏时,是否增加版本号(Version)。"
 
 #. Tag: title
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Hibernate types"
-msgstr "Hibernate 的类型"
+msgstr "Hibernate 的类型 "
 
 #. Tag: title
 #, no-c-format
@@ -3139,108 +1577,38 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"In relation to the persistence service, Java language-level objects are "
-"classified into two groups:"
+msgid "In relation to the persistence service, Java language-level objects are classified into two groups:"
 msgstr "和持久化服务相比,Java 级别的对象分为两个组别:"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"An <emphasis>entity</emphasis> exists independently of any other objects "
-"holding references to the entity. Contrast this with the usual Java model, "
-"where an unreferenced object is garbage collected. Entities must be "
-"explicitly saved and deleted. Saves and deletions, however, can be "
-"<emphasis>cascaded</emphasis> from a parent entity to its children. This is "
-"different from the ODMG model of object persistence by reachability and "
-"corresponds more closely to how application objects are usually used in "
-"large systems. Entities support circular and shared references. They can "
-"also be versioned."
-msgstr ""
-"<emphasis>实体entity</emphasis> 独立于任何持有实体引用的对象。与通常的 Java "
-"模型相比,不再被引用的对象会被当作垃圾收集掉。实体必须被显式的保存和删除(除"
-"非保存和删除是从父实体向子实体引发的<emphasis>级联</emphasis>)。这和 ODMG 模"
-"型中关于对象通过可触及保持持久性有一些不同 — 比较起来更加接近应用程序对象通常"
-"在一个大系统中的使用方法。实体支持循环引用和交叉引用,它们也可以加上版本信"
-"息。"
+#, no-c-format
+msgid "An <emphasis>entity</emphasis> exists independently of any other objects holding references to the entity. Contrast this with the usual Java model, where an unreferenced object is garbage collected. Entities must be explicitly saved and deleted. Saves and deletions, however, can be <emphasis>cascaded</emphasis> from a parent entity to its children. This is different from the ODMG model of object persistence by reachability and corresponds more closely to how application objects are usually used in large systems. Entities support circular and shared references. They can also be versioned."
+msgstr "<emphasis>实体entity</emphasis> 独立于任何持有实体引用的对象。与通常的 Java 模型相比,不再被引用的对象会被当作垃圾收集掉。实体必须被显式的保存和删除(除非保存和删除是从父实体向子实体引发的<emphasis>级联</emphasis>)。这和 ODMG 模型中关于对象通过可触及保持持久性有一些不同 — 比较起来更加接近应用程序对象通常在一个大系统中的使用方法。实体支持循环引用和交叉引用,它们也可以加上版本信息。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"An entity's persistent state consists of references to other entities and "
-"instances of <emphasis>value</emphasis> types. Values are primitives: "
-"collections (not what is inside a collection), components and certain "
-"immutable objects. Unlike entities, values in particular collections and "
-"components, <emphasis>are</emphasis> persisted and deleted by reachability. "
-"Since value objects and primitives are persisted and deleted along with "
-"their containing entity, they cannot be independently versioned. Values have "
-"no independent identity, so they cannot be shared by two entities or "
-"collections."
-msgstr ""
-"一个实体的持久状态包含指向其他实体和<emphasis>值</emphasis>类型实例的引用。值"
-"可以是原始类型,集合(不是集合中的对象),组件或者特定的不可变对象。与实体不"
-"同,值(特别是集合和组件)是通过可触及性来进行持久化和删除的。因为值对象(和"
-"原始类型数据)是随着包含他们的实体而被持久化和删除的,他们不能被独立的加上版"
-"本信息。值没有独立的标识,所以他们不能被两个实体或者集合共享。"
+#, no-c-format
+msgid "An entity's persistent state consists of references to other entities and instances of <emphasis>value</emphasis> types. Values are primitives: collections (not what is inside a collection), components and certain immutable objects. Unlike entities, values in particular collections and components, <emphasis>are</emphasis> persisted and deleted by reachability. Since value objects and primitives are persisted and deleted along with their containing entity, they cannot be independently versioned. Values have no independent identity, so they cannot be shared by two entities or collections."
+msgstr "一个实体的持久状态包含指向其他实体和<emphasis>值</emphasis>类型实例的引用。值可以是原始类型,集合(不是集合中的对象),组件或者特定的不可变对象。与实体不同,值(特别是集合和组件)是通过可触及性来进行持久化和删除的。因为值对象(和原始类型数据)是随着包含他们的实体而被持久化和删除的,他们不能被独立的加上版本信息。值没有独立的标识,所以他们不能被两个实体或者集合共享。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Until now, we have been using the term \"persistent class\" to refer to "
-"entities. We will continue to do that. Not all user-defined classes with a "
-"persistent state, however, are entities. A <emphasis>component</emphasis> is "
-"a user-defined class with value semantics. A Java property of type "
-"<literal>java.lang.String</literal> also has value semantics. Given this "
-"definition, all types (classes) provided by the JDK have value type "
-"semantics in Java, while user-defined types can be mapped with entity or "
-"value type semantics. This decision is up to the application developer. An "
-"entity class in a domain model will normally have shared references to a "
-"single instance of that class, while composition or aggregation usually "
-"translates to a value type."
-msgstr ""
-"直到现在,我们都一直使用术语“持久类”(persistent class)来代表实体。我们仍然"
-"会这么做。然而严格说来,不是所有的用户自定义的,带有持久化状态的类都是实体。"
-"<emphasis>组件</emphasis>就是用户自定义类,却是值语义的。<literal>java.lang."
-"String</literal> 类型的 java 属性也是值语义的。给了这个定义以后,我们可以说所"
-"有 JDK 提供的类型(类)都是值类型的语义,而用于自定义类型可能被映射为实体类型"
-"或值类型语义。采用哪种类型的语义取决于开发人员。在领域模型中,寻找实体类的一"
-"个好线索是共享引用指向这个类的单一实例,而组合或聚合通常被转化为值类型。"
+#, no-c-format
+msgid "Until now, we have been using the term \"persistent class\" to refer to entities. We will continue to do that. Not all user-defined classes with a persistent state, however, are entities. A <emphasis>component</emphasis> is a user-defined class with value semantics. A Java property of type <literal>java.lang.String</literal> also has value semantics. Given this definition, all types (classes) provided by the JDK have value type semantics in Java, while user-defined types can be mapped with entity or value type semantics. This decision is up to the application developer. An entity class in a domain model will normally have shared references to a single instance of that class, while composition or aggregation usually translates to a value type."
+msgstr "直到现在,我们都一直使用术语“持久类”(persistent class)来代表实体。我们仍然会这么做。然而严格说来,不是所有的用户自定义的,带有持久化状态的类都是实体。<emphasis>组件</emphasis>就是用户自定义类,却是值语义的。<literal>java.lang.String</literal> 类型的 java 属性也是值语义的。给了这个定义以后,我们可以说所有 JDK 提供的类型(类)都是值类型的语义,而用于自定义类型可能被映射为实体类型或值类型语义。采用哪种类型的语义取决于开发人员。在领域模型中,寻找实体类的一个好线索是共享引用指向这个类的单一实例,而组合或聚合通常被转化为值类型。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "We will revisit both concepts throughout this reference guide."
-msgstr "我们会在本文档中重复碰到这两个概念。"
+msgstr "我们会在本文档中重复碰到这两个概念。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The challenge is to map the Java type system, and the developers' definition "
-"of entities and value types, to the SQL/database type system. The bridge "
-"between both systems is provided by Hibernate. For entities, <literal>&lt;"
-"class&gt;</literal>, <literal>&lt;subclass&gt;</literal> and so on are used. "
-"For value types we use <literal>&lt;property&gt;</literal>, <literal>&lt;"
-"component&gt;</literal>etc., that usually have a <literal>type</literal> "
-"attribute. The value of this attribute is the name of a Hibernate "
-"<emphasis>mapping type</emphasis>. Hibernate provides a range of mappings "
-"for standard JDK value types out of the box. You can write your own mapping "
-"types and implement your own custom conversion strategies."
-msgstr ""
-"挑战在于将 java 类型系统(和开发者定义的实体和值类型)映射到 SQL/数据库类型系"
-"统。Hibernate 提供了连接两个系统之间的桥梁:对于实体类型,我们使用 "
-"<literal>&lt;class&gt;</literal>,<literal>&lt;subclass&gt;</literal> 等等。"
-"对于值类型,我们使用 <literal>&lt;property&gt;</literal>,<literal>&lt;"
-"component&gt;</literal> 及其他,通常跟随着 <literal>type</literal> 属性。这个"
-"属性的值是Hibernate 的<emphasis>映射类型</emphasis>的名字。Hibernate 提供了许"
-"多现成的映射(标准的 JDK 值类型)。你也可以编写自己的映射类型并实现自定义的变"
-"换策略,随后我们会看到这点。"
+#, no-c-format
+msgid "The challenge is to map the Java type system, and the developers' definition of entities and value types, to the SQL/database type system. The bridge between both systems is provided by Hibernate. For entities, <literal>&lt;class&gt;</literal>, <literal>&lt;subclass&gt;</literal> and so on are used. For value types we use <literal>&lt;property&gt;</literal>, <literal>&lt;component&gt;</literal>etc., that usually have a <literal>type</literal> attribute. The value of this attribute is the name of a Hibernate <emphasis>mapping type</emphasis>. Hibernate provides a range of mappings for standard JDK value types out of the box. You can write your own mapping types and implement your own custom conversion strategies."
+msgstr "挑战在于将 java 类型系统(和开发者定义的实体和值类型)映射到 SQL/数据库类型系统。Hibernate 提供了连接两个系统之间的桥梁:对于实体类型,我们使用 <literal>&lt;class&gt;</literal>,<literal>&lt;subclass&gt;</literal> 等等。对于值类型,我们使用 <literal>&lt;property&gt;</literal>,<literal>&lt;component&gt;</literal> 及其他,通常跟随着 <literal>type</literal> 属性。这个属性的值是Hibernate 的<emphasis>映射类型</emphasis>的名字。Hibernate 提供了许多现成的映射(标准的 JDK 值类型)。你也可以编写自己的映射类型并实现自定义的变换策略,随后我们会看到这点。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"With the exception of collections, all built-in Hibernate types support null "
-"semantics."
-msgstr ""
-"所有的 Hibernate 内建类型,除了 collections 以外,都支持空(null)语义。"
+#, no-c-format
+msgid "With the exception of collections, all built-in Hibernate types support null semantics."
+msgstr "所有的 Hibernate 内建类型,除了 collections 以外,都支持空(null)语义。 "
 
 #. Tag: title
 #, no-c-format
@@ -3248,138 +1616,84 @@
 msgstr "基本值类型"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The built-in <emphasis>basic mapping types</emphasis> can be roughly "
-"categorized into the following:"
-msgstr ""
-"内置的 <emphasis>basic mapping types</emphasis> 可以大致地分类至categorized "
-"into"
+#, no-c-format
+msgid "The built-in <emphasis>basic mapping types</emphasis> can be roughly categorized into the following:"
+msgstr "内置的 <emphasis>basic mapping types</emphasis> 可以大致地分类为:"
 
 #. Tag: term
-#, fuzzy, no-c-format
-msgid ""
-"<literal>integer, long, short, float, double, character, byte, boolean, "
-"yes_no, true_false</literal>"
-msgstr ""
-"integer, long, short, float, double, character, byte, boolean, yes_no, "
-"true_false"
+#, no-c-format
+msgid "<literal>integer, long, short, float, double, character, byte, boolean, yes_no, true_false</literal>"
+msgstr "<literal>integer, long, short, float, double, character, byte, boolean, yes_no, true_false</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Type mappings from Java primitives or wrapper classes to appropriate (vendor-"
-"specific) SQL column types. <literal>boolean, yes_no</literal> and "
-"<literal>true_false</literal> are all alternative encodings for a Java "
-"<literal>boolean</literal> or <literal>java.lang.Boolean</literal>."
-msgstr ""
-"这些类型都对应 Java 的原始类型或者其封装类,来符合(特定厂商的)SQL 字段类"
-"型。<literal>boolean, yes_no</literal> 和 <literal>true_false</literal> 都是 "
-"Java 中 <literal>boolean</literal> 或者 <literal>java.lang.Boolean</literal> "
-"的另外说法。"
+msgid "Type mappings from Java primitives or wrapper classes to appropriate (vendor-specific) SQL column types. <literal>boolean, yes_no</literal> and <literal>true_false</literal> are all alternative encodings for a Java <literal>boolean</literal> or <literal>java.lang.Boolean</literal>."
+msgstr "这些类型都对应 Java 的原始类型或者其封装类,来符合(特定厂商的)SQL 字段类型。<literal>boolean, yes_no</literal> 和 <literal>true_false</literal> 都是 Java 中 <literal>boolean</literal> 或者 <literal>java.lang.Boolean</literal> 的另外说法。"
 
 #. Tag: term
 #, no-c-format
 msgid "<literal>string</literal>"
-msgstr ""
+msgstr "<literal>string</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A type mapping from <literal>java.lang.String</literal> to <literal>VARCHAR</"
-"literal> (or Oracle <literal>VARCHAR2</literal>)."
-msgstr ""
-"从 <literal>java.lang.String</literal> 到 <literal>VARCHAR</literal>(或者 "
-"Oracle 的 <literal>VARCHAR2</literal>)的映射。"
+msgid "A type mapping from <literal>java.lang.String</literal> to <literal>VARCHAR</literal> (or Oracle <literal>VARCHAR2</literal>)."
+msgstr "从 <literal>java.lang.String</literal> 到 <literal>VARCHAR</literal>(或者 Oracle 的 <literal>VARCHAR2</literal>)的映射。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>date, time, timestamp</literal>"
-msgstr "date, time, timestamp"
+msgstr "<literal>date, time, timestamp</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Type mappings from <literal>java.util.Date</literal> and its subclasses to "
-"SQL types <literal>DATE</literal>, <literal>TIME</literal> and "
-"<literal>TIMESTAMP</literal> (or equivalent)."
-msgstr ""
-"从 <literal>java.util.Date</literal> 和其子类到 SQL 类型 <literal>DATE</"
-"literal>,<literal>TIME</literal> 和 <literal>TIMESTAMP</literal>(或等价类"
-"型)的映射。"
+msgid "Type mappings from <literal>java.util.Date</literal> and its subclasses to SQL types <literal>DATE</literal>, <literal>TIME</literal> and <literal>TIMESTAMP</literal> (or equivalent)."
+msgstr "从 <literal>java.util.Date</literal> 和其子类到 SQL 类型 <literal>DATE</literal>,<literal>TIME</literal> 和 <literal>TIMESTAMP</literal>(或等价类型)的映射。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>calendar, calendar_date</literal>"
-msgstr "calendar, calendar_date"
+msgstr "<literal>calendar, calendar_date</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Type mappings from <literal>java.util.Calendar</literal> to SQL types "
-"<literal>TIMESTAMP</literal> and <literal>DATE</literal> (or equivalent)."
-msgstr ""
-"从 <literal>java.util.Calendar</literal> 到 SQL 类型 <literal>TIMESTAMP</"
-"literal> 和 <literal>DATE</literal>(或等价类型)的映射。"
+msgid "Type mappings from <literal>java.util.Calendar</literal> to SQL types <literal>TIMESTAMP</literal> and <literal>DATE</literal> (or equivalent)."
+msgstr "从 <literal>java.util.Calendar</literal> 到 SQL 类型 <literal>TIMESTAMP</literal> 和 <literal>DATE</literal>(或等价类型)的映射。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>big_decimal, big_integer</literal>"
-msgstr "big_decimal, big_integer"
+msgstr "<literal>big_decimal, big_integer</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Type mappings from <literal>java.math.BigDecimal</literal> and <literal>java."
-"math.BigInteger</literal> to <literal>NUMERIC</literal> (or Oracle "
-"<literal>NUMBER</literal>)."
-msgstr ""
-"从 <literal>java.math.BigDecimal</literal> 和 <literal>java.math.BigInteger</"
-"literal> 到 <literal>NUMERIC</literal>(或者 Oracle 的 <literal>NUMBER</"
-"literal>类型)的映射。"
+msgid "Type mappings from <literal>java.math.BigDecimal</literal> and <literal>java.math.BigInteger</literal> to <literal>NUMERIC</literal> (or Oracle <literal>NUMBER</literal>)."
+msgstr "从 <literal>java.math.BigDecimal</literal> 和 <literal>java.math.BigInteger</literal> 到 <literal>NUMERIC</literal>(或者 Oracle 的 <literal>NUMBER</literal>类型)的映射。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>locale, timezone, currency</literal>"
-msgstr "locale, timezone, currency"
+msgstr "<literal>locale, timezone, currency</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Type mappings from <literal>java.util.Locale</literal>, <literal>java.util."
-"TimeZone</literal> and <literal>java.util.Currency</literal> to "
-"<literal>VARCHAR</literal> (or Oracle <literal>VARCHAR2</literal>). "
-"Instances of <literal>Locale</literal> and <literal>Currency</literal> are "
-"mapped to their ISO codes. Instances of <literal>TimeZone</literal> are "
-"mapped to their <literal>ID</literal>."
-msgstr ""
-"从 <literal>java.util.Locale</literal>,<literal>java.util.TimeZone</"
-"literal>  和 <literal>java.util.Currency</literal> 到 <literal>VARCHAR</"
-"literal>(或者 Oracle 的 <literal>VARCHAR2</literal> 类型)的映射。"
-"<literal>Locale</literal> 和 <literal>Currency</literal> 的实例被映射为它们"
-"的 ISO 代码。<literal>TimeZone</literal> 的实例被影射为它的 <literal>ID</"
-"literal>。"
+msgid "Type mappings from <literal>java.util.Locale</literal>, <literal>java.util.TimeZone</literal> and <literal>java.util.Currency</literal> to <literal>VARCHAR</literal> (or Oracle <literal>VARCHAR2</literal>). Instances of <literal>Locale</literal> and <literal>Currency</literal> are mapped to their ISO codes. Instances of <literal>TimeZone</literal> are mapped to their <literal>ID</literal>."
+msgstr "从 <literal>java.util.Locale</literal>,<literal>java.util.TimeZone</literal>  和 <literal>java.util.Currency</literal> 到 <literal>VARCHAR</literal>(或者 Oracle 的 <literal>VARCHAR2</literal> 类型)的映射。<literal>Locale</literal> 和 <literal>Currency</literal> 的实例被映射为它们的 ISO 代码。<literal>TimeZone</literal> 的实例被影射为它的 <literal>ID</literal>。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>class</literal>"
-msgstr "<literal>all(全部)</literal>:检查全部字段"
+msgstr "<literal>class</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A type mapping from <literal>java.lang.Class</literal> to <literal>VARCHAR</"
-"literal> (or Oracle <literal>VARCHAR2</literal>). A <literal>Class</literal> "
-"is mapped to its fully qualified name."
-msgstr ""
-"从 <literal>java.lang.Class</literal> 到 <literal>VARCHAR</literal>(或者 "
-"Oracle 的 <literal>VARCHAR2</literal> 类型)的映射。<literal>Class</literal> "
-"被映射为它的全限定名。"
+msgid "A type mapping from <literal>java.lang.Class</literal> to <literal>VARCHAR</literal> (or Oracle <literal>VARCHAR2</literal>). A <literal>Class</literal> is mapped to its fully qualified name."
+msgstr "从 <literal>java.lang.Class</literal> 到 <literal>VARCHAR</literal>(或者 Oracle 的 <literal>VARCHAR2</literal> 类型)的映射。<literal>Class</literal> 被映射为它的全限定名。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>binary</literal>"
-msgstr "<literal>name</literal>:属性名"
+msgstr "<literal>binary</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -3387,101 +1701,54 @@
 msgstr "把字节数组(byte arrays)映射为对应的 SQL 二进制类型。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>text</literal>"
-msgstr "<literal>name</literal>:属性名"
+msgstr "<literal>text</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Maps long Java strings to a SQL <literal>CLOB</literal> or <literal>TEXT</"
-"literal> type."
-msgstr ""
-"把长 Java 字符串映射为 SQL 的 <literal>CLOB</literal> 或者 <literal>TEXT</"
-"literal> 类型。"
+msgid "Maps long Java strings to a SQL <literal>CLOB</literal> or <literal>TEXT</literal> type."
+msgstr "把长 Java 字符串映射为 SQL 的 <literal>CLOB</literal> 或者 <literal>TEXT</literal> 类型。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>serializable</literal>"
-msgstr "<literal>all(全部)</literal>:检查全部字段"
+msgstr "<literal>serializable</literal>"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Maps serializable Java types to an appropriate SQL binary type. You can also "
-"indicate the Hibernate type <literal>serializable</literal> with the name of "
-"a serializable Java class or interface that does not default to a basic type."
-msgstr ""
-"把可序列化的 Java 类型映射到对应的 SQL 二进制类型。你也可以为一个并非默认为基"
-"本类型的可序列化 Java 类或者接口指定 Hibernate 类型 <literal>serializable</"
-"literal>。"
+#, no-c-format
+msgid "Maps serializable Java types to an appropriate SQL binary type. You can also indicate the Hibernate type <literal>serializable</literal> with the name of a serializable Java class or interface that does not default to a basic type."
+msgstr "把可序列化的 Java 类型映射到对应的 SQL 二进制类型。你也可以为一个并非默认为基本类型的可序列化 Java 类或者接口指定 Hibernate 类型 <literal>serializable</literal>。 "
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>clob, blob</literal>"
-msgstr "<literal>all(全部)</literal>:检查全部字段"
+msgstr "<literal>clob, blob</literal>"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Type mappings for the JDBC classes <literal>java.sql.Clob</literal> and "
-"<literal>java.sql.Blob</literal>. These types can be inconvenient for some "
-"applications, since the blob or clob object cannot be reused outside of a "
-"transaction. Driver support is patchy and inconsistent."
-msgstr ""
-"JDBC 类 <literal>java.sql.Clob</literal> 和 <literal>java.sql.Blob</literal>"
-"的映射。某些程序可能不适合使用这个类型,因为 blob 和 clob 对象可能在一个事务"
-"之外是无法重用的。(而且, 驱动程序对这种类型的支持充满着补丁和前后矛盾。)"
+#, no-c-format
+msgid "Type mappings for the JDBC classes <literal>java.sql.Clob</literal> and <literal>java.sql.Blob</literal>. These types can be inconvenient for some applications, since the blob or clob object cannot be reused outside of a transaction. Driver support is patchy and inconsistent."
+msgstr "JDBC 类 <literal>java.sql.Clob</literal> 和 <literal>java.sql.Blob</literal>的映射。某些程序可能不适合使用这个类型,因为 blob 和 clob 对象可能在一个事务之外是无法重用的。(而且, 驱动程序对这种类型的支持充满着补丁和前后矛盾。) "
 
 #. Tag: term
-#, fuzzy, no-c-format
-msgid ""
-"<literal>imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, "
-"imm_serializable, imm_binary</literal>"
-msgstr ""
-"imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, "
-"imm_serializable, imm_binary"
+#, no-c-format
+msgid "<literal>imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, imm_serializable, imm_binary</literal>"
+msgstr "<literal>imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, imm_serializable, imm_binary</literal>"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Type mappings for what are considered mutable Java types. This is where "
-"Hibernate makes certain optimizations appropriate only for immutable Java "
-"types, and the application treats the object as immutable. For example, you "
-"should not call <literal>Date.setTime()</literal> for an instance mapped as "
-"<literal>imm_timestamp</literal>. To change the value of the property, and "
-"have that change made persistent, the application must assign a new, "
-"nonidentical, object to the property."
-msgstr ""
-"一般来说,映射类型被假定为是可变的 Java 类型,只有对不可变 Java 类型,"
-"Hibernate 会采取特定的优化措施,应用程序会把这些对象作为不可变对象处理。比"
-"如,你不应该对作为 <literal>imm_timestamp</literal> 映射的 Date 执行 "
-"<literal>Date.setTime()</literal>。要改变属性的值,并且保存这一改变,应用程序"
-"必须对这一属性重新设置一个新的(不一样的)对象。"
+#, no-c-format
+msgid "Type mappings for what are considered mutable Java types. This is where Hibernate makes certain optimizations appropriate only for immutable Java types, and the application treats the object as immutable. For example, you should not call <literal>Date.setTime()</literal> for an instance mapped as <literal>imm_timestamp</literal>. To change the value of the property, and have that change made persistent, the application must assign a new, nonidentical, object to the property."
+msgstr "一般来说,映射类型被假定为是可变的 Java 类型,只有对不可变 Java 类型,Hibernate 会采取特定的优化措施,应用程序会把这些对象作为不可变对象处理。比如,你不应该对作为 <literal>imm_timestamp</literal> 映射的 Date 执行 <literal>Date.setTime()</literal>。要改变属性的值,并且保存这一改变,应用程序必须对这一属性重新设置一个新的(不一样的)对象。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Unique identifiers of entities and collections can be of any basic type "
-"except <literal>binary</literal>, <literal>blob</literal> and <literal>clob</"
-"literal>. Composite identifiers are also allowed. See below for more "
-"information."
-msgstr ""
-"实体及其集合的唯一标识可以是除了 <literal>binary</literal>、 <literal>blob</"
-"literal> 和 <literal>clob</literal> 之外的任何基础类型。(联合标识也是允许"
-"的,后面会说到。)"
+#, no-c-format
+msgid "Unique identifiers of entities and collections can be of any basic type except <literal>binary</literal>, <literal>blob</literal> and <literal>clob</literal>. Composite identifiers are also allowed. See below for more information."
+msgstr "实体及其集合的唯一标识可以是除了 <literal>binary</literal>、 <literal>blob</literal> 和 <literal>clob</literal> 之外的任何基础类型。联合标识也是允许的,我们在后面会说到。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The basic value types have corresponding <literal>Type</literal> constants "
-"defined on <literal>org.hibernate.Hibernate</literal>. For example, "
-"<literal>Hibernate.STRING</literal> represents the <literal>string</literal> "
-"type."
-msgstr ""
-"在 <literal>org.hibernate.Hibernate</literal> 中,定义了基础类型对应的 "
-"<literal>Type</literal> 常量。比如,<literal>Hibernate.STRING</literal> 代表 "
-"<literal>string</literal> 类型。"
+msgid "The basic value types have corresponding <literal>Type</literal> constants defined on <literal>org.hibernate.Hibernate</literal>. For example, <literal>Hibernate.STRING</literal> represents the <literal>string</literal> type."
+msgstr "在 <literal>org.hibernate.Hibernate</literal> 中,定义了基础类型对应的 <literal>Type</literal> 常量。比如,<literal>Hibernate.STRING</literal> 代表 <literal>string</literal> 类型。"
 
 #. Tag: title
 #, no-c-format
@@ -3489,126 +1756,49 @@
 msgstr "自定义值类型"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"It is relatively easy for developers to create their own value types. For "
-"example, you might want to persist properties of type <literal>java.lang."
-"BigInteger</literal> to <literal>VARCHAR</literal> columns. Hibernate does "
-"not provide a built-in type for this. Custom types are not limited to "
-"mapping a property, or collection element, to a single table column. So, for "
-"example, you might have a Java property <literal>getName()</literal>/"
-"<literal>setName()</literal> of type <literal>java.lang.String</literal> "
-"that is persisted to the columns <literal>FIRST_NAME</literal>, "
-"<literal>INITIAL</literal>, <literal>SURNAME</literal>."
-msgstr ""
-"开发者创建属于他们自己的值类型也是很容易的。比如说,你可能希望持久化 "
-"<literal>java.lang.BigInteger</literal> 类型的属性,持久化成为 "
-"<literal>VARCHAR</literal> 字段。Hibernate没有内置这样一种类型。自定义类型能"
-"够映射一个属性(或集合元素)到不止一个数据库表字段。比如说,你可能有这样的 "
-"Java 属性:<literal>getName()</literal>/<literal>setName()</literal>,这是 "
-"<literal>java.lang.String</literal> 类型的,对应的持久化到三个字段:"
-"<literal>FIRST_NAME</literal>,<literal>INITIAL</literal>,<literal>SURNAME</"
-"literal>。"
+#, no-c-format
+msgid "It is relatively easy for developers to create their own value types. For example, you might want to persist properties of type <literal>java.lang.BigInteger</literal> to <literal>VARCHAR</literal> columns. Hibernate does not provide a built-in type for this. Custom types are not limited to mapping a property, or collection element, to a single table column. So, for example, you might have a Java property <literal>getName()</literal>/<literal>setName()</literal> of type <literal>java.lang.String</literal> that is persisted to the columns <literal>FIRST_NAME</literal>, <literal>INITIAL</literal>, <literal>SURNAME</literal>."
+msgstr "开发者创建属于他们自己的值类型也是很容易的。比如说,你可能希望持久化 <literal>java.lang.BigInteger</literal> 类型的属性,持久化成为 <literal>VARCHAR</literal> 字段。Hibernate没有内置这样一种类型。自定义类型能够映射一个属性(或集合元素)到不止一个数据库表字段。比如说,你可能有这样的 Java 属性:<literal>getName()</literal>/<literal>setName()</literal>,这是 <literal>java.lang.String</literal> 类型的,对应的持久化到三个字段:<literal>FIRST_NAME</literal>、<literal>INITIAL</literal>、<literal>SURNAME</literal>。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"To implement a custom type, implement either <literal>org.hibernate."
-"UserType</literal> or <literal>org.hibernate.CompositeUserType</literal> and "
-"declare properties using the fully qualified classname of the type. View "
-"<literal>org.hibernate.test.DoubleStringType</literal> to see the kind of "
-"things that are possible."
-msgstr ""
-"要实现一个自定义类型,可以实现 <literal>org.hibernate.UserType</literal> 或 "
-"<literal>org.hibernate.CompositeUserType</literal> 中的任一个,并且使用类型"
-"的 Java 全限定类名来定义属性。请查看 <literal>org.hibernate.test."
-"DoubleStringType</literal> 这个例子,看看它是怎么做的。"
+#, no-c-format
+msgid "To implement a custom type, implement either <literal>org.hibernate.UserType</literal> or <literal>org.hibernate.CompositeUserType</literal> and declare properties using the fully qualified classname of the type. View <literal>org.hibernate.test.DoubleStringType</literal> to see the kind of things that are possible."
+msgstr "要实现一个自定义类型,可以实现 <literal>org.hibernate.UserType</literal> 或 <literal>org.hibernate.CompositeUserType</literal> 中的任一个,并且使用类型的 Java 全限定类名来定义属性。请查看 <literal>org.hibernate.test.DoubleStringType</literal> 这个例子,看看它是怎么做的。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Notice the use of <literal>&lt;column&gt;</literal> tags to map a property "
-"to multiple columns."
-msgstr ""
-"注意使用 <literal>&lt;column&gt;</literal> 标签来把一个属性映射到多个字段的做"
-"法。"
+msgid "Notice the use of <literal>&lt;column&gt;</literal> tags to map a property to multiple columns."
+msgstr "注意使用 <literal>&lt;column&gt;</literal> 标签来把一个属性映射到多个字段的做法。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>CompositeUserType</literal>, <literal>EnhancedUserType</"
-"literal>, <literal>UserCollectionType</literal>, and "
-"<literal>UserVersionType</literal> interfaces provide support for more "
-"specialized uses."
-msgstr ""
-"<literal>CompositeUserType</literal>,<literal>EnhancedUserType</literal>,"
-"<literal>UserCollectionType</literal> 和 <literal>UserVersionType</literal> "
-"接口为更特殊的使用方式提供支持。"
+msgid "The <literal>CompositeUserType</literal>, <literal>EnhancedUserType</literal>, <literal>UserCollectionType</literal>, and <literal>UserVersionType</literal> interfaces provide support for more specialized uses."
+msgstr "<literal>CompositeUserType</literal>,<literal>EnhancedUserType</literal>,<literal>UserCollectionType</literal> 和 <literal>UserVersionType</literal> 接口为更特殊的使用方式提供支持。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"You can even supply parameters to a <literal>UserType</literal> in the "
-"mapping file. To do this, your <literal>UserType</literal> must implement "
-"the <literal>org.hibernate.usertype.ParameterizedType</literal> interface. "
-"To supply parameters to your custom type, you can use the <literal>&lt;"
-"type&gt;</literal> element in your mapping files."
-msgstr ""
-"你甚至可以在一个映射文件中提供参数给一个 <literal>UserType</literal>。 为了这"
-"样做,你的 <literal>UserType</literal> 必须实现 <literal>org.hibernate."
-"usertype.ParameterizedType</literal> 接口。为了给自定义类型提供参数,你可以在"
-"映射文件中使用 <literal>&lt;type&gt;</literal> 元素。"
+#, no-c-format
+msgid "You can even supply parameters to a <literal>UserType</literal> in the mapping file. To do this, your <literal>UserType</literal> must implement the <literal>org.hibernate.usertype.ParameterizedType</literal> interface. To supply parameters to your custom type, you can use the <literal>&lt;type&gt;</literal> element in your mapping files."
+msgstr "你甚至可以在一个映射文件中提供参数给一个 <literal>UserType</literal>。 为了这样做,你的 <literal>UserType</literal> 必须实现 <literal>org.hibernate.usertype.ParameterizedType</literal> 接口。为了给自定义类型提供参数,你可以在映射文件中使用 <literal>&lt;type&gt;</literal> 元素。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>UserType</literal> can now retrieve the value for the parameter "
-"named <literal>default</literal> from the <literal>Properties</literal> "
-"object passed to it."
-msgstr ""
-"现在,<literal>UserType</literal> 可以从传入的 <literal>Properties</literal> "
-"对象中得到 <literal>default</literal> 参数的值。"
+msgid "The <literal>UserType</literal> can now retrieve the value for the parameter named <literal>default</literal> from the <literal>Properties</literal> object passed to it."
+msgstr "现在,<literal>UserType</literal> 可以从传入的 <literal>Properties</literal> 对象中得到 <literal>default</literal> 参数的值。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"If you regularly use a certain <literal>UserType</literal>, it is useful to "
-"define a shorter name for it. You can do this using the <literal>&lt;"
-"typedef&gt;</literal> element. Typedefs assign a name to a custom type, and "
-"can also contain a list of default parameter values if the type is "
-"parameterized."
-msgstr ""
-"如果你非常频繁地使用某一 <literal>UserType</literal>,可以为他定义一个简称。"
-"这可以通过使用 <literal>&lt;typedef&gt;</literal> 元素来实现。Typedefs 为一自"
-"定义类型赋予一个名称,并且如果此类型是参数化的,还可以包含一系列默认的参数"
-"值。"
+#, no-c-format
+msgid "If you regularly use a certain <literal>UserType</literal>, it is useful to define a shorter name for it. You can do this using the <literal>&lt;typedef&gt;</literal> element. Typedefs assign a name to a custom type, and can also contain a list of default parameter values if the type is parameterized."
+msgstr "如果你非常频繁地使用某一 <literal>UserType</literal>,可以为他定义一个简称。这可以通过使用 <literal>&lt;typedef&gt;</literal> 元素来实现。Typedefs 为一自定义类型赋予一个名称,并且如果此类型是参数化的,还可以包含一系列默认的参数值。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"It is also possible to override the parameters supplied in a typedef on a "
-"case-by-case basis by using type parameters on the property mapping."
-msgstr ""
-"也可以根据具体案例通过属性映射中的类型参数覆盖在 typedef 中提供的参数。"
+msgid "It is also possible to override the parameters supplied in a typedef on a case-by-case basis by using type parameters on the property mapping."
+msgstr "也可以根据具体案例通过属性映射中的类型参数覆盖在 typedef 中提供的参数。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Even though Hibernate's rich range of built-in types and support for "
-"components means you will rarely need to use a custom type, it is considered "
-"good practice to use custom types for non-entity classes that occur "
-"frequently in your application. For example, a <literal>MonetaryAmount</"
-"literal> class is a good candidate for a <literal>CompositeUserType</"
-"literal>, even though it could be mapped as a component. One reason for this "
-"is abstraction. With a custom type, your mapping documents would be "
-"protected against changes to the way monetary values are represented."
-msgstr ""
-"尽管 Hibernate 内建的丰富的类型和对组件的支持意味着你可能很少 <emphasis>需要"
-"</emphasis>使用自定义类型。不过,为那些在你的应用中经常出现的(非实体)类使用自"
-"定义类型也是一个好方法。例如,一个 <literal>MonetaryAmount</literal> 类使用 "
-"<literal>CompositeUserType</literal> 来映射是不错的选择,虽然他可以很容易地被"
-"映射成组件。这样做的动机之一是抽象。使用自定义类型,以后假若你改变表示金额的"
-"方法时,它可以保证映射文件不需要修改。"
+#, no-c-format
+msgid "Even though Hibernate's rich range of built-in types and support for components means you will rarely need to use a custom type, it is considered good practice to use custom types for non-entity classes that occur frequently in your application. For example, a <literal>MonetaryAmount</literal> class is a good candidate for a <literal>CompositeUserType</literal>, even though it could be mapped as a component. One reason for this is abstraction. With a custom type, your mapping documents would be protected against changes to the way monetary values are represented."
+msgstr "尽管 Hibernate 内建的丰富的类型和对组件的支持意味着你可能很少 <emphasis>需要</emphasis>使用自定义类型。不过,为那些在你的应用中经常出现的(非实体)类使用自定义类型也是一个好方法。例如,一个 <literal>MonetaryAmount</literal> 类使用 <literal>CompositeUserType</literal> 来映射是不错的选择,虽然他可以很容易地被映射成组件。这样做的动机之一是抽象。使用自定义类型,以后假若你改变表示金额的方法时,它可以保证映射文件不需要修改。 "
 
 #. Tag: title
 #, no-c-format
@@ -3616,28 +1806,14 @@
 msgstr "多次映射同一个类"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"It is possible to provide more than one mapping for a particular persistent "
-"class. In this case, you must specify an <emphasis>entity name</emphasis> to "
-"disambiguate between instances of the two mapped entities. By default, the "
-"entity name is the same as the class name. Hibernate lets you specify the "
-"entity name when working with persistent objects, when writing queries, or "
-"when mapping associations to the named entity."
-msgstr ""
-"对特定的持久化类,映射多次是允许的。这种情形下,你必须指定 <emphasis>entity "
-"name</emphasis> 来区别不同映射实体的对象实例。(默认情况下,实体名字和类名是"
-"相同的。) Hibernate 在操作持久化对象、编写查询条件,或者把关联映射到指定实体"
-"时,允许你指定这个 entity name(实体名字)。"
+#, no-c-format
+msgid "It is possible to provide more than one mapping for a particular persistent class. In this case, you must specify an <emphasis>entity name</emphasis> to disambiguate between instances of the two mapped entities. By default, the entity name is the same as the class name. Hibernate lets you specify the entity name when working with persistent objects, when writing queries, or when mapping associations to the named entity."
+msgstr "对特定的持久化类,映射多次是允许的。这种情形下,你必须指定 <emphasis>entity name</emphasis> 来区别不同映射实体的对象实例。(默认情况下,实体名字和类名是相同的。) Hibernate 在操作持久化对象、编写查询条件,或者把关联映射到指定实体时,允许你指定这个 entity name(实体名字)。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Associations are now specified using <literal>entity-name</literal> instead "
-"of <literal>class</literal>."
-msgstr ""
-"注意这里关联是如何用 <literal>entity-name</literal> 来代替 <literal>class</"
-"literal> 的。"
+#, no-c-format
+msgid "Associations are now specified using <literal>entity-name</literal> instead of <literal>class</literal>."
+msgstr "注意这里关联是如何用 <literal>entity-name</literal> 来代替 <literal>class</literal> 的。 "
 
 #. Tag: title
 #, no-c-format
@@ -3645,18 +1821,9 @@
 msgstr "SQL 中引号包围的标识符"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"You can force Hibernate to quote an identifier in the generated SQL by "
-"enclosing the table or column name in backticks in the mapping document. "
-"Hibernate will use the correct quotation style for the SQL <literal>Dialect</"
-"literal>. This is usually double quotes, but the SQL Server uses brackets "
-"and MySQL uses backticks."
-msgstr ""
-"你可通过在映射文档中使用反向引号(`)把表名或者字段名包围起来,以强制 "
-"Hibernate 在生成的 SQL 中把标识符用引号包围起来。Hibernate 会使用相应的 "
-"SQL<literal>Dialect</literal>(方言)来使用正确的引号风格(通常是双引号,但是"
-"在 SQL Server 中是括号,MySQL 中是反向引号)。"
+#, no-c-format
+msgid "You can force Hibernate to quote an identifier in the generated SQL by enclosing the table or column name in backticks in the mapping document. Hibernate will use the correct quotation style for the SQL <literal>Dialect</literal>. This is usually double quotes, but the SQL Server uses brackets and MySQL uses backticks."
+msgstr "你可通过在映射文档中使用反向引号(`)把表名或者字段名包围起来,以强制 Hibernate 在生成的 SQL 中把标识符用引号包围起来。Hibernate 会使用相应的 SQL<literal>Dialect</literal>(方言)来使用正确的引号风格(通常是双引号,但是在 SQL Server 中是括号,MySQL 中是反向引号)。 "
 
 #. Tag: title
 #, no-c-format
@@ -3664,13 +1831,9 @@
 msgstr "其他元数据(Metadata)"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"XML does not suit all users so there are some alternative ways to define O/R "
-"mapping metadata in Hibernate."
-msgstr ""
-"XML 并不适用于所有人, 因此有其他定义 Hibernate O/R 映射元数据(metadata)的方"
-"法。"
+#, no-c-format
+msgid "XML does not suit all users so there are some alternative ways to define O/R mapping metadata in Hibernate."
+msgstr "XML 并不适用于所有人, 因此有其他定义 Hibernate O/R 映射元数据(metadata)的方法。 "
 
 #. Tag: title
 #, no-c-format
@@ -3678,23 +1841,14 @@
 msgstr "使用 XDoclet 标记"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Many Hibernate users prefer to embed mapping information directly in "
-"sourcecode using XDoclet <literal>@hibernate.tags</literal>. We do not cover "
-"this approach in this reference guide since it is considered part of "
-"XDoclet. However, we include the following example of the <literal>Cat</"
-"literal> class with XDoclet mappings:"
-msgstr ""
-"很多 Hibernate 使用者更喜欢使用 XDoclet<literal>@hibernate.tags</literal> 将"
-"映射信息直接嵌入到源代码中。我们不会在本文档中涉及这个方法,因为严格说来,这"
-"属于 XDoclet 的一部分。然而,我们包含了如下使用 XDoclet 映射的 <literal>Cat</"
-"literal> 类的例子。"
+#, no-c-format
+msgid "Many Hibernate users prefer to embed mapping information directly in sourcecode using XDoclet <literal>@hibernate.tags</literal>. We do not cover this approach in this reference guide since it is considered part of XDoclet. However, we include the following example of the <literal>Cat</literal> class with XDoclet mappings:"
+msgstr "很多 Hibernate 使用者更喜欢使用 XDoclet<literal>@hibernate.tags</literal> 将映射信息直接嵌入到源代码中。我们不会在本文档中涉及这个方法,因为严格说来,这属于 XDoclet 的一部分。然而,我们包含了如下使用 XDoclet 映射的 <literal>Cat</literal> 类的例子。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "See the Hibernate website for more examples of XDoclet and Hibernate."
-msgstr "参考 Hibernate 网站更多的 Xdoclet 和 Hibernate 的例子"
+msgstr "参考 Hibernate 网站更多的 Xdoclet 和 Hibernate 的例子。"
 
 #. Tag: title
 #, no-c-format
@@ -3702,26 +1856,9 @@
 msgstr "使用 JDK 5.0 的注解(Annotation)"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"JDK 5.0 introduced XDoclet-style annotations at the language level that are "
-"type-safe and checked at compile time. This mechanism is more powerful than "
-"XDoclet annotations and better supported by tools and IDEs. IntelliJ IDEA, "
-"for example, supports auto-completion and syntax highlighting of JDK 5.0 "
-"annotations. The new revision of the EJB specification (JSR-220) uses JDK "
-"5.0 annotations as the primary metadata mechanism for entity beans. "
-"Hibernate3 implements the <literal>EntityManager</literal> of JSR-220 (the "
-"persistence API). Support for mapping metadata is available via the "
-"<emphasis>Hibernate Annotations</emphasis> package as a separate download. "
-"Both EJB3 (JSR-220) and Hibernate3 metadata is supported."
-msgstr ""
-"JDK 5.0 在语言级别引入了 XDoclet 风格的标注,并且是类型安全的,在编译期进行检"
-"查。这一机制比 XDoclet 的注解更为强大,有更好的工具和 IDE 支持。例如,"
-"IntelliJ IDEA,支持 JDK 5.0 注解的自动完成和语法高亮 。EJB 规范的新修订版 "
-"(JSR-220) 使用 JDK 5.0 的注解作为entity beans的主要元数据(metadata)机制。"
-"Hibernate 3 实现了JSR-220(the persistence API) 的 <literal>EntityManager</"
-"literal>,支持通过 <emphasis>Hibernate Annotations</emphasis> 包定义映射元数"
-"据。这个包作为单独的部分下载,支持 EJB3(JSR-220) 和 Hibernate3 的元数据。"
+#, no-c-format
+msgid "JDK 5.0 introduced XDoclet-style annotations at the language level that are type-safe and checked at compile time. This mechanism is more powerful than XDoclet annotations and better supported by tools and IDEs. IntelliJ IDEA, for example, supports auto-completion and syntax highlighting of JDK 5.0 annotations. The new revision of the EJB specification (JSR-220) uses JDK 5.0 annotations as the primary metadata mechanism for entity beans. Hibernate3 implements the <literal>EntityManager</literal> of JSR-220 (the persistence API). Support for mapping metadata is available via the <emphasis>Hibernate Annotations</emphasis> package as a separate download. Both EJB3 (JSR-220) and Hibernate3 metadata is supported."
+msgstr "JDK 5.0 在语言级别引入了 XDoclet 风格的标注,并且是类型安全的,在编译期进行检查。这一机制比 XDoclet 的注解更为强大,有更好的工具和 IDE 支持。例如,IntelliJ IDEA,支持 JDK 5.0 注解的自动完成和语法高亮 。EJB 规范的新修订版 (JSR-220) 使用 JDK 5.0 的注解作为entity beans的主要元数据(metadata)机制。Hibernate 3 实现了JSR-220(the persistence API) 的 <literal>EntityManager</literal>,支持通过 <emphasis>Hibernate Annotations</emphasis> 包定义映射元数据。这个包作为单独的部分下载,支持 EJB3(JSR-220) 和 Hibernate3 的元数据。 "
 
 #. Tag: para
 #, no-c-format
@@ -3729,129 +1866,64 @@
 msgstr "这是一个被注解为 EJB entity bean 的 POJO 类的例子"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Support for JDK 5.0 Annotations (and JSR-220) is currently under "
-"development. Please refer to the Hibernate Annotations module for more "
-"details."
-msgstr ""
-"注意:对 JDK 5.0 注解(和 JSR-220)支持的工作仍然在进行中,并未完成。更多细节请"
-"参阅 Hibernate Annotations 模块。"
+#, no-c-format
+msgid "Support for JDK 5.0 Annotations (and JSR-220) is currently under development. Please refer to the Hibernate Annotations module for more details."
+msgstr "注意:对 JDK 5.0 注解(和 JSR-220)支持的工作仍然在进行中,并未完成。更多细节请参阅 Hibernate Annotations 模块。 "
 
 #. Tag: title
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Generated properties"
-msgstr "数据库生成属性(Generated Properties)"
+msgstr "数据库生成属性(Generated Properties) "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Generated properties are properties that have their values generated by the "
-"database. Typically, Hibernate applications needed to <literal>refresh</"
-"literal> objects that contain any properties for which the database was "
-"generating values. Marking properties as generated, however, lets the "
-"application delegate this responsibility to Hibernate. When Hibernate issues "
-"an SQL INSERT or UPDATE for an entity that has defined generated properties, "
-"it immediately issues a select afterwards to retrieve the generated values."
-msgstr ""
-"Generated properties 指的是其值由数据库生成的属性。一般来说,如果对象有任何属"
-"性由数据库生成值,Hibernate 应用程序需要进行<literal>刷新(refresh)</"
-"literal>。但如果把属性标明为 generated,就可以转由 Hibernate 来负责这个动作。"
-"实际上。对定义了 generated properties 的实体,每当 Hibernate 执行一条 SQL "
-"INSERT 或者 UPDATE 语句,会立刻执行一条 select 来获得生成的值。"
+#, no-c-format
+msgid "Generated properties are properties that have their values generated by the database. Typically, Hibernate applications needed to <literal>refresh</literal> objects that contain any properties for which the database was generating values. Marking properties as generated, however, lets the application delegate this responsibility to Hibernate. When Hibernate issues an SQL INSERT or UPDATE for an entity that has defined generated properties, it immediately issues a select afterwards to retrieve the generated values."
+msgstr "Generated properties 指的是其值由数据库生成的属性。一般来说,如果对象有任何属性由数据库生成值,Hibernate 应用程序需要进行<literal>刷新(refresh)</literal>。但如果把属性标明为 generated,就可以转由 Hibernate 来负责这个动作。实际上。对定义了 generated properties 的实体,每当 Hibernate 执行一条 SQL INSERT 或者 UPDATE 语句,会立刻执行一条 select 来获得生成的值。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Properties marked as generated must additionally be non-insertable and non-"
-"updateable. Only <xref linkend=\"mapping-declaration-version\" />, <xref "
-"linkend=\"mapping-declaration-timestamp\" />, and <xref linkend=\"mapping-"
-"declaration-property\" />, can be marked as generated."
-msgstr ""
-"被标明为 generated 的属性还必须是 non-insertable 和 non-updateable 的。只有 "
-"<xref linkend=\"Mapping_declaration-version_optional\"/> versions、<xref "
-"linkend=\"Mapping_declaration-timestamp_optional\"/> timestamp 和 <xref "
-"linkend=\"Mapping_declaration-property\"/> 简单属性(simple properties)可以"
-"被标明为 generated。"
+#, no-c-format
+msgid "Properties marked as generated must additionally be non-insertable and non-updateable. Only <xref linkend=\"mapping-declaration-version\" />, <xref linkend=\"mapping-declaration-timestamp\" />, and <xref linkend=\"mapping-declaration-property\" />, can be marked as generated."
+msgstr "被标明为 generated 的属性还必须是 non-insertable 和 non-updateable 的。只有 <xref linkend=\"mapping_declaration-version_optional\"/> versions、<xref linkend=\"mapping_declaration-timestamp_optional\"/> timestamp 和 <xref linkend=\"mapping_declaration-property\"/> 简单属性(simple properties)可以被标明为 generated。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>never</literal> (the default): the given property value is not "
-"generated within the database."
-msgstr "<literal>never</literal>(默认)标明此属性值不是从数据库中生成。"
+#, no-c-format
+msgid "<literal>never</literal> (the default): the given property value is not generated within the database."
+msgstr "<literal>never</literal>(默认)标明此属性值不是从数据库中生成。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>insert</literal>: the given property value is generated on insert, "
-"but is not regenerated on subsequent updates. Properties like created-date "
-"fall into this category. Even though <xref linkend=\"mapping-declaration-"
-"version\" /> and <xref linkend=\"mapping-declaration-timestamp\" /> "
-"properties can be marked as generated, this option is not available."
-msgstr ""
-"<literal>insert</literal> — 标明此属性值在 insert 的时候生成,但是不会在随后"
-"的 update 时重新生成。比如说创建日期就归属于这类。注意虽然 <xref linkend="
-"\"Mapping_declaration-version_optional\"/> version 和 <xref linkend="
-"\"Mapping_declaration-timestamp_optional\"/> timestamp 属性可以被标注为 "
-"generated,但是不适用这个选项..."
+#, no-c-format
+msgid "<literal>insert</literal>: the given property value is generated on insert, but is not regenerated on subsequent updates. Properties like created-date fall into this category. Even though <xref linkend=\"mapping-declaration-version\" /> and <xref linkend=\"mapping-declaration-timestamp\" /> properties can be marked as generated, this option is not available."
+msgstr "<literal>insert</literal> — 标明此属性值在 insert 的时候生成,但是不会在随后的 update 时重新生成。比如说创建日期就归属于这类。注意虽然 <xref linkend=\"mapping-declaration-version\" /> version 和 <xref linkend=\"mapping-declaration-timestamp\" /> timestamp 属性可以被标注为 generated,但是不适用这个选项..."
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"<literal>always</literal>: the property value is generated both on insert "
-"and on update."
-msgstr ""
-"<literal>always</literal> — 标明此属性值在 insert 和 update 时都会被生成。"
+#, no-c-format
+msgid "<literal>always</literal>: the property value is generated both on insert and on update."
+msgstr "<literal>always</literal>:标明此属性值在 insert 和 update 时都会被生成。"
 
 #. Tag: title
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "Auxiliary database objects"
-msgstr "辅助数据库对象(Auxiliary Database Objects)"
+msgstr "辅助数据库对象(Auxiliary Database Objects) "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Auxiliary database objects allow for the CREATE and DROP of arbitrary "
-"database objects. In conjunction with Hibernate's schema evolution tools, "
-"they have the ability to fully define a user schema within the Hibernate "
-"mapping files. Although designed specifically for creating and dropping "
-"things like triggers or stored procedures, any SQL command that can be run "
-"via a <literal>java.sql.Statement.execute()</literal> method is valid (for "
-"example, ALTERs, INSERTS, etc.). There are essentially two modes for "
-"defining auxiliary database objects:"
-msgstr ""
-"允许 CREATE 和 DROP 任意数据库对象,与 Hibernate 的 schema 交互工具组合起来,"
-"可以提供在 Hibernate 映射文件中完全定义用户 schema 的能力。虽然这是为创建和销"
-"毁 trigger(触发器)或stored procedure(存储过程)等特别设计的,实际上任何可"
-"以在 <literal>java.sql.Statement.execute()</literal> 方法中执行的 SQL 命令都"
-"可以在此使用(比如ALTER, INSERT,等等)。本质上有两种模式来定义辅助数据库对"
-"象..."
+#, no-c-format
+msgid "Auxiliary database objects allow for the CREATE and DROP of arbitrary database objects. In conjunction with Hibernate's schema evolution tools, they have the ability to fully define a user schema within the Hibernate mapping files. Although designed specifically for creating and dropping things like triggers or stored procedures, any SQL command that can be run via a <literal>java.sql.Statement.execute()</literal> method is valid (for example, ALTERs, INSERTS, etc.). There are essentially two modes for defining auxiliary database objects:"
+msgstr "允许 CREATE 和 DROP 任意数据库对象,与 Hibernate 的 schema 交互工具组合起来,可以提供在 Hibernate 映射文件中完全定义用户 schema 的能力。虽然这是为创建和销毁 trigger(触发器)或stored procedure(存储过程)等特别设计的,实际上任何可以在 <literal>java.sql.Statement.execute()</literal> 方法中执行的 SQL 命令都可以在此使用(比如ALTER, INSERT,等等)。本质上有两种模式来定义辅助数据库对象:"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The first mode is to explicitly list the CREATE and DROP commands in the "
-"mapping file:"
-msgstr "第一种模式是在映射文件中显式声明 CREATE 和 DROP 命令:"
+#, no-c-format
+msgid "The first mode is to explicitly list the CREATE and DROP commands in the mapping file:"
+msgstr "第一种模式是在映射文件中显式声明 CREATE 和 DROP 命令: "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The second mode is to supply a custom class that constructs the CREATE and "
-"DROP commands. This custom class must implement the <literal>org.hibernate."
-"mapping.AuxiliaryDatabaseObject</literal> interface."
-msgstr ""
-"第二种模式是提供一个类,这个类知道如何组织 CREATE 和 DROP 命令。这个特别类必"
-"须实现 <literal>org.hibernate.mapping.AuxiliaryDatabaseObject</literal> 接"
-"口。"
+#, no-c-format
+msgid "The second mode is to supply a custom class that constructs the CREATE and DROP commands. This custom class must implement the <literal>org.hibernate.mapping.AuxiliaryDatabaseObject</literal> interface."
+msgstr "第二种模式是提供一个类,这个类知道如何组织 CREATE 和 DROP 命令。这个特别类必须实现 <literal>org.hibernate.mapping.AuxiliaryDatabaseObject</literal> 接口。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Additionally, these database objects can be optionally scoped so that they "
-"only apply when certain dialects are used."
-msgstr "还有,这些数据库对象可以特别指定为仅在特定的方言中才使用。"
+#, no-c-format
+msgid "Additionally, these database objects can be optionally scoped so that they only apply when certain dialects are used."
+msgstr "还有,这些数据库对象可以特别指定为仅在特定的方言中才使用。 "
 
 #~ msgid ""
 #~ "<![CDATA[<?xml version=\"1.0\"?>\n"
@@ -3985,7 +2057,6 @@
 #~ "        </class>\n"
 #~ "\n"
 #~ "</hibernate-mapping>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<?xml version=\"1.0\"?>\n"
 #~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
@@ -4018,7 +2089,6 @@
 #~ "    <class>\n"
 #~ "    &types;\n"
 #~ "</hibernate-mapping>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<hibernate-mapping\n"
 #~ "         schema=\"schemaName\"\n"
@@ -4039,7 +2109,6 @@
 #~ "         auto-import=\"true|false\"\n"
 #~ "         package=\"package.name\"\n"
 #~ " />]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<class\n"
 #~ "        name=\"ClassName\"\n"
@@ -4090,7 +2159,6 @@
 #~ "        abstract=\"true|false\"\n"
 #~ "        node=\"element-name\"\n"
 #~ "/>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<class name=\"Summary\">\n"
 #~ "    <subselect>\n"
@@ -4117,7 +2185,6 @@
 #~ "    <id name=\"name\"/>\n"
 #~ "    ...\n"
 #~ "</class>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<id\n"
 #~ "        name=\"propertyName\"\n"
@@ -4140,7 +2207,6 @@
 #~ "\n"
 #~ "        <generator class=\"generatorClass\"/>\n"
 #~ "</id>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
 #~ "        <generator class=\"org.hibernate.id.TableHiLoGenerator\">\n"
@@ -4155,37 +2221,26 @@
 #~ "                <param name=\"column\">next_hi_value_column</param>\n"
 #~ "        </generator>\n"
 #~ "</id>]]>"
-
 #~ msgid "increment"
 #~ msgstr "increment"
-
 #~ msgid "identity"
 #~ msgstr "identity"
-
 #~ msgid "sequence"
 #~ msgstr "sequence"
-
 #~ msgid "hilo"
 #~ msgstr "hilo"
-
 #~ msgid "seqhilo"
 #~ msgstr "seqhilo"
-
 #~ msgid "guid"
 #~ msgstr "guid"
-
 #~ msgid "native"
 #~ msgstr "native"
-
 #~ msgid "assigned"
 #~ msgstr "assigned"
-
 #~ msgid "select"
 #~ msgstr "select"
-
 #~ msgid "foreign"
 #~ msgstr "foreign"
-
 #~ msgid ""
 #~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
 #~ "        <generator class=\"hilo\">\n"
@@ -4202,7 +2257,6 @@
 #~ "                <param name=\"max_lo\">100</param>\n"
 #~ "        </generator>\n"
 #~ "</id>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
 #~ "        <generator class=\"seqhilo\">\n"
@@ -4217,7 +2271,6 @@
 #~ "                <param name=\"max_lo\">100</param>\n"
 #~ "        </generator>\n"
 #~ "</id>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
 #~ "        <generator class=\"sequence\">\n"
@@ -4230,7 +2283,6 @@
 #~ "                <param name=\"sequence\">person_id_sequence</param>\n"
 #~ "        </generator>\n"
 #~ "</id>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\" unsaved-value="
 #~ "\"0\">\n"
@@ -4241,7 +2293,6 @@
 #~ "\"0\">\n"
 #~ "        <generator class=\"identity\"/>\n"
 #~ "</id>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
 #~ "        <generator class=\"select\">\n"
@@ -4254,7 +2305,6 @@
 #~ "                <param name=\"key\">socialSecurityNumber</param>\n"
 #~ "        </generator>\n"
 #~ "</id>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<composite-id\n"
 #~ "        name=\"propertyName\"\n"
@@ -4283,7 +2333,6 @@
 #~ "\"column_name\"/>\n"
 #~ "        ......\n"
 #~ "</composite-id>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<composite-id>\n"
 #~ "        <key-property name=\"medicareNumber\"/>\n"
@@ -4294,7 +2343,6 @@
 #~ "        <key-property name=\"medicareNumber\"/>\n"
 #~ "        <key-property name=\"dependent\"/>\n"
 #~ "</composite-id>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<composite-id class=\"MedicareId\" mapped=\"true\">\n"
 #~ "        <key-property name=\"medicareNumber\"/>\n"
@@ -4305,7 +2353,6 @@
 #~ "        <key-property name=\"medicareNumber\"/>\n"
 #~ "        <key-property name=\"dependent\"/>\n"
 #~ "</composite-id>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<discriminator\n"
 #~ "        column=\"discriminator_column\"\n"
@@ -4322,7 +2369,6 @@
 #~ "        insert=\"true|false\"\n"
 #~ "        formula=\"arbitrary sql expression\"\n"
 #~ "/>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<discriminator\n"
 #~ "    formula=\"case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end"
@@ -4333,7 +2379,6 @@
 #~ "    formula=\"case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end"
 #~ "\"\n"
 #~ "    type=\"integer\"/>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<version\n"
 #~ "        column=\"version_column\"\n"
@@ -4356,7 +2401,6 @@
 #~ "        insert=\"true|false\"\n"
 #~ "        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
 #~ "/>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<timestamp\n"
 #~ "        column=\"timestamp_column\"\n"
@@ -4377,7 +2421,6 @@
 #~ "        generated=\"never|always\"\n"
 #~ "        node=\"element-name|@attribute-name|element/@attribute|.\"\n"
 #~ "/>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<property\n"
 #~ "        name=\"propertyName\"\n"
@@ -5113,23 +3156,18 @@
 #~ "        &lt;column .... /&gt;\n"
 #~ "        .....\n"
 #~ "&lt;/any&gt;"
-
 #~ msgid "string"
 #~ msgstr "string"
 
 #, fuzzy
 #~ msgid "class"
 #~ msgstr "子类(subclass)"
-
 #~ msgid "binary"
 #~ msgstr "binary"
-
 #~ msgid "text"
 #~ msgstr "text"
-
 #~ msgid "serializable"
 #~ msgstr "serializable"
-
 #~ msgid "clob, blob"
 #~ msgstr "clob, blob"
 
@@ -5547,3 +3585,4 @@
 #~ "&gt;\n"
 #~ "    &lt;/database-object&gt;\n"
 #~ "&lt;/hibernate-mapping&gt;"
+

Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/batch.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/batch.po	2009-12-10 21:31:45 UTC (rev 97707)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/batch.po	2009-12-11 00:50:05 UTC (rev 97708)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-12-03T00:15:25\n"
-"PO-Revision-Date: 2009-11-23 09:45+1000\n"
+"PO-Revision-Date: 2009-12-11 09:27+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -21,62 +21,33 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A naive approach to inserting 100,000 rows in the database using Hibernate "
-"might look like this:"
-msgstr ""
-"使用 Hibernate 将 100,000 条记录插入到数据库的一个很天真的做法可能是这样的:"
+msgid "A naive approach to inserting 100,000 rows in the database using Hibernate might look like this:"
+msgstr "使用 Hibernate 将 100,000 条记录插入到数据库的一个很天真的做法可能是这样的:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"This would fall over with an <literal>OutOfMemoryException</literal> "
-"somewhere around the 50,000th row. That is because Hibernate caches all the "
-"newly inserted <literal>Customer</literal> instances in the session-level "
-"cache. In this chapter we will show you how to avoid this problem."
-msgstr ""
-"这段程序大概运行到 50,000 条记录左右会失败并抛出<literal>内存溢出异常"
-"(OutOfMemoryException)</literal> 。这是因为 Hibernate 把所有新插入的"
-"<literal>客户(Customer)</literal>实例在 session 级别的缓存区进行了缓存的缘"
-"故。 "
+msgid "This would fall over with an <literal>OutOfMemoryException</literal> somewhere around the 50,000th row. That is because Hibernate caches all the newly inserted <literal>Customer</literal> instances in the session-level cache. In this chapter we will show you how to avoid this problem."
+msgstr "这段程序大概运行到 50,000 条记录左右会失败并抛出<literal>内存溢出异常(OutOfMemoryException)</literal> 。这是因为 Hibernate 把所有新插入的<literal>客户(Customer)</literal>实例在 session 级别的缓存区进行了缓存的缘故。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If you are undertaking batch processing you will need to enable the use of "
-"JDBC batching. This is absolutely essential if you want to achieve optimal "
-"performance. Set the JDBC batch size to a reasonable number (10-50, for "
-"example):"
-msgstr ""
-"我们会在本章告诉你如何避免此类问题。首先,如果你要执行批量处理并且想要达到一"
-"个理想的性能,那么使用 JDBC 的批量(batching)功能是至关重要。将 JDBC 的批量"
-"抓取数量(batch size)参数设置到一个合适值(比如,10 - 50 之间):"
+msgid "If you are undertaking batch processing you will need to enable the use of JDBC batching. This is absolutely essential if you want to achieve optimal performance. Set the JDBC batch size to a reasonable number (10-50, for example):"
+msgstr "我们会在本章告诉你如何避免此类问题。首先,如果你要执行批量处理并且想要达到一个理想的性能,那么使用 JDBC 的批量(batching)功能是至关重要。将 JDBC 的批量抓取数量(batch size)参数设置到一个合适值(比如,10 - 50 之间):"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate disables insert batching at the JDBC level transparently if you "
-"use an <literal>identity</literal> identifier generator."
-msgstr ""
-"注意,假若你使用了 <literal>identiy</literal> 标识符生成器,Hibernate 在 "
-"JDBC 级别透明的关闭插入语句的批量执行。 "
+msgid "Hibernate disables insert batching at the JDBC level transparently if you use an <literal>identity</literal> identifier generator."
+msgstr "注意,假若你使用了 <literal>identiy</literal> 标识符生成器,Hibernate 在 JDBC 级别透明的关闭插入语句的批量执行。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You can also do this kind of work in a process where interaction with the "
-"second-level cache is completely disabled:"
+msgid "You can also do this kind of work in a process where interaction with the second-level cache is completely disabled:"
 msgstr "你也可能想在执行批量处理时完全关闭二级缓存:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"However, this is not absolutely necessary, since we can explicitly set the "
-"<literal>CacheMode</literal> to disable interaction with the second-level "
-"cache."
-msgstr ""
-"但是,这不是绝对必须的,因为我们可以显式设置 <literal>CacheMode</literal> 来"
-"关闭与二级缓存的交互。"
+msgid "However, this is not absolutely necessary, since we can explicitly set the <literal>CacheMode</literal> to disable interaction with the second-level cache."
+msgstr "但是,这不是绝对必须的,因为我们可以显式设置 <literal>CacheMode</literal> 来关闭与二级缓存的交互。"
 
 #. Tag: title
 #, no-c-format
@@ -85,13 +56,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"When making new objects persistent <literal>flush()</literal> and then "
-"<literal>clear()</literal> the session regularly in order to control the "
-"size of the first-level cache."
-msgstr ""
-"如果要将很多对象持久化,你必须通过经常的调用 <literal>flush()</literal> 以及"
-"稍后调用  <literal>clear()</literal> 来控制第一级缓存的大小。 "
+msgid "When making new objects persistent <literal>flush()</literal> and then <literal>clear()</literal> the session regularly in order to control the size of the first-level cache."
+msgstr "如果要将很多对象持久化,你必须通过经常的调用 <literal>flush()</literal> 以及稍后调用  <literal>clear()</literal> 来控制第一级缓存的大小。 "
 
 #. Tag: title
 #, no-c-format
@@ -100,13 +66,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"For retrieving and updating data, the same ideas apply. In addition, you "
-"need to use <literal>scroll()</literal> to take advantage of server-side "
-"cursors for queries that return many rows of data."
-msgstr ""
-"此方法同样适用于检索和更新数据。此外,在进行会返回很多行数据的查询时,你需要"
-"使用 <literal>scroll()</literal> 方法以便充分利用服务器端游标所带来的好处。 "
+msgid "For retrieving and updating data, the same ideas apply. In addition, you need to use <literal>scroll()</literal> to take advantage of server-side cursors for queries that return many rows of data."
+msgstr "此方法同样适用于检索和更新数据。此外,在进行会返回很多行数据的查询时,你需要使用 <literal>scroll()</literal> 方法以便充分利用服务器端游标所带来的好处。 "
 
 #. Tag: title
 #, no-c-format
@@ -115,57 +76,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Alternatively, Hibernate provides a command-oriented API that can be used "
-"for streaming data to and from the database in the form of detached objects. "
-"A <literal>StatelessSession</literal> has no persistence context associated "
-"with it and does not provide many of the higher-level life cycle semantics. "
-"In particular, a stateless session does not implement a first-level cache "
-"nor interact with any second-level or query cache. It does not implement "
-"transactional write-behind or automatic dirty checking. Operations performed "
-"using a stateless session never cascade to associated instances. Collections "
-"are ignored by a stateless session. Operations performed via a stateless "
-"session bypass Hibernate's event model and interceptors. Due to the lack of "
-"a first-level cache, Stateless sessions are vulnerable to data aliasing "
-"effects. A stateless session is a lower-level abstraction that is much "
-"closer to the underlying JDBC."
-msgstr ""
-"作为选择,Hibernate 提供了基于命令的 API,可以用 detached object 的形式把数据"
-"以流的方法加入到数据库,或从数据库输出。<literal>StatelessSession</literal> "
-"没有持久化上下文,也不提供多少高层的生命周期语义。特别是,无状态 session 不实"
-"现第一级 cache,也不和第二级缓存,或者查询缓存交互。它不实现事务化写,也不实"
-"现脏数据检查。用 stateless session 进行的操作甚至不级联到关联实例。stateless "
-"session 忽略集合类(Collections)。通过 stateless session 进行的操作不触发 "
-"Hibernate 的事件模型和拦截器。无状态 session 对数据的混淆现象免疫,因为它没有"
-"第一级缓存。无状态 session 是低层的抽象,和低层 JDBC 相当接近。 "
+msgid "Alternatively, Hibernate provides a command-oriented API that can be used for streaming data to and from the database in the form of detached objects. A <literal>StatelessSession</literal> has no persistence context associated with it and does not provide many of the higher-level life cycle semantics. In particular, a stateless session does not implement a first-level cache nor interact with any second-level or query cache. It does not implement transactional write-behind or automatic dirty checking. Operations performed using a stateless session never cascade to associated instances. Collections are ignored by a stateless session. Operations performed via a stateless session bypass Hibernate's event model and interceptors. Due to the lack of a first-level cache, Stateless sessions are vulnerable to data aliasing effects. A stateless session is a lower-level abstraction that is much closer to the underlying JDBC."
+msgstr "作为选择,Hibernate 提供了基于命令的 API,可以用 detached object 的形式把数据以流的方法加入到数据库,或从数据库输出。<literal>StatelessSession</literal> 没有持久化上下文,也不提供多少高层的生命周期语义。特别是,无状态 session 不实现第一级 cache,也不和第二级缓存,或者查询缓存交互。它不实现事务化写,也不实现脏数据检查。用 stateless session 进行的操作甚至不级联到关联实例。stateless session 忽略集合类(Collections)。通过 stateless session 进行的操作不触发 Hibernate 的事件模型和拦截器。无状态 session 对数据的混淆现象免疫,因为它没有第一级缓存。无状态 session 是低层的抽象,和低层 JDBC 相当接近。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"In this code example, the <literal>Customer</literal> instances returned by "
-"the query are immediately detached. They are never associated with any "
-"persistence context."
-msgstr ""
-"注意在上面的例子中,查询返回的 <literal>Customer</literal> 实例立即被脱管"
-"(detach)。它们与任何持久化上下文都没有关系。 "
+msgid "In this code example, the <literal>Customer</literal> instances returned by the query are immediately detached. They are never associated with any persistence context."
+msgstr "注意在上面的例子中,查询返回的 <literal>Customer</literal> 实例立即被脱管(detach)。它们与任何持久化上下文都没有关系。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>insert(), update()</literal> and <literal>delete()</literal> "
-"operations defined by the <literal>StatelessSession</literal> interface are "
-"considered to be direct database row-level operations. They result in the "
-"immediate execution of a SQL <literal>INSERT, UPDATE</literal> or "
-"<literal>DELETE</literal> respectively. They have different semantics to the "
-"<literal>save(), saveOrUpdate()</literal> and <literal>delete()</literal> "
-"operations defined by the <literal>Session</literal> interface."
-msgstr ""
-"<literal>StatelessSession</literal> 接口定义的 <literal>insert(), update()</"
-"literal> 和 <literal>delete()</literal> 操作是直接的数据库行级别操作,其结果"
-"是立刻执行一条 <literal>INSERT, UPDATE</literal> 或 <literal>DELETE</"
-"literal> 语句。因此,它们的语义和 <literal>Session</literal> 接口定义的 "
-"<literal>save(), saveOrUpdate()</literal> 和<literal>delete()</literal> 操作"
-"有很大的不同。 "
+msgid "The <literal>insert(), update()</literal> and <literal>delete()</literal> operations defined by the <literal>StatelessSession</literal> interface are considered to be direct database row-level operations. They result in the immediate execution of a SQL <literal>INSERT, UPDATE</literal> or <literal>DELETE</literal> respectively. They have different semantics to the <literal>save(), saveOrUpdate()</literal> and <literal>delete()</literal> operations defined by the <literal>Session</literal> interface."
+msgstr "<literal>StatelessSession</literal> 接口定义的 <literal>insert(), update()</literal> 和 <literal>delete()</literal> 操作是直接的数据库行级别操作,其结果是立刻执行一条 <literal>INSERT, UPDATE</literal> 或 <literal>DELETE</literal> 语句。因此,它们的语义和 <literal>Session</literal> 接口定义的 <literal>save(), saveOrUpdate()</literal> 和<literal>delete()</literal> 操作有很大的不同。 "
 
 #. Tag: title
 #, no-c-format
@@ -173,36 +95,14 @@
 msgstr "DML(数据操作语言)风格的操作(DML-style operations)"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"As already discussed, automatic and transparent object/relational mapping is "
-"concerned with the management of the object state. The object state is "
-"available in memory. This means that manipulating data directly in the "
-"database (using the SQL <literal>Data Manipulation Language</literal> (DML) "
-"the statements: <literal>INSERT</literal>, <literal>UPDATE</literal>, "
-"<literal>DELETE</literal>) will not affect in-memory state. However, "
-"Hibernate provides methods for bulk SQL-style DML statement execution that "
-"is performed through the Hibernate Query Language (<xref linkend=\"queryhql"
-"\" />)."
-msgstr ""
-"就像已经讨论的那样,自动和透明的对象/关系映射(object/relational mapping)关"
-"注于管理对象的状态。这就意味着对象的状态存在于内存,因此直接操作(使用 SQL "
-"<literal>Data Manipulation Language</literal>(DML,数据操作语言)语句 :"
-"<literal>INSERT</literal> ,<literal>UPDATE</literal> 和 <literal>DELETE</"
-"literal>) 数据库中的数据将不会影响内存中的对象状态和对象数据。不过,"
-"Hibernate 提供通过 Hibernate 查询语言(<xref linkend=\"queryhql\"/>)来执行大"
-"批量 SQL 风格的 DML 语句的方法。"
+#, no-c-format
+msgid "As already discussed, automatic and transparent object/relational mapping is concerned with the management of the object state. The object state is available in memory. This means that manipulating data directly in the database (using the SQL <literal>Data Manipulation Language</literal> (DML) the statements: <literal>INSERT</literal>, <literal>UPDATE</literal>, <literal>DELETE</literal>) will not affect in-memory state. However, Hibernate provides methods for bulk SQL-style DML statement execution that is performed through the Hibernate Query Language (<xref linkend=\"queryhql\" />)."
+msgstr "就像已经讨论的那样,自动和透明的对象/关系映射(object/relational mapping)关注于管理对象的状态。这就意味着对象的状态存在于内存,因此直接操作(使用 SQL <literal>Data Manipulation Language</literal>(DML,数据操作语言)语句 :<literal>INSERT</literal> ,<literal>UPDATE</literal> 和 <literal>DELETE</literal>) 数据库中的数据将不会影响内存中的对象状态和对象数据。不过,Hibernate 提供通过 Hibernate 查询语言(<xref linkend=\"queryhql\"/>)来执行大批量 SQL 风格的 DML 语句的方法。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The pseudo-syntax for <literal>UPDATE</literal> and <literal>DELETE</"
-"literal> statements is: <literal>( UPDATE | DELETE ) FROM? EntityName (WHERE "
-"where_conditions)?</literal>."
-msgstr ""
-"<literal>UPDATE</literal> 和 <literal>DELETE</literal> 语句的伪语法为:"
-"<literal>( UPDATE | DELETE ) FROM? EntityName (WHERE where_conditions)?</"
-"literal>。"
+msgid "The pseudo-syntax for <literal>UPDATE</literal> and <literal>DELETE</literal> statements is: <literal>( UPDATE | DELETE ) FROM? EntityName (WHERE where_conditions)?</literal>."
+msgstr "<literal>UPDATE</literal> 和 <literal>DELETE</literal> 语句的伪语法为:<literal>( UPDATE | DELETE ) FROM? EntityName (WHERE where_conditions)?</literal>。"
 
 #. Tag: para
 #, no-c-format
@@ -216,26 +116,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"There can only be a single entity named in the from-clause. It can, however, "
-"be aliased. If the entity name is aliased, then any property references must "
-"be qualified using that alias. If the entity name is not aliased, then it is "
-"illegal for any property references to be qualified."
-msgstr ""
-"在 FROM 子句(from-clause)中只能有一个实体名,它可以是别名。如果实体名是别"
-"名,那么任何被引用的属性都必须加上此别名的前缀;如果不是别名,那么任何有前缀"
-"的属性引用都是非法的。 "
+msgid "There can only be a single entity named in the from-clause. It can, however, be aliased. If the entity name is aliased, then any property references must be qualified using that alias. If the entity name is not aliased, then it is illegal for any property references to be qualified."
+msgstr "在 FROM 子句(from-clause)中只能有一个实体名,它可以是别名。如果实体名是别名,那么任何被引用的属性都必须加上此别名的前缀;如果不是别名,那么任何有前缀的属性引用都是非法的。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"No <xref linkend=\"queryhql-joins-forms\" />, either implicit or explicit, "
-"can be specified in a bulk HQL query. Sub-queries can be used in the where-"
-"clause, where the subqueries themselves may contain joins."
-msgstr ""
-"不能在大批量 HQL 语句中使用 <xref linkend=\"queryhql-joins-forms\"/> 连接(显"
-"式或者隐式的都不行)。不过在 WHERE 子句中可以使用子查询。可以在 where 子句中"
-"使用子查询,子查询本身可以包含 join。"
+#, no-c-format
+msgid "No <xref linkend=\"queryhql-joins-forms\" />, either implicit or explicit, can be specified in a bulk HQL query. Sub-queries can be used in the where-clause, where the subqueries themselves may contain joins."
+msgstr "不能在大批量 HQL 语句中使用 <xref linkend=\"queryhql-joins-forms\"/> 连接(显式或者隐式的都不行)。不过在 WHERE 子句中可以使用子查询。可以在 where 子句中使用子查询,子查询本身可以包含 join。 "
 
 #. Tag: para
 #, no-c-format
@@ -244,181 +131,62 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"As an example, to execute an HQL <literal>UPDATE</literal>, use the "
-"<literal>Query.executeUpdate()</literal> method. The method is named for "
-"those familiar with JDBC's <literal>PreparedStatement.executeUpdate()</"
-"literal>:"
-msgstr ""
-"举个例子,使用 <literal>Query.executeUpdate()</literal> 方法执行一个 HQL "
-"<literal>UPDATE</literal>语句(方法命名是来源于 JDBC 的 "
-"<literal>PreparedStatement.executeUpdate()</literal>): "
+msgid "As an example, to execute an HQL <literal>UPDATE</literal>, use the <literal>Query.executeUpdate()</literal> method. The method is named for those familiar with JDBC's <literal>PreparedStatement.executeUpdate()</literal>:"
+msgstr "举个例子,使用 <literal>Query.executeUpdate()</literal> 方法执行一个 HQL <literal>UPDATE</literal>语句(方法命名是来源于 JDBC 的 <literal>PreparedStatement.executeUpdate()</literal>): "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"In keeping with the EJB3 specification, HQL <literal>UPDATE</literal> "
-"statements, by default, do not effect the <xref linkend=\"mapping-"
-"declaration-version\" /> or the <xref linkend=\"mapping-declaration-timestamp"
-"\" /> property values for the affected entities. However, you can force "
-"Hibernate to reset the <literal>version</literal> or <literal>timestamp</"
-"literal> property values through the use of a <literal>versioned update</"
-"literal>. This is achieved by adding the <literal>VERSIONED</literal> "
-"keyword after the <literal>UPDATE</literal> keyword."
-msgstr ""
-"HQL <literal>UPDATE</literal> 语句,默认不会影响更新实体的 <xref linkend="
-"\"mapping-declaration-version\"/> 或者 <xref linkend=\"mapping-declaration-"
-"timestamp\"/> 属性值。这和 EJB3 规范是一致的。但是,通过使用 "
-"<literal>versioned update</literal>,你可以强制 Hibernate 正确的重置"
-"<literal>version</literal> 或者 <literal>timestamp</literal> 属性值。这通过"
-"在 <literal>UPDATE</literal> 关键字后面增加 <literal>VERSIONED</literal> 关键"
-"字来实现的。"
+#, no-c-format
+msgid "In keeping with the EJB3 specification, HQL <literal>UPDATE</literal> statements, by default, do not effect the <xref linkend=\"mapping-declaration-version\" /> or the <xref linkend=\"mapping-declaration-timestamp\" /> property values for the affected entities. However, you can force Hibernate to reset the <literal>version</literal> or <literal>timestamp</literal> property values through the use of a <literal>versioned update</literal>. This is achieved by adding the <literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> keyword."
+msgstr "HQL <literal>UPDATE</literal> 语句,默认不会影响更新实体的 <xref linkend=\"mapping-declaration-version\"/> 或者 <xref linkend=\"mapping-declaration-timestamp\"/> 属性值。这和 EJB3 规范是一致的。但是,通过使用 <literal>versioned update</literal>,你可以强制 Hibernate 正确的重置<literal>version</literal> 或者 <literal>timestamp</literal> 属性值。这通过在 <literal>UPDATE</literal> 关键字后面增加 <literal>VERSIONED</literal> 关键字来实现的。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Custom version types, <literal>org.hibernate.usertype.UserVersionType</"
-"literal>, are not allowed in conjunction with a <literal>update versioned</"
-"literal> statement."
-msgstr ""
-"注意,自定义的版本类型(<literal>org.hibernate.usertype.UserVersionType</"
-"literal>)不允许和 <literal>update versioned</literal> 语句联用。 "
+msgid "Custom version types, <literal>org.hibernate.usertype.UserVersionType</literal>, are not allowed in conjunction with a <literal>update versioned</literal> statement."
+msgstr "注意,自定义的版本类型(<literal>org.hibernate.usertype.UserVersionType</literal>)不允许和 <literal>update versioned</literal> 语句联用。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"To execute an HQL <literal>DELETE</literal>, use the same <literal>Query."
-"executeUpdate()</literal> method:"
-msgstr ""
-"执行一个 HQL <literal>DELETE</literal>,同样使用 <literal>Query.executeUpdate"
-"()</literal> 方法:"
+msgid "To execute an HQL <literal>DELETE</literal>, use the same <literal>Query.executeUpdate()</literal> method:"
+msgstr "执行一个 HQL <literal>DELETE</literal>,同样使用 <literal>Query.executeUpdate()</literal> 方法:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>int</literal> value returned by the <literal>Query.executeUpdate"
-"()</literal> method indicates the number of entities effected by the "
-"operation. This may or may not correlate to the number of rows effected in "
-"the database. An HQL bulk operation might result in multiple actual SQL "
-"statements being executed (for joined-subclass, for example). The returned "
-"number indicates the number of actual entities affected by the statement. "
-"Going back to the example of joined-subclass, a delete against one of the "
-"subclasses may actually result in deletes against not just the table to "
-"which that subclass is mapped, but also the \"root\" table and potentially "
-"joined-subclass tables further down the inheritance hierarchy."
-msgstr ""
-"由 <literal>Query.executeUpdate()</literal> 方法返回的<literal>整型</literal>"
-"值表明了受此操作影响的记录数量。注意这个数值可能与数据库中被(最后一条 SQL 语"
-"句)影响了的“行”数有关,也可能没有。一个大批量 HQL 操作可能导致多条实际的SQL"
-"语句被执行,举个例子,对 joined-subclass 映射方式的类进行的此类操作。这个返回"
-"值代表了实际被语句影响了的记录数量。在那个 joined-subclass 的例子中, 对一个"
-"子类的删除实际上可能不仅仅会删除子类映射到的表而且会影响“根”表,还有可能影响"
-"与之有继承关系的 joined-subclass 映射方式的子类的表。 "
+msgid "The <literal>int</literal> value returned by the <literal>Query.executeUpdate()</literal> method indicates the number of entities effected by the operation. This may or may not correlate to the number of rows effected in the database. An HQL bulk operation might result in multiple actual SQL statements being executed (for joined-subclass, for example). The returned number indicates the number of actual entities affected by the statement. Going back to the example of joined-subclass, a delete against one of the subclasses may actually result in deletes against not just the table to which that subclass is mapped, but also the \"root\" table and potentially joined-subclass tables further down the inheritance hierarchy."
+msgstr "由 <literal>Query.executeUpdate()</literal> 方法返回的<literal>整型</literal>值表明了受此操作影响的记录数量。注意这个数值可能与数据库中被(最后一条 SQL 语句)影响了的“行”数有关,也可能没有。一个大批量 HQL 操作可能导致多条实际的SQL语句被执行,举个例子,对 joined-subclass 映射方式的类进行的此类操作。这个返回值代表了实际被语句影响了的记录数量。在那个 joined-subclass 的例子中, 对一个子类的删除实际上可能不仅仅会删除子类映射到的表而且会影响“根”表,还有可能影响与之有继承关系的 joined-subclass 映射方式的子类的表。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The pseudo-syntax for <literal>INSERT</literal> statements is: "
-"<literal>INSERT INTO EntityName properties_list select_statement</literal>. "
-"Some points to note:"
-msgstr ""
-"<literal>INSERT</literal> 语句的伪码是:<literal>INSERT INTO EntityName "
-"properties_list select_statement</literal>。要注意的是:"
+msgid "The pseudo-syntax for <literal>INSERT</literal> statements is: <literal>INSERT INTO EntityName properties_list select_statement</literal>. Some points to note:"
+msgstr "<literal>INSERT</literal> 语句的伪码是:<literal>INSERT INTO EntityName properties_list select_statement</literal>。要注意的是:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Only the INSERT INTO ... SELECT ... form is supported; not the INSERT "
-"INTO ... VALUES ... form."
-msgstr ""
-"只支持 INSERT INTO ... SELECT ... 形式,不支持 INSERT INTO ... VALUES ... 形"
-"式。"
+msgid "Only the INSERT INTO ... SELECT ... form is supported; not the INSERT INTO ... VALUES ... form."
+msgstr "只支持 INSERT INTO ... SELECT ... 形式,不支持 INSERT INTO ... VALUES ... 形式。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The properties_list is analogous to the <literal>column specification</"
-"literal> in the SQL <literal>INSERT</literal> statement. For entities "
-"involved in mapped inheritance, only properties directly defined on that "
-"given class-level can be used in the properties_list. Superclass properties "
-"are not allowed and subclass properties do not make sense. In other words, "
-"<literal>INSERT</literal> statements are inherently non-polymorphic."
-msgstr ""
-"properties_list 和 SQL <literal>INSERT</literal> 语句中的<literal>字段定义"
-"(column speficiation)</literal>类似。对参与继承树映射的实体而言,只有直接定"
-"义在给定的类级别的属性才能直接在 properties_list 中使用。超类的属性不被支持;"
-"子类的属性无意义。换句话说,<literal>INSERT</literal> 天生不支持多态性。"
+msgid "The properties_list is analogous to the <literal>column specification</literal> in the SQL <literal>INSERT</literal> statement. For entities involved in mapped inheritance, only properties directly defined on that given class-level can be used in the properties_list. Superclass properties are not allowed and subclass properties do not make sense. In other words, <literal>INSERT</literal> statements are inherently non-polymorphic."
+msgstr "properties_list 和 SQL <literal>INSERT</literal> 语句中的<literal>字段定义(column speficiation)</literal>类似。对参与继承树映射的实体而言,只有直接定义在给定的类级别的属性才能直接在 properties_list 中使用。超类的属性不被支持;子类的属性无意义。换句话说,<literal>INSERT</literal> 天生不支持多态性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"select_statement can be any valid HQL select query, with the caveat that the "
-"return types must match the types expected by the insert. Currently, this is "
-"checked during query compilation rather than allowing the check to relegate "
-"to the database. This might, however, cause problems between Hibernate "
-"<literal>Type</literal>s which are <emphasis>equivalent</emphasis> as "
-"opposed to <emphasis>equal</emphasis>. This might cause issues with "
-"mismatches between a property defined as a <literal>org.hibernate.type."
-"DateType</literal> and a property defined as a <literal>org.hibernate.type."
-"TimestampType</literal>, even though the database might not make a "
-"distinction or might be able to handle the conversion."
-msgstr ""
-"select_statement 可以是任何合法的 HQL 选择查询,不过要保证返回类型必须和要插"
-"入的类型完全匹配。目前,这一检查是在查询编译的时候进行的,而不是把它交给数据"
-"库。注意,在Hibernate<literal>Type</literal> 间如果只是<emphasis>等价"
-"(equivalent)</emphasis>而非<emphasis>相等(equal)</emphasis>,会导致问题。"
-"定义为 <literal>org.hibernate.type.DateType</literal> 和 <literal>org."
-"hibernate.type.TimestampType</literal> 的两个属性可能会产生类型不匹配错误,虽"
-"然数据库级可能不加区分或者可以处理这种转换。 "
+msgid "select_statement can be any valid HQL select query, with the caveat that the return types must match the types expected by the insert. Currently, this is checked during query compilation rather than allowing the check to relegate to the database. This might, however, cause problems between Hibernate <literal>Type</literal>s which are <emphasis>equivalent</emphasis> as opposed to <emphasis>equal</emphasis>. This might cause issues with mismatches between a property defined as a <literal>org.hibernate.type.DateType</literal> and a property defined as a <literal>org.hibernate.type.TimestampType</literal>, even though the database might not make a distinction or might be able to handle the conversion."
+msgstr "select_statement 可以是任何合法的 HQL 选择查询,不过要保证返回类型必须和要插入的类型完全匹配。目前,这一检查是在查询编译的时候进行的,而不是把它交给数据库。注意,在Hibernate<literal>Type</literal> 间如果只是<emphasis>等价(equivalent)</emphasis>而非<emphasis>相等(equal)</emphasis>,会导致问题。定义为 <literal>org.hibernate.type.DateType</literal> 和 <literal>org.hibernate.type.TimestampType</literal> 的两个属性可能会产生类型不匹配错误,虽然数据库级可能不加区分或者可以处理这种转换。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"For the id property, the insert statement gives you two options. You can "
-"either explicitly specify the id property in the properties_list, in which "
-"case its value is taken from the corresponding select expression, or omit it "
-"from the properties_list, in which case a generated value is used. This "
-"latter option is only available when using id generators that operate in the "
-"database; attempting to use this option with any \"in memory\" type "
-"generators will cause an exception during parsing. For the purposes of this "
-"discussion, in-database generators are considered to be <literal>org."
-"hibernate.id.SequenceGenerator</literal> (and its subclasses) and any "
-"implementers of <literal>org.hibernate.id.PostInsertIdentifierGenerator</"
-"literal>. The most notable exception here is <literal>org.hibernate.id."
-"TableHiLoGenerator</literal>, which cannot be used because it does not "
-"expose a selectable way to get its values."
-msgstr ""
-"对 id 属性来说,insert 语句给你两个选择。你可以明确地在 properties_list 表中"
-"指定 id 属性(这样它的值是从对应的 select 表达式中获得),或者在 "
-"properties_list 中省略它(此时使用生成指)。后一种选择只有当使用在数据库中生"
-"成值的 id 产生器时才能使用;如果是“内存”中计算的类型生成器,在解析时会抛出一"
-"个异常。注意,为了说明这一问题,数据库产生值的生成器是 <literal>org."
-"hibernate.id.SequenceGenerator</literal>(和它的子类),以及任何 "
-"<literal>org.hibernate.id.PostInsertIdentifierGenerator</literal> 接口的实"
-"现。这儿最值得注意的意外是 <literal>org.hibernate.id.TableHiLoGenerator</"
-"literal>,它不能在此使用,因为它没有得到其值的途径。 "
+msgid "For the id property, the insert statement gives you two options. You can either explicitly specify the id property in the properties_list, in which case its value is taken from the corresponding select expression, or omit it from the properties_list, in which case a generated value is used. This latter option is only available when using id generators that operate in the database; attempting to use this option with any \"in memory\" type generators will cause an exception during parsing. For the purposes of this discussion, in-database generators are considered to be <literal>org.hibernate.id.SequenceGenerator</literal> (and its subclasses) and any implementers of <literal>org.hibernate.id.PostInsertIdentifierGenerator</literal>. The most notable exception here is <literal>org.hibernate.id.TableHiLoGenerator</literal>, which cannot be used because it does not expose a selectable way to get its values."
+msgstr "对 id 属性来说,insert 语句给你两个选择。你可以明确地在 properties_list 表中指定 id 属性(这样它的值是从对应的 select 表达式中获得),或者在 properties_list 中省略它(此时使用生成指)。后一种选择只有当使用在数据库中生成值的 id 产生器时才能使用;如果是“内存”中计算的类型生成器,在解析时会抛出一个异常。注意,为了说明这一问题,数据库产生值的生成器是 <literal>org.hibernate.id.SequenceGenerator</literal>(和它的子类),以及任何 <literal>org.hibernate.id.PostInsertIdentifierGenerator</literal> 接口的实现。这儿最值得注意的意外是 <literal>org.hibernate.id.TableHiLoGenerator</literal>,它不能在此使用,因为它没有得到其值的途径。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"For properties mapped as either <literal>version</literal> or "
-"<literal>timestamp</literal>, the insert statement gives you two options. "
-"You can either specify the property in the properties_list, in which case "
-"its value is taken from the corresponding select expressions, or omit it "
-"from the properties_list, in which case the <literal>seed value</literal> "
-"defined by the <literal>org.hibernate.type.VersionType</literal> is used."
-msgstr ""
-"对映射为 <literal>version</literal> 或 <literal>timestamp</literal> 的属性来"
-"说,insert 语句也给你两个选择,你可以在 properties_list 表中指定(此时其值从"
-"对应的 select 表达式中获得),或者在 properties_list 中省略它(此时,使用在 "
-"<literal>org.hibernate.type.VersionType</literal> 中定义的 <literal>seed "
-"value(种子值)</literal>)。"
+msgid "For properties mapped as either <literal>version</literal> or <literal>timestamp</literal>, the insert statement gives you two options. You can either specify the property in the properties_list, in which case its value is taken from the corresponding select expressions, or omit it from the properties_list, in which case the <literal>seed value</literal> defined by the <literal>org.hibernate.type.VersionType</literal> is used."
+msgstr "对映射为 <literal>version</literal> 或 <literal>timestamp</literal> 的属性来说,insert 语句也给你两个选择,你可以在 properties_list 表中指定(此时其值从对应的 select 表达式中获得),或者在 properties_list 中省略它(此时,使用在 <literal>org.hibernate.type.VersionType</literal> 中定义的 <literal>seed value(种子值)</literal>)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The following is an example of an HQL <literal>INSERT</literal> statement "
-"execution:"
+msgid "The following is an example of an HQL <literal>INSERT</literal> statement execution:"
 msgstr "下面是一个执行 HQL <literal>INSERT</literal> 语句的例子:"
 
 #~ msgid ""
@@ -439,13 +207,10 @@
 #~ "}\n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
-
 #~ msgid "<![CDATA[hibernate.jdbc.batch_size 20]]>"
 #~ msgstr "<![CDATA[hibernate.jdbc.batch_size 20]]>"
-
 #~ msgid "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
 #~ msgstr "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
-
 #~ msgid ""
 #~ "<![CDATA[Session session = sessionFactory.openSession();\n"
 #~ "Transaction tx = session.beginTransaction();\n"
@@ -478,7 +243,6 @@
 #~ "   \n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[Session session = sessionFactory.openSession();\n"
 #~ "Transaction tx = session.beginTransaction();\n"
@@ -519,7 +283,6 @@
 #~ "   \n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[StatelessSession session = sessionFactory.openStatelessSession"
 #~ "();\n"
@@ -550,7 +313,6 @@
 #~ "   \n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[Session session = sessionFactory.openSession();\n"
 #~ "Transaction tx = session.beginTransaction();\n"
@@ -579,7 +341,6 @@
 #~ "        .executeUpdate();\n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[Session session = sessionFactory.openSession();\n"
 #~ "Transaction tx = session.beginTransaction();\n"
@@ -602,7 +363,6 @@
 #~ "        .executeUpdate();\n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[Session session = sessionFactory.openSession();\n"
 #~ "Transaction tx = session.beginTransaction();\n"
@@ -625,7 +385,6 @@
 #~ "        .executeUpdate();\n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[Session session = sessionFactory.openSession();\n"
 #~ "Transaction tx = session.beginTransaction();\n"
@@ -646,3 +405,4 @@
 #~ "        .executeUpdate();\n"
 #~ "tx.commit();\n"
 #~ "session.close();]]>"
+

Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/component_mapping.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/component_mapping.po	2009-12-10 21:31:45 UTC (rev 97707)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/component_mapping.po	2009-12-11 00:50:05 UTC (rev 97708)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-12-03T00:15:26\n"
-"PO-Revision-Date: 2009-11-23 11:08+1000\n"
+"PO-Revision-Date: 2009-12-11 09:28+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -21,12 +21,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The notion of a <emphasis>component</emphasis> is re-used in several "
-"different contexts and purposes throughout Hibernate."
-msgstr ""
-"<emphasis>组件(Component)</emphasis>这个概念在 Hibernate 中几处不同的地方为"
-"了不同的目的被重复使用。"
+msgid "The notion of a <emphasis>component</emphasis> is re-used in several different contexts and purposes throughout Hibernate."
+msgstr "<emphasis>组件(Component)</emphasis>这个概念在 Hibernate 中几处不同的地方为了不同的目的被重复使用。"
 
 #. Tag: title
 #, no-c-format
@@ -35,29 +31,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A component is a contained object that is persisted as a value type and not "
-"an entity reference. The term \"component\" refers to the object-oriented "
-"notion of composition and not to architecture-level components. For example, "
-"you can model a person like this:"
-msgstr ""
-"组件(Component)是一个被包含的对象,在持久化的过程中,它被当作值类型,而并非"
-"一个实体的引用。在这篇文档中,组件这一术语指的是面向对象的合成概念(而并不是"
-"系统构架层次上的组件的概念)。举个例子,你对人(Person)这个概念可以像下面这"
-"样来建模: "
+msgid "A component is a contained object that is persisted as a value type and not an entity reference. The term \"component\" refers to the object-oriented notion of composition and not to architecture-level components. For example, you can model a person like this:"
+msgstr "组件(Component)是一个被包含的对象,在持久化的过程中,它被当作值类型,而并非一个实体的引用。在这篇文档中,组件这一术语指的是面向对象的合成概念(而并不是系统构架层次上的组件的概念)。举个例子,你对人(Person)这个概念可以像下面这样来建模: "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Now <literal>Name</literal> can be persisted as a component of "
-"<literal>Person</literal>. <literal>Name</literal> defines getter and setter "
-"methods for its persistent properties, but it does not need to declare any "
-"interfaces or identifier properties."
-msgstr ""
-"在持久化的过程中,<literal>姓名(Name)</literal>可以作为<literal>人"
-"(Person)</literal>的一个组件。需要注意的是:你应该为<literal>姓名</literal>"
-"的持久化属性定义 getter 和 setter 方法,但是你不需要实现任何的接口或申明标识"
-"符字段。  "
+msgid "Now <literal>Name</literal> can be persisted as a component of <literal>Person</literal>. <literal>Name</literal> defines getter and setter methods for its persistent properties, but it does not need to declare any interfaces or identifier properties."
+msgstr "在持久化的过程中,<literal>姓名(Name)</literal>可以作为<literal>人(Person)</literal>的一个组件。需要注意的是:你应该为<literal>姓名</literal>的持久化属性定义 getter 和 setter 方法,但是你不需要实现任何的接口或申明标识符字段。  "
 
 #. Tag: para
 #, no-c-format
@@ -66,54 +46,23 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The person table would have the columns <literal>pid</literal>, "
-"<literal>birthday</literal>, <literal>initial</literal>, <literal>first</"
-"literal> and <literal>last</literal>."
-msgstr ""
-"人员(Person)表中将包括 <literal>pid</literal>,<literal>birthday</"
-"literal>,<literal>initial</literal>,<literal>first</literal>和 "
-"<literal>last</literal> 等字段。"
+msgid "The person table would have the columns <literal>pid</literal>, <literal>birthday</literal>, <literal>initial</literal>, <literal>first</literal> and <literal>last</literal>."
+msgstr "人员(Person)表中将包括 <literal>pid</literal>,<literal>birthday</literal>,<literal>initial</literal>,<literal>first</literal>和 <literal>last</literal> 等字段。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Like value types, components do not support shared references. In other "
-"words, two persons could have the same name, but the two person objects "
-"would contain two independent name objects that were only \"the same\" by "
-"value. The null value semantics of a component are <emphasis>ad hoc</"
-"emphasis>. When reloading the containing object, Hibernate will assume that "
-"if all component columns are null, then the entire component is null. This "
-"is suitable for most purposes."
-msgstr ""
-"就像所有的值类型一样,组件不支持共享引用。换句话说,两个人可能重名,但是两个 "
-"Person 对象应该包含两个独立的 Name 对象,只不过这两个 Name 对象具有“同样”的"
-"值。组件的值可以为空,其定义如下。 每当 Hibernate 重新加载一个包含组件的对"
-"象,如果该组件的所有字段为空,Hibernate 将假定整个组件为空。在大多数情况下,"
-"这样假定应该是没有问题的。"
+msgid "Like value types, components do not support shared references. In other words, two persons could have the same name, but the two person objects would contain two independent name objects that were only \"the same\" by value. The null value semantics of a component are <emphasis>ad hoc</emphasis>. When reloading the containing object, Hibernate will assume that if all component columns are null, then the entire component is null. This is suitable for most purposes."
+msgstr "就像所有的值类型一样,组件不支持共享引用。换句话说,两个人可能重名,但是两个 Person 对象应该包含两个独立的 Name 对象,只不过这两个 Name 对象具有“同样”的值。组件的值可以为空,其定义如下。 每当 Hibernate 重新加载一个包含组件的对象,如果该组件的所有字段为空,Hibernate 将假定整个组件为空。在大多数情况下,这样假定应该是没有问题的。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The properties of a component can be of any Hibernate type (collections, "
-"many-to-one associations, other components, etc). Nested components should "
-"<emphasis>not</emphasis> be considered an exotic usage. Hibernate is "
-"intended to support a fine-grained object model."
-msgstr ""
-"组件的属性可以是任意一种 Hibernate 类型(包括集合,多对多关联,以及其它组件等"
-"等)。嵌套组件不应该被当作一种特殊的应用(Nested components should not be "
-"considered an exotic usage)。Hibernate 倾向于支持细颗粒度的(fine-grained)"
-"对象模型。"
+msgid "The properties of a component can be of any Hibernate type (collections, many-to-one associations, other components, etc). Nested components should <emphasis>not</emphasis> be considered an exotic usage. Hibernate is intended to support a fine-grained object model."
+msgstr "组件的属性可以是任意一种 Hibernate 类型(包括集合,多对多关联,以及其它组件等等)。嵌套组件不应该被当作一种特殊的应用(Nested components should not be considered an exotic usage)。Hibernate 倾向于支持细颗粒度的(fine-grained)对象模型。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>&lt;component&gt;</literal> element allows a <literal>&lt;"
-"parent&gt;</literal> subelement that maps a property of the component class "
-"as a reference back to the containing entity."
-msgstr ""
-"<literal>&lt;component&gt;</literal> 元素允许加入一个 <literal>&lt;parent&gt;"
-"</literal> 子元素,在组件类内部就可以有一个指向其容器的实体的反向引用。"
+msgid "The <literal>&lt;component&gt;</literal> element allows a <literal>&lt;parent&gt;</literal> subelement that maps a property of the component class as a reference back to the containing entity."
+msgstr "<literal>&lt;component&gt;</literal> 元素允许加入一个 <literal>&lt;parent&gt;</literal> 子元素,在组件类内部就可以有一个指向其容器的实体的反向引用。"
 
 #. Tag: title
 #, no-c-format
@@ -121,94 +70,34 @@
 msgstr "在集合中出现的依赖对象(Collections of dependent objects)"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Collections of components are supported (e.g. an array of type "
-"<literal>Name</literal>). Declare your component collection by replacing the "
-"<literal>&lt;element&gt;</literal> tag with a <literal>&lt;composite-"
-"element&gt;</literal> tag:"
-msgstr ""
-"Hibernate 支持组件的集合(例如:一个元素是姓名(Name)这种类型的数组)。你可"
-"以使用 <literal>&lt;composite-element&gt;</literal> 标签替代 <literal>&lt;"
-"element&gt;</literal> 标签来定义你的组件集合。"
+#, no-c-format
+msgid "Collections of components are supported (e.g. an array of type <literal>Name</literal>). Declare your component collection by replacing the <literal>&lt;element&gt;</literal> tag with a <literal>&lt;composite-element&gt;</literal> tag:"
+msgstr "Hibernate 支持组件的集合(例如:一个元素是姓名(Name)这种类型的数组)。你可以使用 <literal>&lt;composite-element&gt;</literal> 标签替代 <literal>&lt;element&gt;</literal> 标签来定义你的组件集合:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If you define a <literal>Set</literal> of composite elements, it is "
-"important to implement <literal>equals()</literal> and <literal>hashCode()</"
-"literal> correctly."
-msgstr ""
-"注意,如果你定义的 Set 包含组合元素(composite-element),正确地实现 "
-"<literal>equals()</literal> 和 <literal>hashCode()</literal> 是非常重要的。 "
+msgid "If you define a <literal>Set</literal> of composite elements, it is important to implement <literal>equals()</literal> and <literal>hashCode()</literal> correctly."
+msgstr "注意,如果你定义的 Set 包含组合元素(composite-element),正确地实现 <literal>equals()</literal> 和 <literal>hashCode()</literal> 是非常重要的。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Composite elements can contain components but not collections. If your "
-"composite element contains components, use the <literal>&lt;nested-composite-"
-"element&gt;</literal> tag. This case is a collection of components which "
-"themselves have components. You may want to consider if a one-to-many "
-"association is more appropriate. Remodel the composite element as an entity, "
-"but be aware that even though the Java model is the same, the relational "
-"model and persistence semantics are still slightly different."
-msgstr ""
-"组合元素可以包含组件,但是不能包含集合。如果你的组合元素自身包含组件,你必须"
-"使用 <literal>&lt;nested-composite-element&gt;</literal> 标签。这是一个相当特"
-"殊的案例 — 在一个组件的集合里,那些组件本身又可以包含其他的组件。这个时候你就"
-"应该考虑一下使用 one-to-many 关联是否会更恰当。尝试对这个组合元素重新建模为一"
-"个实体 — 但是需要注意的是,虽然 Java 模型和重新建模前是一样的,关系模型和持久"
-"性语义会有细微的变化。"
+#, no-c-format
+msgid "Composite elements can contain components but not collections. If your composite element contains components, use the <literal>&lt;nested-composite-element&gt;</literal> tag. This case is a collection of components which themselves have components. You may want to consider if a one-to-many association is more appropriate. Remodel the composite element as an entity, but be aware that even though the Java model is the same, the relational model and persistence semantics are still slightly different."
+msgstr "组合元素可以包含组件,但是不能包含集合。如果你的组合元素自身包含组件,你必须使用 <literal>&lt;nested-composite-element&gt;</literal> 标签。这是一个相当特殊的案例 — 在一个组件的集合里,那些组件本身又可以包含其他的组件。这个时候你就应该考虑一下使用 one-to-many 关联是否会更恰当。尝试对这个组合元素重新建模为一个实体 — 但是需要注意的是,虽然 Java 模型和重新建模前是一样的,关系模型和持久性语义会有细微的变化。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"A composite element mapping does not support null-able properties if you are "
-"using a <literal>&lt;set&gt;</literal>. There is no separate primary key "
-"column in the composite element table. Hibernate uses each column's value to "
-"identify a record when deleting objects, which is not possible with null "
-"values. You have to either use only not-null properties in a composite-"
-"element or choose a <literal>&lt;list&gt;</literal>, <literal>&lt;map&gt;</"
-"literal>, <literal>&lt;bag&gt;</literal> or <literal>&lt;idbag&gt;</literal>."
-msgstr ""
-"请注意如果你使用 <literal>&lt;set&gt;</literal> 标签,一个组合元素的映射不支"
-"持可能为空的属性. 当删除对象时,Hibernate 必须使用每一个字段的值来确定一条记"
-"录(在组合元素表中,没有单独的关键字段),如果有为 null 的字段,这样做就不可"
-"能了。你必须作出一个选择,要么在组合元素中使用不能为空的属性,要么选择使用 "
-"<literal>&lt;list&gt;</literal>,<literal>&lt;map&gt;</literal>,"
-"<literal>&lt;bag&gt;</literal> 或者 <literal>&lt;idbag&gt;</literal> 而不是 "
-"<literal>&lt;set&gt;</literal>。"
+#, no-c-format
+msgid "A composite element mapping does not support null-able properties if you are using a <literal>&lt;set&gt;</literal>. There is no separate primary key column in the composite element table. Hibernate uses each column's value to identify a record when deleting objects, which is not possible with null values. You have to either use only not-null properties in a composite-element or choose a <literal>&lt;list&gt;</literal>, <literal>&lt;map&gt;</literal>, <literal>&lt;bag&gt;</literal> or <literal>&lt;idbag&gt;</literal>."
+msgstr "请注意如果你使用 <literal>&lt;set&gt;</literal> 标签,一个组合元素的映射不支持可能为空的属性. 当删除对象时,Hibernate 必须使用每一个字段的值来确定一条记录(在组合元素表中,没有单独的关键字段),如果有为 null 的字段,这样做就不可能了。你必须作出一个选择,要么在组合元素中使用不能为空的属性,要么选择使用 <literal>&lt;list&gt;</literal>,<literal>&lt;map&gt;</literal>,<literal>&lt;bag&gt;</literal> 或者 <literal>&lt;idbag&gt;</literal> 而不是 <literal>&lt;set&gt;</literal>。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"A special case of a composite element is a composite element with a nested "
-"<literal>&lt;many-to-one&gt;</literal> element. This mapping allows you to "
-"map extra columns of a many-to-many association table to the composite "
-"element class. The following is a many-to-many association from "
-"<literal>Order</literal> to <literal>Item</literal>, where "
-"<literal>purchaseDate</literal>, <literal>price</literal> and "
-"<literal>quantity</literal> are properties of the association:"
-msgstr ""
-"组合元素有个特别的用法是它可以包含一个<literal>&lt;many-to-one&gt;</literal>"
-"元素。类似这样的映射允许你将一个 many-to-many 关联表的额外字段映射为组合元素"
-"类。接下来的的例子是从 <literal>Order</literal> 到 <literal>Item</literal> 的"
-"一个多对多的关联关系,关联属性是 <literal>purchaseDate</literal>,"
-"<literal>price</literal> 和 <literal>quantity</literal> 。"
+#, no-c-format
+msgid "A special case of a composite element is a composite element with a nested <literal>&lt;many-to-one&gt;</literal> element. This mapping allows you to map extra columns of a many-to-many association table to the composite element class. The following is a many-to-many association from <literal>Order</literal> to <literal>Item</literal>, where <literal>purchaseDate</literal>, <literal>price</literal> and <literal>quantity</literal> are properties of the association:"
+msgstr "组合元素有个特别的用法是它可以包含一个<literal>&lt;many-to-one&gt;</literal>元素。类似这样的映射允许你将一个 many-to-many 关联表的额外字段映射为组合元素类。接下来的的例子是从 <literal>Order</literal> 到 <literal>Item</literal> 的一个多对多的关联关系,关联属性是 <literal>purchaseDate</literal>,<literal>price</literal> 和 <literal>quantity</literal> 。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"There cannot be a reference to the purchase on the other side for "
-"bidirectional association navigation. Components are value types and do not "
-"allow shared references. A single <literal>Purchase</literal> can be in the "
-"set of an <literal>Order</literal>, but it cannot be referenced by the "
-"<literal>Item</literal> at the same time."
-msgstr ""
-"当然,当你定义 Item 时,你无法引用这些 purchase,因此你无法实现双向关联查询。"
-"记住组件是值类型,并且不允许共享引用。某一个特定的 <literal>Purchase</"
-"literal> 可以放在 <literal>Order</literal> 的集合中,但它不能同时被 "
-"<literal>Item</literal> 所引用。"
+#, no-c-format
+msgid "There cannot be a reference to the purchase on the other side for bidirectional association navigation. Components are value types and do not allow shared references. A single <literal>Purchase</literal> can be in the set of an <literal>Order</literal>, but it cannot be referenced by the <literal>Item</literal> at the same time."
+msgstr "当然,当你定义 Item 时,你无法引用这些 purchase,因此你无法实现双向关联查询。记住组件是值类型,并且不允许共享引用。某一个特定的 <literal>Purchase</literal> 可以放在 <literal>Order</literal> 的集合中,但它不能同时被 <literal>Item</literal> 所引用。 "
 
 #. Tag: para
 #, no-c-format
@@ -216,11 +105,9 @@
 msgstr "其实组合元素的这个用法可以扩展到三重或多重关联:"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Composite elements can appear in queries using the same syntax as "
-"associations to other entities."
-msgstr "在查询中,表达组合元素的语法和关联到其他实体的语法是一样的。"
+#, no-c-format
+msgid "Composite elements can appear in queries using the same syntax as associations to other entities."
+msgstr "在查询中,表达组合元素的语法和关联到其他实体的语法是一样的。 "
 
 #. Tag: title
 #, no-c-format
@@ -228,16 +115,9 @@
 msgstr "组件作为 Map 的索引(Components as Map indices )"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>&lt;composite-map-key&gt;</literal> element allows you to map a "
-"component class as the key of a <literal>Map</literal>. Ensure that you "
-"override <literal>hashCode()</literal> and <literal>equals()</literal> "
-"correctly on the component class."
-msgstr ""
-"<literal>&lt;composite-map-key&gt;</literal> 元素允许你映射一个组件类作为一"
-"个 <literal>Map</literal> 的 key,前提是你必须正确的在这个类中重写了 "
-"<literal>hashCode()</literal> 和 <literal>equals()</literal> 方法。"
+#, no-c-format
+msgid "The <literal>&lt;composite-map-key&gt;</literal> element allows you to map a component class as the key of a <literal>Map</literal>. Ensure that you override <literal>hashCode()</literal> and <literal>equals()</literal> correctly on the component class."
+msgstr "<literal>&lt;composite-map-key&gt;</literal> 元素允许你映射一个组件类作为一个 <literal>Map</literal> 的 key,前提是你必须正确的在这个类中重写了 <literal>hashCode()</literal> 和 <literal>equals()</literal> 方法。 "
 
 #. Tag: title
 #, no-c-format
@@ -245,11 +125,9 @@
 msgstr "组件作为联合标识符(Components as composite identifiers)"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"You can use a component as an identifier of an entity class. Your component "
-"class must satisfy certain requirements:"
-msgstr "你可以使用一个组件作为一个实体类的标识符。你的组件类必须满足以下要求:"
+#, no-c-format
+msgid "You can use a component as an identifier of an entity class. Your component class must satisfy certain requirements:"
+msgstr "你可以使用一个组件作为一个实体类的标识符。你的组件类必须满足以下要求: "
 
 #. Tag: para
 #, no-c-format
@@ -257,13 +135,9 @@
 msgstr "它必须实现 <literal>java.io.Serializable</literal> 接口"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"It must re-implement <literal>equals()</literal> and <literal>hashCode()</"
-"literal> consistently with the database's notion of composite key equality."
-msgstr ""
-"它必须重新实现 <literal>equals()</literal> 和 <literal>hashCode()</literal> "
-"方法,始终和组合关键字在数据库中的概念保持一致"
+#, no-c-format
+msgid "It must re-implement <literal>equals()</literal> and <literal>hashCode()</literal> consistently with the database's notion of composite key equality."
+msgstr "它必须重新实现 <literal>equals()</literal> 和 <literal>hashCode()</literal> 方法,始终和组合关键字在数据库中的概念保持一致。"
 
 #. Tag: title
 #, no-c-format
@@ -271,84 +145,48 @@
 msgstr "注意"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"In Hibernate3, although the second requirement is not an absolutely hard "
-"requirement of Hibernate, it is recommended."
-msgstr ""
-"注意:在 Hibernate3 中,第二个要求并非是 Hibernate 强制必须的。但最好这样做。"
+#, no-c-format
+msgid "In Hibernate3, although the second requirement is not an absolutely hard requirement of Hibernate, it is recommended."
+msgstr "注意:在 Hibernate3 中,第二个要求并非是 Hibernate 强制必须的。但最好这样做。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"You cannot use an <literal>IdentifierGenerator</literal> to generate "
-"composite keys. Instead the application must assign its own identifiers."
-msgstr ""
-"你不能使用一个 <literal>IdentifierGenerator</literal> 产生组合关键字。一个应"
-"用程序必须分配它自己的标识符。"
+#, no-c-format
+msgid "You cannot use an <literal>IdentifierGenerator</literal> to generate composite keys. Instead the application must assign its own identifiers."
+msgstr "你不能使用一个 <literal>IdentifierGenerator</literal> 产生组合关键字。一个应用程序必须分配它自己的标识符。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Use the <literal>&lt;composite-id&gt;</literal> tag, with nested "
-"<literal>&lt;key-property&gt;</literal> elements, in place of the usual "
-"<literal>&lt;id&gt;</literal> declaration. For example, the "
-"<literal>OrderLine</literal> class has a primary key that depends upon the "
-"(composite) primary key of <literal>Order</literal>."
-msgstr ""
-"使用 <literal>&lt;composite-id&gt;</literal> 标签(并且内嵌 <literal>&lt;key-"
-"property&gt;</literal> 元素)代替通常的 <literal>&lt;id&gt;</literal> 标签。"
-"比如,<literal>OrderLine</literal> 类具有一个主键,这个主键依赖于 "
-"<literal>Order</literal> 的(联合)主键。"
+#, no-c-format
+msgid "Use the <literal>&lt;composite-id&gt;</literal> tag, with nested <literal>&lt;key-property&gt;</literal> elements, in place of the usual <literal>&lt;id&gt;</literal> declaration. For example, the <literal>OrderLine</literal> class has a primary key that depends upon the (composite) primary key of <literal>Order</literal>."
+msgstr "使用 <literal>&lt;composite-id&gt;</literal> 标签(并且内嵌 <literal>&lt;key-property&gt;</literal> 元素)代替通常的 <literal>&lt;id&gt;</literal> 标签。比如,<literal>OrderLine</literal> 类具有一个主键,这个主键依赖于 <literal>Order</literal> 的(联合)主键。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Any foreign keys referencing the <literal>OrderLine</literal> table are now "
-"composite. Declare this in your mappings for other classes. An association "
-"to <literal>OrderLine</literal> is mapped like this:"
-msgstr ""
-"现在,任何指向 <literal>OrderLine</literal> 的外键都是复合的。在你的映射文件"
-"中,必须为其他类也这样声明。例如,一个指向 <literal>OrderLine</literal> 的关"
-"联可能被这样映射:"
+#, no-c-format
+msgid "Any foreign keys referencing the <literal>OrderLine</literal> table are now composite. Declare this in your mappings for other classes. An association to <literal>OrderLine</literal> is mapped like this:"
+msgstr "现在,任何指向 <literal>OrderLine</literal> 的外键都是复合的。在你的映射文件中,必须为其他类也这样声明。例如,一个指向 <literal>OrderLine</literal> 的关联可能被这样映射: "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>&lt;column&gt;</literal> tag is an alternative to the "
-"<literal>column</literal> attribute everywhere."
-msgstr ""
-"(注意在各个地方 <literal>&lt;column&gt;</literal> 标签都是 <literal>column</"
-"literal> 属性的替代写法。)"
+#, no-c-format
+msgid "The <literal>&lt;column&gt;</literal> tag is an alternative to the <literal>column</literal> attribute everywhere."
+msgstr "注意在各个地方 <literal>&lt;column&gt;</literal> 标签都是 <literal>column</literal> 属性的替代写法。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A <literal>many-to-many</literal> association to <literal>OrderLine</"
-"literal> also uses the composite foreign key:"
-msgstr ""
-"指向 <literal>OrderLine</literal> 的<literal>多对多</literal>关联也使用联合外"
-"键:"
+msgid "A <literal>many-to-many</literal> association to <literal>OrderLine</literal> also uses the composite foreign key:"
+msgstr "指向 <literal>OrderLine</literal> 的<literal>多对多</literal>关联也使用联合外键:"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The collection of <literal>OrderLine</literal>s in <literal>Order</literal> "
-"would use:"
-msgstr ""
-"在 <literal>Order</literal> 中,<literal>OrderLine</literal> 的集合则是这样:"
+#, no-c-format
+msgid "The collection of <literal>OrderLine</literal>s in <literal>Order</literal> would use:"
+msgstr "在 <literal>Order</literal> 中,<literal>OrderLine</literal> 的集合则是这样: "
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "The <literal>&lt;one-to-many&gt;</literal> element declares no columns."
-msgstr ""
-"(与通常一样,<literal>&lt;one-to-many&gt;</literal> 元素不声明任何列.)"
+msgstr "与通常一样,<literal>&lt;one-to-many&gt;</literal> 元素不声明任何列。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If <literal>OrderLine</literal> itself owns a collection, it also has a "
-"composite foreign key."
+msgid "If <literal>OrderLine</literal> itself owns a collection, it also has a composite foreign key."
 msgstr "假若 <literal>OrderLine</literal> 本身拥有一个集合,它也具有组合外键。"
 
 #. Tag: title
@@ -357,26 +195,14 @@
 msgstr "动态组件(Dynamic components)"
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "You can also map a property of type <literal>Map</literal>:"
-msgstr "你甚至可以映射 <literal>Map</literal> 类型的属性:"
+msgstr "你甚至可以映射 <literal>Map</literal> 类型的属性: "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The semantics of a <literal>&lt;dynamic-component&gt;</literal> mapping are "
-"identical to <literal>&lt;component&gt;</literal>. The advantage of this "
-"kind of mapping is the ability to determine the actual properties of the "
-"bean at deployment time just by editing the mapping document. Runtime "
-"manipulation of the mapping document is also possible, using a DOM parser. "
-"You can also access, and change, Hibernate's configuration-time metamodel "
-"via the <literal>Configuration</literal> object."
-msgstr ""
-"从 <literal>&lt;dynamic-component&gt;</literal> 映射的语义上来讲,它和 "
-"<literal>&lt;component&gt;</literal> 是相同的。这种映射类型的优点在于通过修改"
-"映射文件,就可以具有在部署时检测真实属性的能力。利用一个 DOM 解析器,也可以在"
-"程序运行时操作映射文件。更好的是,你可以通过 <literal>Configuration</"
-"literal> 对象来访问(或者修改)Hibernate 的运行时元模型。"
+#, no-c-format
+msgid "The semantics of a <literal>&lt;dynamic-component&gt;</literal> mapping are identical to <literal>&lt;component&gt;</literal>. The advantage of this kind of mapping is the ability to determine the actual properties of the bean at deployment time just by editing the mapping document. Runtime manipulation of the mapping document is also possible, using a DOM parser. You can also access, and change, Hibernate's configuration-time metamodel via the <literal>Configuration</literal> object."
+msgstr "从 <literal>&lt;dynamic-component&gt;</literal> 映射的语义上来讲,它和 <literal>&lt;component&gt;</literal> 是相同的。这种映射类型的优点在于通过修改映射文件,就可以具有在部署时检测真实属性的能力。利用一个 DOM 解析器,也可以在程序运行时操作映射文件。更好的是,你可以通过 <literal>Configuration</literal> 对象来访问(或者修改)Hibernate 的运行时元模型。 "
 
 #~ msgid ""
 #~ "<![CDATA[public class Person {\n"
@@ -430,7 +256,6 @@
 #~ "    ......\n"
 #~ "    ......\n"
 #~ "}]]>"
-
 #~ msgid ""
 #~ "<![CDATA[public class Name {\n"
 #~ "    char initial;\n"
@@ -479,7 +304,6 @@
 #~ "        this.initial = initial;\n"
 #~ "    }\n"
 #~ "}]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
 #~ "    <id name=\"Key\" column=\"pid\" type=\"string\">\n"
@@ -506,7 +330,6 @@
 #~ "        <property name=\"last\"/>\n"
 #~ "    </component>\n"
 #~ "</class>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
 #~ "    <id name=\"Key\" column=\"pid\" type=\"string\">\n"
@@ -535,7 +358,6 @@
 #~ "        <property name=\"last\"/>\n"
 #~ "    </component>\n"
 #~ "</class>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<set name=\"someNames\" table=\"some_names\" lazy=\"true\">\n"
 #~ "    <key column=\"id\"/>\n"
@@ -756,3 +578,4 @@
 #~ "    &lt;property name=\"bar\" column=\"BAR\" type=\"integer\"/&gt;\n"
 #~ "    &lt;many-to-one name=\"baz\" class=\"Baz\" column=\"BAZ_ID\"/&gt;\n"
 #~ "&lt;/dynamic-component&gt;"
+

Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/configuration.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/configuration.po	2009-12-10 21:31:45 UTC (rev 97707)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/configuration.po	2009-12-11 00:50:05 UTC (rev 97708)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-12-03T00:15:26\n"
-"PO-Revision-Date: 2009-11-23 09:32+1000\n"
+"PO-Revision-Date: 2009-12-11 09:47+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -21,19 +21,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate is designed to operate in many different environments and, as "
-"such, there is a broad range of configuration parameters. Fortunately, most "
-"have sensible default values and Hibernate is distributed with an example "
-"<literal>hibernate.properties</literal> file in <literal>etc/</literal> that "
-"displays the various options. Simply put the example file in your classpath "
-"and customize it to suit your needs."
-msgstr ""
-"由于 Hibernate 是为了能在各种不同环境下工作而设计的,因此存在着大量的配置参"
-"数。幸运的是多数配置参数都有比较直观的默认值,并有随 Hibernate 一同分发的配置"
-"样例 <literal>hibernate.properties</literal>(位于 <literal>etc/</literal>)"
-"来展示各种配置选项。所需做的仅仅是将这个样例文件复制到类路径(classpath)下并"
-"进行定制。"
+msgid "Hibernate is designed to operate in many different environments and, as such, there is a broad range of configuration parameters. Fortunately, most have sensible default values and Hibernate is distributed with an example <literal>hibernate.properties</literal> file in <literal>etc/</literal> that displays the various options. Simply put the example file in your classpath and customize it to suit your needs."
+msgstr "由于 Hibernate 是为了能在各种不同环境下工作而设计的,因此存在着大量的配置参数。幸运的是多数配置参数都有比较直观的默认值,并有随 Hibernate 一同分发的配置样例 <literal>hibernate.properties</literal>(位于 <literal>etc/</literal>)来展示各种配置选项。所需做的仅仅是将这个样例文件复制到类路径(classpath)下并进行定制。"
 
 #. Tag: title
 #, no-c-format
@@ -42,124 +31,63 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"An instance of <classname>org.hibernate.cfg.Configuration</classname> "
-"represents an entire set of mappings of an application's Java types to an "
-"SQL database. The <classname>org.hibernate.cfg.Configuration</classname> is "
-"used to build an immutable <interfacename>org.hibernate.SessionFactory</"
-"interfacename>. The mappings are compiled from various XML mapping files."
-msgstr ""
-"<literal>org.hibernate.cfg.Configuration</literal> 实例代表了一个应用程序中 "
-"Java 类型到SQL数据库映射的完整集合。<classname>org.hibernate.cfg."
-"Configuration</classname> 被用来构建一个(不可变的(immutable))"
-"<interfacename>org.hibernate.SessionFactory</interfacename>。映射定义则由不同"
-"的 XML 映射定义文件编译而来。"
+msgid "An instance of <classname>org.hibernate.cfg.Configuration</classname> represents an entire set of mappings of an application's Java types to an SQL database. The <classname>org.hibernate.cfg.Configuration</classname> is used to build an immutable <interfacename>org.hibernate.SessionFactory</interfacename>. The mappings are compiled from various XML mapping files."
+msgstr "<literal>org.hibernate.cfg.Configuration</literal> 实例代表了一个应用程序中 Java 类型到SQL数据库映射的完整集合。<classname>org.hibernate.cfg.Configuration</classname> 被用来构建一个(不可变的(immutable))<interfacename>org.hibernate.SessionFactory</interfacename>。映射定义则由不同的 XML 映射定义文件编译而来。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You can obtain a <classname>org.hibernate.cfg.Configuration</classname> "
-"instance by instantiating it directly and specifying XML mapping documents. "
-"If the mapping files are in the classpath, use <literal>addResource()</"
-"literal>. For example:"
-msgstr ""
-"你可以直接实例化 <classname>org.hibernate.cfg.Configuration</classname> 来获"
-"取一个实例,并为它指定 XML 映射定义文件。如果映射定义文件在类路径"
-"(classpath)中,请使用 <literal>addResource()</literal>。例如:"
+msgid "You can obtain a <classname>org.hibernate.cfg.Configuration</classname> instance by instantiating it directly and specifying XML mapping documents. If the mapping files are in the classpath, use <literal>addResource()</literal>. For example:"
+msgstr "你可以直接实例化 <classname>org.hibernate.cfg.Configuration</classname> 来获取一个实例,并为它指定 XML 映射定义文件。如果映射定义文件在类路径(classpath)中,请使用 <literal>addResource()</literal>。例如:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"An alternative way is to specify the mapped class and allow Hibernate to "
-"find the mapping document for you:"
-msgstr ""
-"一个替代方法(有时是更好的选择)是,指定被映射的类,让 Hibernate 帮你寻找映射"
-"定义文件: "
+msgid "An alternative way is to specify the mapped class and allow Hibernate to find the mapping document for you:"
+msgstr "一个替代方法(有时是更好的选择)是,指定被映射的类,让 Hibernate 帮你寻找映射定义文件: "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate will then search for mapping files named <filename>/org/hibernate/"
-"auction/Item.hbm.xml</filename> and <filename>/org/hibernate/auction/Bid.hbm."
-"xml</filename> in the classpath. This approach eliminates any hardcoded "
-"filenames."
-msgstr ""
-"Hibernate 将会在类路径(classpath)中寻找名字为 <filename>/org/hibernate/"
-"auction/Item.hbm.xml</filename> 和 <filename>/org/hibernate/auction/Bid.hbm."
-"xml</filename> 映射定义文件。这种方式消除了任何对文件名的硬编码"
-"(hardcoded)。"
+msgid "Hibernate will then search for mapping files named <filename>/org/hibernate/auction/Item.hbm.xml</filename> and <filename>/org/hibernate/auction/Bid.hbm.xml</filename> in the classpath. This approach eliminates any hardcoded filenames."
+msgstr "Hibernate 将会在类路径(classpath)中寻找名字为 <filename>/org/hibernate/auction/Item.hbm.xml</filename> 和 <filename>/org/hibernate/auction/Bid.hbm.xml</filename> 映射定义文件。这种方式消除了任何对文件名的硬编码(hardcoded)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A <classname>org.hibernate.cfg.Configuration</classname> also allows you to "
-"specify configuration properties. For example:"
-msgstr ""
-"<classname>org.hibernate.cfg.Configuration</classname>> 也允许你指定配置属"
-"性。例如:"
+msgid "A <classname>org.hibernate.cfg.Configuration</classname> also allows you to specify configuration properties. For example:"
+msgstr "<classname>org.hibernate.cfg.Configuration</classname>> 也允许你指定配置属性。例如:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"This is not the only way to pass configuration properties to Hibernate. Some "
-"alternative options include:"
+msgid "This is not the only way to pass configuration properties to Hibernate. Some alternative options include:"
 msgstr "当然这不是唯一的传递 Hibernate 配置属性的方式,其他可选方式还包括: "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Pass an instance of <classname>java.util.Properties</classname> to "
-"<literal>Configuration.setProperties()</literal>."
-msgstr ""
-"传一个 <classname>java.util.Properties</classname> 实例给 "
-"<literal>Configuration.setProperties()</literal>。"
+msgid "Pass an instance of <classname>java.util.Properties</classname> to <literal>Configuration.setProperties()</literal>."
+msgstr "传一个 <classname>java.util.Properties</classname> 实例给 <literal>Configuration.setProperties()</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Place a file named <filename>hibernate.properties</filename> in a root "
-"directory of the classpath."
-msgstr ""
-"将 <filename>hibernate.properties</filename> 放置在类路径(classpath)的根目"
-"录下(root directory)。"
+msgid "Place a file named <filename>hibernate.properties</filename> in a root directory of the classpath."
+msgstr "将 <filename>hibernate.properties</filename> 放置在类路径(classpath)的根目录下(root directory)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Set <literal>System</literal> properties using <literal>java -"
-"Dproperty=value</literal>."
-msgstr ""
-"通过 <literal>java -Dproperty=value</literal> 来设置系统(<literal>System</"
-"literal>)属性。"
+msgid "Set <literal>System</literal> properties using <literal>java -Dproperty=value</literal>."
+msgstr "通过 <literal>java -Dproperty=value</literal> 来设置系统(<literal>System</literal>)属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Include <literal>&lt;property&gt;</literal> elements in <literal>hibernate."
-"cfg.xml</literal> (this is discussed later)."
-msgstr ""
-"在 <literal>hibernate.cfg.xml</literal> 中加入元素 <literal>&lt;property&gt;"
-"</literal>(稍后讨论)。 "
+msgid "Include <literal>&lt;property&gt;</literal> elements in <literal>hibernate.cfg.xml</literal> (this is discussed later)."
+msgstr "在 <literal>hibernate.cfg.xml</literal> 中加入元素 <literal>&lt;property&gt;</literal>(稍后讨论)。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If you want to get started quickly<filename>hibernate.properties</filename> "
-"is the easiest approach."
-msgstr ""
-"如果你想快速上路,<filename>hibernate.properties</filename> 就是最容易的途"
-"径。"
+msgid "If you want to get started quickly<filename>hibernate.properties</filename> is the easiest approach."
+msgstr "如果你想快速上路,<filename>hibernate.properties</filename> 就是最容易的途径。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <classname>org.hibernate.cfg.Configuration</classname> is intended as a "
-"startup-time object that will be discarded once a <literal>SessionFactory</"
-"literal> is created."
-msgstr ""
-"<classname>org.hibernate.cfg.Configuration</classname> 实例被设计成启动期间"
-"(startup-time)对象,一旦 <literal>SessionFactory</literal> 创建完成它就被丢"
-"弃了。"
+msgid "The <classname>org.hibernate.cfg.Configuration</classname> is intended as a startup-time object that will be discarded once a <literal>SessionFactory</literal> is created."
+msgstr "<classname>org.hibernate.cfg.Configuration</classname> 实例被设计成启动期间(startup-time)对象,一旦 <literal>SessionFactory</literal> 创建完成它就被丢弃了。"
 
 #. Tag: title
 #, no-c-format
@@ -168,25 +96,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"When all mappings have been parsed by the <classname>org.hibernate.cfg."
-"Configuration</classname>, the application must obtain a factory for "
-"<interfacename>org.hibernate.Session</interfacename> instances. This factory "
-"is intended to be shared by all application threads:"
-msgstr ""
-"当所有映射定义被 <classname>org.hibernate.cfg.Configuration</classname> 解析"
-"后,应用程序必须获得一个用于构造 <interfacename>org.hibernate.Session</"
-"interfacename> 实例的工厂。这个工厂将被应用程序的所有线程共享:"
+msgid "When all mappings have been parsed by the <classname>org.hibernate.cfg.Configuration</classname>, the application must obtain a factory for <interfacename>org.hibernate.Session</interfacename> instances. This factory is intended to be shared by all application threads:"
+msgstr "当所有映射定义被 <classname>org.hibernate.cfg.Configuration</classname> 解析后,应用程序必须获得一个用于构造 <interfacename>org.hibernate.Session</interfacename> 实例的工厂。这个工厂将被应用程序的所有线程共享:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate does allow your application to instantiate more than one "
-"<interfacename>org.hibernate.SessionFactory</interfacename>. This is useful "
-"if you are using more than one database."
-msgstr ""
-"Hibernate 允许你的应用程序创建多个 <interfacename>org.hibernate."
-"SessionFactory</interfacename> 实例。这对 使用多个数据库的应用来说很有用。"
+msgid "Hibernate does allow your application to instantiate more than one <interfacename>org.hibernate.SessionFactory</interfacename>. This is useful if you are using more than one database."
+msgstr "Hibernate 允许你的应用程序创建多个 <interfacename>org.hibernate.SessionFactory</interfacename> 实例。这对 使用多个数据库的应用来说很有用。"
 
 #. Tag: title
 #, no-c-format
@@ -195,46 +111,23 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"It is advisable to have the <interfacename>org.hibernate.SessionFactory</"
-"interfacename> create and pool JDBC connections for you. If you take this "
-"approach, opening a <interfacename>org.hibernate.Session</interfacename> is "
-"as simple as:"
-msgstr ""
-"通常你希望  <interfacename>org.hibernate.SessionFactory</interfacename> 来为"
-"你创建和缓存(pool)JDBC 连接。如果你采用这种方式,只需要如下例所示那样,打开"
-"一个 <interfacename>org.hibernate.Session</interfacename>:"
+msgid "It is advisable to have the <interfacename>org.hibernate.SessionFactory</interfacename> create and pool JDBC connections for you. If you take this approach, opening a <interfacename>org.hibernate.Session</interfacename> is as simple as:"
+msgstr "通常你希望  <interfacename>org.hibernate.SessionFactory</interfacename> 来为你创建和缓存(pool)JDBC 连接。如果你采用这种方式,只需要如下例所示那样,打开一个 <interfacename>org.hibernate.Session</interfacename>:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Once you start a task that requires access to the database, a JDBC "
-"connection will be obtained from the pool."
-msgstr ""
-"一旦你需要进行数据访问时,就会从连接池(connection pool)获得一个 JDBC 连"
-"接。 "
+msgid "Once you start a task that requires access to the database, a JDBC connection will be obtained from the pool."
+msgstr "一旦你需要进行数据访问时,就会从连接池(connection pool)获得一个 JDBC 连接。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Before you can do this, you first need to pass some JDBC connection "
-"properties to Hibernate. All Hibernate property names and semantics are "
-"defined on the class <classname>org.hibernate.cfg.Environment</classname>. "
-"The most important settings for JDBC connection configuration are outlined "
-"below."
-msgstr ""
-"为了使这种方式工作起来,我们需要向 Hibernate 传递一些 JDBC 连接的属性。所有 "
-"Hibernate 属性的名字和语义都在 <classname>org.hibernate.cfg.Environment</"
-"classname> 中定义。我们现在将描述 JDBC 连接配置中最重要的设置。"
+msgid "Before you can do this, you first need to pass some JDBC connection properties to Hibernate. All Hibernate property names and semantics are defined on the class <classname>org.hibernate.cfg.Environment</classname>. The most important settings for JDBC connection configuration are outlined below."
+msgstr "为了使这种方式工作起来,我们需要向 Hibernate 传递一些 JDBC 连接的属性。所有 Hibernate 属性的名字和语义都在 <classname>org.hibernate.cfg.Environment</classname> 中定义。我们现在将描述 JDBC 连接配置中最重要的设置。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate will obtain and pool connections using <classname>java.sql."
-"DriverManager</classname> if you set the following properties:"
-msgstr ""
-"如果你设置如下属性,Hibernate 将使用 <classname>java.sql.DriverManager</"
-"classname> 来获得(和缓存)JDBC 连接:"
+msgid "Hibernate will obtain and pool connections using <classname>java.sql.DriverManager</classname> if you set the following properties:"
+msgstr "如果你设置如下属性,Hibernate 将使用 <classname>java.sql.DriverManager</classname> 来获得(和缓存)JDBC 连接:"
 
 #. Tag: title
 #, no-c-format
@@ -252,108 +145,74 @@
 msgstr "用途"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.connection.driver_class</property>"
-msgstr "hibernate.connection.driver_class"
+msgstr "<property>hibernate.connection.driver_class</property>"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<emphasis>JDBC driver class</emphasis>"
-msgstr "JDBC 驱动 class"
+msgstr "<emphasis>JDBC 驱动类</emphasis>"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.connection.url</property>"
-msgstr "hibernate.connection.url"
+msgstr "<property>hibernate.connection.url</property>"
 
 #. Tag: entry
 #, no-c-format
 msgid "<emphasis>JDBC URL</emphasis>"
-msgstr ""
+msgstr "<emphasis>JDBC URL</emphasis>"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.connection.username</property>"
-msgstr "hibernate.connection.username"
+msgstr "<property>hibernate.connection.username</property>"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<emphasis>database user</emphasis>"
-msgstr "<emphasis>数据库用户</emphasis>(可选)"
+msgstr "<emphasis>数据库用户</emphasis>"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.connection.password</property>"
-msgstr "hibernate.connection.password"
+msgstr "<property>hibernate.connection.password</property>"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<emphasis>database user password</emphasis>"
-msgstr "<emphasis>数据库密码</emphasis>(可选)"
+msgstr "<emphasis>数据库密码</emphasis> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.connection.pool_size</property>"
-msgstr "hibernate.connection.pool_size"
+msgstr "<property>hibernate.connection.pool_size</property>"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<emphasis>maximum number of pooled connections</emphasis>"
-msgstr "连接池容量上限数目"
+msgstr "<emphasis>连接池容量上限数目</emphasis>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate's own connection pooling algorithm is, however, quite rudimentary. "
-"It is intended to help you get started and is <emphasis>not intended for use "
-"in a production system</emphasis>, or even for performance testing. You "
-"should use a third party pool for best performance and stability. Just "
-"replace the <property>hibernate.connection.pool_size</property> property "
-"with connection pool specific settings. This will turn off Hibernate's "
-"internal pool. For example, you might like to use c3p0."
-msgstr ""
-"但 Hibernate 自带的连接池算法相当不成熟。它只是为了让你快些上手<emphasis>,并"
-"不适合用于产品系统</emphasis>或性能测试中。 出于最佳性能和稳定性考虑你应该使"
-"用第三方的连接池。只需要用特定连接池的设置替换 <literal>hibernate.connection."
-"pool_size</literal> 即可。这将关闭 Hibernate 自带的连接池。例如,你可能会想"
-"用 C3P0。  "
+msgid "Hibernate's own connection pooling algorithm is, however, quite rudimentary. It is intended to help you get started and is <emphasis>not intended for use in a production system</emphasis>, or even for performance testing. You should use a third party pool for best performance and stability. Just replace the <property>hibernate.connection.pool_size</property> property with connection pool specific settings. This will turn off Hibernate's internal pool. For example, you might like to use c3p0."
+msgstr "但 Hibernate 自带的连接池算法相当不成熟。它只是为了让你快些上手<emphasis>,并不适合用于产品系统</emphasis>或性能测试中。 出于最佳性能和稳定性考虑你应该使用第三方的连接池。只需要用特定连接池的设置替换 <literal>hibernate.connection.pool_size</literal> 即可。这将关闭 Hibernate 自带的连接池。例如,你可能会想用 C3P0。  "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"C3P0 is an open source JDBC connection pool distributed along with Hibernate "
-"in the <filename>lib</filename> directory. Hibernate will use its "
-"<classname>org.hibernate.connection.C3P0ConnectionProvider</classname> for "
-"connection pooling if you set <property>hibernate.c3p0.*</property> "
-"properties. If you would like to use Proxool, refer to the packaged "
-"<filename>hibernate.properties</filename> and the Hibernate web site for "
-"more information."
-msgstr ""
-"C3P0 是一个随 Hibernate 一同分发的开源的 JDBC 连接池,它位于 <literal>lib</"
-"literal>目录下。 如果你设置了 <literal>hibernate.c3p0.*</literal> 相关的属"
-"性,Hibernate将使用 <literal>C3P0ConnectionProvider</literal> 来缓存 JDBC 连"
-"接。如果你更原意使用 Proxool,请参考发行包中的 <literal>hibernate."
-"properties</literal> 并到 Hibernate 网站获取更多的信息。 "
+msgid "C3P0 is an open source JDBC connection pool distributed along with Hibernate in the <filename>lib</filename> directory. Hibernate will use its <classname>org.hibernate.connection.C3P0ConnectionProvider</classname> for connection pooling if you set <property>hibernate.c3p0.*</property> properties. If you would like to use Proxool, refer to the packaged <filename>hibernate.properties</filename> and the Hibernate web site for more information."
+msgstr "C3P0 是一个随 Hibernate 一同分发的开源的 JDBC 连接池,它位于 <literal>lib</literal>目录下。 如果你设置了 <literal>hibernate.c3p0.*</literal> 相关的属性,Hibernate将使用 <literal>C3P0ConnectionProvider</literal> 来缓存 JDBC 连接。如果你更原意使用 Proxool,请参考发行包中的 <literal>hibernate.properties</literal> 并到 Hibernate 网站获取更多的信息。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The following is an example <filename>hibernate.properties</filename> file "
-"for c3p0:"
-msgstr ""
-"这是一个使用 C3P0 的 <literal>hibernate.properties</literal> 样例文件: "
+msgid "The following is an example <filename>hibernate.properties</filename> file for c3p0:"
+msgstr "这是一个使用 C3P0 的 <literal>hibernate.properties</literal> 样例文件: "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"For use inside an application server, you should almost always configure "
-"Hibernate to obtain connections from an application server "
-"<interfacename>javax.sql.Datasource</interfacename> registered in JNDI. You "
-"will need to set at least one of the following properties:"
-msgstr ""
-"为了能在应用程序服务器(application server)中使用 Hibernate,应当总是将 "
-"Hibernate 配置成从注册在 JNDI 中的 <literal>Datasource</literal> 处获得连接,"
-"你至少需要设置下列属性中的一个: "
+msgid "For use inside an application server, you should almost always configure Hibernate to obtain connections from an application server <interfacename>javax.sql.Datasource</interfacename> registered in JNDI. You will need to set at least one of the following properties:"
+msgstr "为了能在应用程序服务器(application server)中使用 Hibernate,应当总是将 Hibernate 配置成从注册在 JNDI 中的 <literal>Datasource</literal> 处获得连接,你至少需要设置下列属性中的一个: "
 
 #. Tag: title
 #, no-c-format
@@ -361,19 +220,19 @@
 msgstr "Hibernate 数据源属性"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.connection.datasource</property>"
-msgstr "hibernate.connection.datasource"
+msgstr "<property>hibernate.connection.datasource</property>"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<emphasis>datasource JNDI name</emphasis>"
-msgstr "<emphasis>数据库用户</emphasis>(可选)"
+msgstr "<emphasis>datasource JNDI name</emphasis>"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.jndi.url</property>"
-msgstr "hibernate.jndi.url"
+msgstr "<property>hibernate.jndi.url</property>"
 
 #. Tag: entry
 #, no-c-format
@@ -381,17 +240,14 @@
 msgstr "<emphasis>JNDI 提供者的 URL</emphasis>(可选)"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.jndi.class</property>"
-msgstr "hibernate.jndi.class"
+msgstr "<property>hibernate.jndi.class</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"<emphasis>class of the JNDI <literal>InitialContextFactory</literal></"
-"emphasis> (optional)"
-msgstr ""
-"<emphasis>JNDI <literal>InitialContextFactory</literal> 类</emphasis>(可选)"
+msgid "<emphasis>class of the JNDI <literal>InitialContextFactory</literal></emphasis> (optional)"
+msgstr "<emphasis>JNDI <literal>InitialContextFactory</literal> 类</emphasis>(可选)"
 
 #. Tag: entry
 #, no-c-format
@@ -405,46 +261,23 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Here is an example <filename>hibernate.properties</filename> file for an "
-"application server provided JNDI datasource:"
-msgstr ""
-"这是一个使用应用程序服务器提供的 JNDI 数据源的 <literal>hibernate."
-"properties</literal> 样例文件: "
+msgid "Here is an example <filename>hibernate.properties</filename> file for an application server provided JNDI datasource:"
+msgstr "这是一个使用应用程序服务器提供的 JNDI 数据源的 <literal>hibernate.properties</literal> 样例文件: "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"JDBC connections obtained from a JNDI datasource will automatically "
-"participate in the container-managed transactions of the application server."
-msgstr ""
-"从 JNDI 数据源获得的 JDBC 连接将自动参与到应用程序服务器中容器管理的事务"
-"(container-managed transactions)中去。"
+msgid "JDBC connections obtained from a JNDI datasource will automatically participate in the container-managed transactions of the application server."
+msgstr "从 JNDI 数据源获得的 JDBC 连接将自动参与到应用程序服务器中容器管理的事务(container-managed transactions)中去。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Arbitrary connection properties can be given by prepending "
-"\"<literal>hibernate.connection</literal>\" to the connection property name. "
-"For example, you can specify a <property>charSet</property> connection "
-"property using <property>hibernate.connection.charSet</property>."
-msgstr ""
-"任何连接(connection)属性的属性名都要以 \"<literal>hibernate.connnection</"
-"literal>\" 开头。例如,你可能会使用 <literal>hibernate.connection.charSet</"
-"literal> 来指定 <property>charSet</property> 连接属性。 "
+msgid "Arbitrary connection properties can be given by prepending \"<literal>hibernate.connection</literal>\" to the connection property name. For example, you can specify a <property>charSet</property> connection property using <property>hibernate.connection.charSet</property>."
+msgstr "任何连接(connection)属性的属性名都要以 \"<literal>hibernate.connnection</literal>\" 开头。例如,你可能会使用 <literal>hibernate.connection.charSet</literal> 来指定 <property>charSet</property> 连接属性。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You can define your own plugin strategy for obtaining JDBC connections by "
-"implementing the interface <interfacename>org.hibernate.connection."
-"ConnectionProvider</interfacename>, and specifying your custom "
-"implementation via the <property>hibernate.connection.provider_class</"
-"property> property."
-msgstr ""
-"通过实现 <literal>org.hibernate.connection.ConnectionProvider</literal> 接"
-"口,你可以定义属于你自己的获得JDBC连接的插件策略。通过设置<literal>hibernate."
-"connection.provider_class</literal>,你可以选择一个自定义的实现。 "
+msgid "You can define your own plugin strategy for obtaining JDBC connections by implementing the interface <interfacename>org.hibernate.connection.ConnectionProvider</interfacename>, and specifying your custom implementation via the <property>hibernate.connection.provider_class</property> property."
+msgstr "通过实现 <literal>org.hibernate.connection.ConnectionProvider</literal> 接口,你可以定义属于你自己的获得JDBC连接的插件策略。通过设置<literal>hibernate.connection.provider_class</literal>,你可以选择一个自定义的实现。 "
 
 #. Tag: title
 #, no-c-format
@@ -453,24 +286,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"There are a number of other properties that control the behavior of "
-"Hibernate at runtime. All are optional and have reasonable default values."
-msgstr ""
-"有大量属性能用来控制 Hibernate 在运行期的行为。它们都是可选的,并拥有适当的默"
-"认值。 "
+msgid "There are a number of other properties that control the behavior of Hibernate at runtime. All are optional and have reasonable default values."
+msgstr "有大量属性能用来控制 Hibernate 在运行期的行为。它们都是可选的,并拥有适当的默认值。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Some of these properties are system-level only. System-level properties can "
-"be set only via <code>java -Dproperty=value</code> or <filename>hibernate."
-"properties</filename>. They <emphasis>cannot</emphasis> be set by the other "
-"techniques described above."
-msgstr ""
-"警告: 其中一些属性是\"系统级(system-level)的\"。系统级属性只能通过"
-"<literal>java -Dproperty=value</literal> 或 <literal>hibernate.properties</"
-"literal> 来设置,而<emphasis>不能</emphasis>用上面描述的其他方法来设置。 "
+msgid "Some of these properties are system-level only. System-level properties can be set only via <code>java -Dproperty=value</code> or <filename>hibernate.properties</filename>. They <emphasis>cannot</emphasis> be set by the other techniques described above."
+msgstr "警告: 其中一些属性是\"系统级(system-level)的\"。系统级属性只能通过<literal>java -Dproperty=value</literal> 或 <literal>hibernate.properties</literal> 来设置,而<emphasis>不能</emphasis>用上面描述的其他方法来设置。 "
 
 #. Tag: title
 #, no-c-format
@@ -478,68 +300,44 @@
 msgstr "Hibernate 配置属性"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.dialect</property>"
-msgstr "hibernate.dialect"
+msgstr "<property>hibernate.dialect</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"The classname of a Hibernate <classname>org.hibernate.dialect.Dialect</"
-"classname> which allows Hibernate to generate SQL optimized for a particular "
-"relational database."
-msgstr ""
-"允许 Hibernate 针对特定的关系数据库生成优化的 SQL 的 <classname>org."
-"hibernate.dialect.Dialect</classname> 的类名。"
+msgid "The classname of a Hibernate <classname>org.hibernate.dialect.Dialect</classname> which allows Hibernate to generate SQL optimized for a particular relational database."
+msgstr "允许 Hibernate 针对特定的关系数据库生成优化的 SQL 的 <classname>org.hibernate.dialect.Dialect</classname> 的类名。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>full.classname.of."
-"Dialect</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>full.classname.of."
-"Dialect</literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>full.classname.of.Dialect</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>full.classname.of.Dialect</literal> "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"In most cases Hibernate will actually be able to choose the correct "
-"<classname>org.hibernate.dialect.Dialect</classname> implementation based on "
-"the <literal>JDBC metadata</literal> returned by the JDBC driver."
-msgstr ""
-"在大多数情况下,Hibernate 可以根据 JDBC 驱动返回的 <literal>JDBC metadata</"
-"literal> 选择正确的 <classname>org.hibernate.dialect.Dialect</classname> 实"
-"现。"
+msgid "In most cases Hibernate will actually be able to choose the correct <classname>org.hibernate.dialect.Dialect</classname> implementation based on the <literal>JDBC metadata</literal> returned by the JDBC driver."
+msgstr "在大多数情况下,Hibernate 可以根据 JDBC 驱动返回的 <literal>JDBC metadata</literal> 选择正确的 <classname>org.hibernate.dialect.Dialect</classname> 实现。"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.show_sql</property>"
-msgstr "hibernate.show_sql"
+msgstr "<property>hibernate.show_sql</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Write all SQL statements to console. This is an alternative to setting the "
-"log category <literal>org.hibernate.SQL</literal> to <literal>debug</"
-"literal>."
-msgstr ""
-"输出所有 SQL 语句到控制台。有一个另外的选择是把 <literal>org.hibernate.SQL</"
-"literal> 这个 log category设为 <literal>debug</literal>。"
+msgid "Write all SQL statements to console. This is an alternative to setting the log category <literal>org.hibernate.SQL</literal> to <literal>debug</literal>."
+msgstr "输出所有 SQL 语句到控制台。有一个另外的选择是把 <literal>org.hibernate.SQL</literal> 这个 log category设为 <literal>debug</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>true</literal> | "
-"<literal>false</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>true</literal> | "
-"<literal>false</literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>true</literal> | <literal>false</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>true</literal> | <literal>false</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.format_sql</property>"
-msgstr "hibernate.format_sql"
+msgstr "<property>hibernate.format_sql</property>"
 
 #. Tag: entry
 #, no-c-format
@@ -547,94 +345,69 @@
 msgstr "在 log 和 console 中打印出更漂亮的 SQL。"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.default_schema</property>"
-msgstr "hibernate.default_schema"
+msgstr "<property>hibernate.default_schema</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Qualify unqualified table names with the given schema/tablespace in "
-"generated SQL."
-msgstr ""
-"在生成的 SQL 中,将给定的 schema/tablespace 附加于非全限定名的表名上。 "
+msgid "Qualify unqualified table names with the given schema/tablespace in generated SQL."
+msgstr "在生成的 SQL 中,将给定的 schema/tablespace 附加于非全限定名的表名上。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>SCHEMA_NAME</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>SCHEMA_NAME</literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>SCHEMA_NAME</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>SCHEMA_NAME</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.default_catalog</property>"
-msgstr "hibernate.default_catalog"
+msgstr "<property>hibernate.default_catalog</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Qualifies unqualified table names with the given catalog in generated SQL."
+msgid "Qualifies unqualified table names with the given catalog in generated SQL."
 msgstr "在生成的 SQL 中,将给定的 catalog 附加于非全限定名的表名上。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>CATALOG_NAME</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>CATALOG_NAME</literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>CATALOG_NAME</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>CATALOG_NAME</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.session_factory_name</property>"
-msgstr "hibernate.session_factory_name"
+msgstr "<property>hibernate.session_factory_name</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"The <interfacename>org.hibernate.SessionFactory</interfacename> will be "
-"automatically bound to this name in JNDI after it has been created."
-msgstr ""
-"<interfacename>org.hibernate.SessionFactory</interfacename> 创建后,将自动使"
-"用这个名字绑定到 JNDI 中。"
+msgid "The <interfacename>org.hibernate.SessionFactory</interfacename> will be automatically bound to this name in JNDI after it has been created."
+msgstr "<interfacename>org.hibernate.SessionFactory</interfacename> 创建后,将自动使用这个名字绑定到 JNDI 中。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>jndi/composite/name</"
-"literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>jndi/composite/name</"
-"literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>jndi/composite/name</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>jndi/composite/name</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.max_fetch_depth</property>"
-msgstr "hibernate.max_fetch_depth"
+msgstr "<property>hibernate.max_fetch_depth</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Sets a maximum \"depth\" for the outer join fetch tree for single-ended "
-"associations (one-to-one, many-to-one). A <literal>0</literal> disables "
-"default outer join fetching."
-msgstr ""
-"为单向关联(一对一,多对一)的外连接抓取(outer join fetch)树设置最大深度。"
-"值为 <literal>0</literal> 意味着将关闭默认的外连接抓取。 "
+msgid "Sets a maximum \"depth\" for the outer join fetch tree for single-ended associations (one-to-one, many-to-one). A <literal>0</literal> disables default outer join fetching."
+msgstr "为单向关联(一对一,多对一)的外连接抓取(outer join fetch)树设置最大深度。值为 <literal>0</literal> 意味着将关闭默认的外连接抓取。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> recommended values between "
-"<literal>0</literal> and <literal>3</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis> 建议在 <literal>0</literal> 到 "
-"<literal>3</literal> 之间取值 "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> recommended values between <literal>0</literal> and <literal>3</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis> 建议在 <literal>0</literal> 到 <literal>3</literal> 之间取值 "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.default_batch_fetch_size</property>"
-msgstr "hibernate.default_batch_fetch_size"
+msgstr "<property>hibernate.default_batch_fetch_size</property>"
 
 #. Tag: entry
 #, no-c-format
@@ -643,87 +416,63 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> recommended values <literal>4</"
-"literal>, <literal>8</literal>, <literal>16</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis>建议的取值为 <literal>4</"
-"literal>,<literal>8</literal>,和 <literal>16</literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> recommended values <literal>4</literal>, <literal>8</literal>, <literal>16</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis>建议的取值为 <literal>4</literal>,<literal>8</literal>,和 <literal>16</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.default_entity_mode</property>"
-msgstr "hibernate.default_entity_mode"
+msgstr "<property>hibernate.default_entity_mode</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Sets a default mode for entity representation for all sessions opened from "
-"this <literal>SessionFactory</literal>"
-msgstr ""
-"为由这个 <literal>SessionFactory</literal> 打开的所有 Session 指定默认的实体"
-"表现模式。 "
+msgid "Sets a default mode for entity representation for all sessions opened from this <literal>SessionFactory</literal>"
+msgstr "为由这个 <literal>SessionFactory</literal> 打开的所有 Session 指定默认的实体表现模式。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</"
-"literal>"
-msgstr ""
-"<emphasis role=\"strong\">取值</emphasis><literal>dynamic-map</literal>,"
-"<literal>dom4j</literal>,<literal>pojo</literal>"
+msgid "<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</literal>"
+msgstr "<emphasis role=\"strong\">取值</emphasis><literal>dynamic-map</literal>,<literal>dom4j</literal>,<literal>pojo</literal>"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.order_updates</property>"
-msgstr "hibernate.order_updates"
+msgstr "<property>hibernate.order_updates</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Forces Hibernate to order SQL updates by the primary key value of the items "
-"being updated. This will result in fewer transaction deadlocks in highly "
-"concurrent systems."
-msgstr ""
-"强制 Hibernate 按照被更新数据的主键,为 SQL 更新排序。这么做将减少在高并发系"
-"统中事务的死锁。"
+msgid "Forces Hibernate to order SQL updates by the primary key value of the items being updated. This will result in fewer transaction deadlocks in highly concurrent systems."
+msgstr "强制 Hibernate 按照被更新数据的主键,为 SQL 更新排序。这么做将减少在高并发系统中事务的死锁。"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.generate_statistics</property>"
-msgstr "hibernate.generate_statistics"
+msgstr "<property>hibernate.generate_statistics</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"If enabled, Hibernate will collect statistics useful for performance tuning."
+msgid "If enabled, Hibernate will collect statistics useful for performance tuning."
 msgstr "如果开启,Hibernate 将收集有助于性能调节的统计数据。"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.use_identifier_rollback</property>"
-msgstr "hibernate.use_identifier_rollback"
+msgstr "<property>hibernate.use_identifier_rollback</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"If enabled, generated identifier properties will be reset to default values "
-"when objects are deleted."
+msgid "If enabled, generated identifier properties will be reset to default values when objects are deleted."
 msgstr "如果开启,在对象被删除时生成的标识属性将被重设为默认值。"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.use_sql_comments</property>"
-msgstr "hibernate.use_sql_comments"
+msgstr "<property>hibernate.use_sql_comments</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"If turned on, Hibernate will generate comments inside the SQL, for easier "
-"debugging, defaults to <literal>false</literal>."
-msgstr ""
-"如果开启,Hibernate 将在 SQL 中生成有助于调试的注释信息,默认值为 "
-"<literal>false</literal>。"
+msgid "If turned on, Hibernate will generate comments inside the SQL, for easier debugging, defaults to <literal>false</literal>."
+msgstr "如果开启,Hibernate 将在 SQL 中生成有助于调试的注释信息,默认值为 <literal>false</literal>。"
 
 #. Tag: title
 #, no-c-format
@@ -731,23 +480,19 @@
 msgstr "Hibernate JDBC 和连接(connection)属性"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.jdbc.fetch_size</property>"
-msgstr "hibernate.jdbc.fetch_size"
+msgstr "<property>hibernate.jdbc.fetch_size</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"A non-zero value determines the JDBC fetch size (calls <literal>Statement."
-"setFetchSize()</literal>)."
-msgstr ""
-"非零值,指定 JDBC 抓取数量的大小(调用 <literal>Statement.setFetchSize()</"
-"literal>)。"
+msgid "A non-zero value determines the JDBC fetch size (calls <literal>Statement.setFetchSize()</literal>)."
+msgstr "非零值,指定 JDBC 抓取数量的大小(调用 <literal>Statement.setFetchSize()</literal>)。"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.jdbc.batch_size</property>"
-msgstr "hibernate.jdbc.batch_size"
+msgstr "<property>hibernate.jdbc.batch_size</property>"
 
 #. Tag: entry
 #, no-c-format
@@ -756,159 +501,103 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> recommended values between "
-"<literal>5</literal> and <literal>30</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis>建议取 <literal>5</literal> 到 "
-"<literal>30</literal> 之间的值 "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> recommended values between <literal>5</literal> and <literal>30</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis>建议取 <literal>5</literal> 到 <literal>30</literal> 之间的值 "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.jdbc.batch_versioned_data</property>"
-msgstr "hibernate.jdbc.batch_versioned_data"
+msgstr "<property>hibernate.jdbc.batch_versioned_data</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Set this property to <literal>true</literal> if your JDBC driver returns "
-"correct row counts from <literal>executeBatch()</literal>. Iit is usually "
-"safe to turn this option on. Hibernate will then use batched DML for "
-"automatically versioned data. Defaults to <literal>false</literal>."
-msgstr ""
-"如果你想让你的 JDBC 驱动从 <literal>true</literal> 返回正确的行计数 ,那么将"
-"此属性设为 <literal>executeBatch()</literal>(开启这个选项通常是安全的)。同"
-"时,Hibernate 将为自动版本化的数据使用批量 DML。默认值为 <literal>false</"
-"literal>。 "
+msgid "Set this property to <literal>true</literal> if your JDBC driver returns correct row counts from <literal>executeBatch()</literal>. Iit is usually safe to turn this option on. Hibernate will then use batched DML for automatically versioned data. Defaults to <literal>false</literal>."
+msgstr "如果你想让你的 JDBC 驱动从 <literal>true</literal> 返回正确的行计数 ,那么将此属性设为 <literal>executeBatch()</literal>(开启这个选项通常是安全的)。同时,Hibernate 将为自动版本化的数据使用批量 DML。默认值为 <literal>false</literal>。 "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.jdbc.factory_class</property>"
-msgstr "hibernate.jdbc.factory_class"
+msgstr "<property>hibernate.jdbc.factory_class</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Select a custom <interfacename>org.hibernate.jdbc.Batcher</interfacename>. "
-"Most applications will not need this configuration property."
-msgstr ""
-"选择一个自定义的 <literal>Batcher</literal>。多数应用程序不需要这个配置属"
-"性。 "
+msgid "Select a custom <interfacename>org.hibernate.jdbc.Batcher</interfacename>. Most applications will not need this configuration property."
+msgstr "选择一个自定义的 <literal>Batcher</literal>。多数应用程序不需要这个配置属性。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
-"BatcherFactory</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>classname.of.Batcher</"
-"literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.BatcherFactory</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>classname.of.Batcher</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.jdbc.use_scrollable_resultset</property>"
-msgstr "hibernate.jdbc.use_scrollable_resultset"
+msgstr "<property>hibernate.jdbc.use_scrollable_resultset</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Enables use of JDBC2 scrollable resultsets by Hibernate. This property is "
-"only necessary when using user-supplied JDBC connections. Hibernate uses "
-"connection metadata otherwise."
-msgstr ""
-"允许 Hibernate 使用 JDBC2 的可滚动结果集。只有在使用用户提供的 JDBC 连接时,"
-"这个选项才是必要的,否则 Hibernate 会使用连接的元数据。 "
+msgid "Enables use of JDBC2 scrollable resultsets by Hibernate. This property is only necessary when using user-supplied JDBC connections. Hibernate uses connection metadata otherwise."
+msgstr "允许 Hibernate 使用 JDBC2 的可滚动结果集。只有在使用用户提供的 JDBC 连接时,这个选项才是必要的,否则 Hibernate 会使用连接的元数据。 "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.jdbc.use_streams_for_binary</property>"
-msgstr "hibernate.jdbc.use_streams_for_binary"
+msgstr "<property>hibernate.jdbc.use_streams_for_binary</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Use streams when writing/reading <literal>binary</literal> or "
-"<literal>serializable</literal> types to/from JDBC. <emphasis>*system-level "
-"property*</emphasis>"
-msgstr ""
-"在 JDBC 读写 <literal>binary</literal> 或 <literal>serializable</literal> 的"
-"类型时使用流(stream)(系统级属性)。 "
+msgid "Use streams when writing/reading <literal>binary</literal> or <literal>serializable</literal> types to/from JDBC. <emphasis>*system-level property*</emphasis>"
+msgstr "在 JDBC 读写 <literal>binary</literal> 或 <literal>serializable</literal> 的类型时使用流(stream)(系统级属性)。 "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.jdbc.use_get_generated_keys</property>"
-msgstr "hibernate.jdbc.use_get_generated_keys"
+msgstr "<property>hibernate.jdbc.use_get_generated_keys</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Enables use of JDBC3 <literal>PreparedStatement.getGeneratedKeys()</literal> "
-"to retrieve natively generated keys after insert. Requires JDBC3+ driver and "
-"JRE1.4+, set to false if your driver has problems with the Hibernate "
-"identifier generators. By default, it tries to determine the driver "
-"capabilities using connection metadata."
-msgstr ""
-"在数据插入数据库之后,允许使用 JDBC3 <literal>PreparedStatement."
-"getGeneratedKeys()</literal> 来获取数据库生成的 key(键)。需要 JDBC3+ 驱动"
-"和 JRE1.4+,如果你的数据库驱动在使用 Hibernate 的标识生成器时遇到问题,请将此"
-"值设为 false。默认情况下将使用连接的元数据来判定驱动的能力。 "
+msgid "Enables use of JDBC3 <literal>PreparedStatement.getGeneratedKeys()</literal> to retrieve natively generated keys after insert. Requires JDBC3+ driver and JRE1.4+, set to false if your driver has problems with the Hibernate identifier generators. By default, it tries to determine the driver capabilities using connection metadata."
+msgstr "在数据插入数据库之后,允许使用 JDBC3 <literal>PreparedStatement.getGeneratedKeys()</literal> 来获取数据库生成的 key(键)。需要 JDBC3+ 驱动和 JRE1.4+,如果你的数据库驱动在使用 Hibernate 的标识生成器时遇到问题,请将此值设为 false。默认情况下将使用连接的元数据来判定驱动的能力。 "
 
 #. Tag: para
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>true|false</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>true | false</literal> "
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>true | false</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.connection.provider_class</property>"
-msgstr "hibernate.connection.provider_class"
+msgstr "<property>hibernate.connection.provider_class</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"The classname of a custom <interfacename>org.hibernate.connection."
-"ConnectionProvider</interfacename> which provides JDBC connections to "
-"Hibernate."
-msgstr ""
-"自定义 <literal>ConnectionProvider</literal> 的类名,此类用来向 Hibernate 提"
-"供 JDBC 连接。 "
+msgid "The classname of a custom <interfacename>org.hibernate.connection.ConnectionProvider</interfacename> which provides JDBC connections to Hibernate."
+msgstr "自定义 <literal>ConnectionProvider</literal> 的类名,此类用来向 Hibernate 提供 JDBC 连接。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
-"ConnectionProvider</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>classname.of."
-"ConnectionProvider</literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.ConnectionProvider</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>classname.of.ConnectionProvider</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.connection.isolation</property>"
-msgstr "hibernate.connection.isolation"
+msgstr "<property>hibernate.connection.isolation</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Sets the JDBC transaction isolation level. Check <interfacename>java.sql."
-"Connection</interfacename> for meaningful values, but note that most "
-"databases do not support all isolation levels and some define additional, "
-"non-standard isolations."
-msgstr ""
-"设置 JDBC 事务隔离级别。查看 <literal>java.sql.Connection</literal> 来了解各"
-"个值的具体意义,但请注意多数数据库都不支持所有的隔离级别。 "
+msgid "Sets the JDBC transaction isolation level. Check <interfacename>java.sql.Connection</interfacename> for meaningful values, but note that most databases do not support all isolation levels and some define additional, non-standard isolations."
+msgstr "设置 JDBC 事务隔离级别。查看 <literal>java.sql.Connection</literal> 来了解各个值的具体意义,但请注意多数数据库都不支持所有的隔离级别。 "
 
 #. Tag: para
 #, no-c-format
 msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>1, 2, 4, 8</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>1, 2, 4, 8</literal> "
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>1, 2, 4, 8</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.connection.autocommit</property>"
-msgstr "hibernate.connection.autocommit"
+msgstr "<property>hibernate.connection.autocommit</property>"
 
 #. Tag: entry
 #, no-c-format
@@ -916,92 +605,44 @@
 msgstr "允许被缓存的 JDBC 连接开启自动提交(autocommit)(不推荐)。"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<property>hibernate.connection.release_mode</property>"
-msgstr "hibernate.connection.release_mode"
+msgstr "<property>hibernate.connection.release_mode</property>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Specifies when Hibernate should release JDBC connections. By default, a JDBC "
-"connection is held until the session is explicitly closed or disconnected. "
-"For an application server JTA datasource, use <literal>after_statement</"
-"literal> to aggressively release connections after every JDBC call. For a "
-"non-JTA connection, it often makes sense to release the connection at the "
-"end of each transaction, by using <literal>after_transaction</literal>. "
-"<literal>auto</literal> will choose <literal>after_statement</literal> for "
-"the JTA and CMT transaction strategies and <literal>after_transaction</"
-"literal> for the JDBC transaction strategy."
-msgstr ""
-"指定 Hibernate 在何时释放 JDBC 连接。默认情况下,直到 Session 被显式关闭或被断"
-"开连接时,才会释放 JDBC 连接。对于应用程序服务器的 JTA 数据源,你应当使用  "
-"<literal>after_statement</literal>,这样在每次 JDBC 调用后,都会主动的释放连"
-"接。对于非 JTA 的连接,使用 <literal>after_transaction</literal> 在每个事务结"
-"束时释放连接是合理的。<literal>auto</literal> 将为 JTA 和 CMT 事务策略选择 "
-"<literal>after_statement</literal>,为JDBC事务策略选择 "
-"<literal>after_transaction</literal>。"
+msgid "Specifies when Hibernate should release JDBC connections. By default, a JDBC connection is held until the session is explicitly closed or disconnected. For an application server JTA datasource, use <literal>after_statement</literal> to aggressively release connections after every JDBC call. For a non-JTA connection, it often makes sense to release the connection at the end of each transaction, by using <literal>after_transaction</literal>. <literal>auto</literal> will choose <literal>after_statement</literal> for the JTA and CMT transaction strategies and <literal>after_transaction</literal> for the JDBC transaction strategy."
+msgstr "指定 Hibernate 在何时释放 JDBC 连接。默认情况下,直到 Session 被显式关闭或被断开连接时,才会释放 JDBC 连接。对于应用程序服务器的 JTA 数据源,你应当使用  <literal>after_statement</literal>,这样在每次 JDBC 调用后,都会主动的释放连接。对于非 JTA 的连接,使用 <literal>after_transaction</literal> 在每个事务结束时释放连接是合理的。<literal>auto</literal> 将为 JTA 和 CMT 事务策略选择 <literal>after_statement</literal>,为JDBC事务策略选择 <literal>after_transaction</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>auto</literal> (default) "
-"| <literal>on_close</literal> | <literal>after_transaction</literal> | "
-"<literal>after_statement</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>auto</literal> (默认) | "
-"<literal>on_close</literal> | <literal>after_transaction</literal> | "
-"<literal>after_statement</literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>auto</literal> (default) | <literal>on_close</literal> | <literal>after_transaction</literal> | <literal>after_statement</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>auto</literal> (默认) | <literal>on_close</literal> | <literal>after_transaction</literal> | <literal>after_statement</literal> "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"This setting only affects <literal>Session</literal>s returned from "
-"<literal>SessionFactory.openSession</literal>. For <literal>Session</"
-"literal>s obtained through <literal>SessionFactory.getCurrentSession</"
-"literal>, the <literal>CurrentSessionContext</literal> implementation "
-"configured for use controls the connection release mode for those "
-"<literal>Session</literal>s. See <xref linkend=\"architecture-current-session"
-"\" />"
-msgstr ""
-"注意,这些设置仅对通过 <literal>SessionFactory.openSession</literal> 得到的 "
-"<literal>Session</literal> 起作用。对于通过 <literal>SessionFactory."
-"getCurrentSession</literal> 得到的 <literal>Session</literal>,所配置的 "
-"<literal>CurrentSessionContext</literal> 实现控制这些 <literal>Session</"
-"literal> 的连接释放模式。请参阅"
+#, no-c-format
+msgid "This setting only affects <literal>Session</literal>s returned from <literal>SessionFactory.openSession</literal>. For <literal>Session</literal>s obtained through <literal>SessionFactory.getCurrentSession</literal>, the <literal>CurrentSessionContext</literal> implementation configured for use controls the connection release mode for those <literal>Session</literal>s. See <xref linkend=\"architecture-current-session\" />"
+msgstr "注意,这些设置仅对通过 <literal>SessionFactory.openSession</literal> 得到的 <literal>Session</literal> 起作用。对于通过 <literal>SessionFactory.getCurrentSession</literal> 得到的 <literal>Session</literal>,所配置的 <literal>CurrentSessionContext</literal> 实现控制这些 <literal>Session</literal> 的连接释放模式。请参阅 <xref linkend=\"architecture-current-session\" />。 "
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"<property>hibernate.connection.</property><emphasis>&lt;propertyName&gt;</"
-"emphasis>"
-msgstr ""
-"<property>hibernate.connection.</property><emphasis>&lt;propertyName&gt;</"
-"emphasis>"
+msgid "<property>hibernate.connection.</property><emphasis>&lt;propertyName&gt;</emphasis>"
+msgstr "<property>hibernate.connection.</property><emphasis>&lt;propertyName&gt;</emphasis>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Pass the JDBC property <emphasis>&lt;propertyName&gt;</emphasis> to "
-"<literal>DriverManager.getConnection()</literal>."
-msgstr ""
-"把 JDBC 属性 <emphasis>&lt;propertyName&gt;</emphasis> 传递给 "
-"<literal>DriverManager.getConnection()</literal>。"
+msgid "Pass the JDBC property <emphasis>&lt;propertyName&gt;</emphasis> to <literal>DriverManager.getConnection()</literal>."
+msgstr "把 JDBC 属性 <emphasis>&lt;propertyName&gt;</emphasis> 传递给 <literal>DriverManager.getConnection()</literal>。"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"<property>hibernate.jndi.</property><emphasis>&lt;propertyName&gt;</emphasis>"
-msgstr ""
-"<property>hibernate.jndi.</property><emphasis>&lt;propertyName&gt;</emphasis>"
+msgid "<property>hibernate.jndi.</property><emphasis>&lt;propertyName&gt;</emphasis>"
+msgstr "<property>hibernate.jndi.</property><emphasis>&lt;propertyName&gt;</emphasis>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Pass the property <emphasis>&lt;propertyName&gt;</emphasis> to the JNDI "
-"<literal>InitialContextFactory</literal>."
-msgstr ""
-"把 <emphasis>&lt;propertyName&gt;</emphasis> 属性传递给 JNDI "
-"<literal>InitialContextFactory</literal>。"
+msgid "Pass the property <emphasis>&lt;propertyName&gt;</emphasis> to the JNDI <literal>InitialContextFactory</literal>."
+msgstr "把 <emphasis>&lt;propertyName&gt;</emphasis> 属性传递给 JNDI <literal>InitialContextFactory</literal>。"
 
 #. Tag: title
 #, no-c-format
@@ -1009,9 +650,9 @@
 msgstr "Hibernate 缓存属性"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hibernate.cache.provider_class</literal>"
-msgstr "hibernate.cache.provider_class"
+msgstr "<literal>hibernate.cache.provider_class</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1020,81 +661,58 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
-"CacheProvider</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>classname.of."
-"CacheProvider</literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.CacheProvider</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>classname.of.CacheProvider</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hibernate.cache.use_minimal_puts</literal>"
-msgstr "hibernate.cache.use_minimal_puts"
+msgstr "<literal>hibernate.cache.use_minimal_puts</literal>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Optimizes second-level cache operation to minimize writes, at the cost of "
-"more frequent reads. This setting is most useful for clustered caches and, "
-"in Hibernate3, is enabled by default for clustered cache implementations."
-msgstr ""
-"以频繁的读操作为代价,优化二级缓存来最小化写操作。在 Hibernate3 中,这个设置"
-"对的集群缓存非常有用,对集群缓存的实现而言,默认是开启的。 "
+msgid "Optimizes second-level cache operation to minimize writes, at the cost of more frequent reads. This setting is most useful for clustered caches and, in Hibernate3, is enabled by default for clustered cache implementations."
+msgstr "以频繁的读操作为代价,优化二级缓存来最小化写操作。在 Hibernate3 中,这个设置对的集群缓存非常有用,对集群缓存的实现而言,默认是开启的。 "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hibernate.cache.use_query_cache</literal>"
-msgstr "hibernate.cache.use_query_cache"
+msgstr "<literal>hibernate.cache.use_query_cache</literal>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Enables the query cache. Individual queries still have to be set cachable."
+msgid "Enables the query cache. Individual queries still have to be set cachable."
 msgstr "允许查询缓存,个别查询仍然需要被设置为可缓存的。 "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hibernate.cache.use_second_level_cache</literal>"
-msgstr "hibernate.cache.use_second_level_cache"
+msgstr "<literal>hibernate.cache.use_second_level_cache</literal>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Can be used to completely disable the second level cache, which is enabled "
-"by default for classes which specify a <literal>&lt;cache&gt;</literal> "
-"mapping."
-msgstr ""
-"能用来完全禁止使用二级缓存。对那些在类的映射定义中指定 <literal>&lt;cache&gt;"
-"</literal> 的类,会默认开启二级缓存。 "
+msgid "Can be used to completely disable the second level cache, which is enabled by default for classes which specify a <literal>&lt;cache&gt;</literal> mapping."
+msgstr "能用来完全禁止使用二级缓存。对那些在类的映射定义中指定 <literal>&lt;cache&gt;</literal> 的类,会默认开启二级缓存。 "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hibernate.cache.query_cache_factory</literal>"
-msgstr "hibernate.cache.query_cache_factory"
+msgstr "<literal>hibernate.cache.query_cache_factory</literal>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"The classname of a custom <literal>QueryCache</literal> interface, defaults "
-"to the built-in <literal>StandardQueryCache</literal>."
-msgstr ""
-"自定义实现 <literal>QueryCache</literal> 接口的类名,默认为内建的 "
-"<literal>StandardQueryCache</literal>。"
+msgid "The classname of a custom <literal>QueryCache</literal> interface, defaults to the built-in <literal>StandardQueryCache</literal>."
+msgstr "自定义实现 <literal>QueryCache</literal> 接口的类名,默认为内建的 <literal>StandardQueryCache</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.QueryCache</"
-"literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>classname.of.QueryCache</"
-"literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.QueryCache</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>classname.of.QueryCache</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hibernate.cache.region_prefix</literal>"
-msgstr "hibernate.cache.region_prefix"
+msgstr "<literal>hibernate.cache.region_prefix</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1107,15 +725,13 @@
 msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>prefix</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hibernate.cache.use_structured_entries</literal>"
-msgstr "hibernate.cache.use_structured_entries"
+msgstr "<literal>hibernate.cache.use_structured_entries</literal>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Forces Hibernate to store data in the second-level cache in a more human-"
-"friendly format."
+msgid "Forces Hibernate to store data in the second-level cache in a more human-friendly format."
 msgstr "强制 Hibernate 以更人性化的格式将数据存入二级缓存。"
 
 #. Tag: title
@@ -1124,101 +740,64 @@
 msgstr "Hibernate 事务属性"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hibernate.transaction.factory_class</literal>"
-msgstr "hibernate.transaction.factory_class"
+msgstr "<literal>hibernate.transaction.factory_class</literal>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"The classname of a <literal>TransactionFactory</literal> to use with "
-"Hibernate <literal>Transaction</literal> API (defaults to "
-"<literal>JDBCTransactionFactory</literal>)."
-msgstr ""
-"一个 <literal>TransactionFactory</literal> 的类名,用于 Hibernate "
-"<literal>Transaction</literal> API(默认为 <literal>JDBCTransactionFactory</"
-"literal>)。"
+msgid "The classname of a <literal>TransactionFactory</literal> to use with Hibernate <literal>Transaction</literal> API (defaults to <literal>JDBCTransactionFactory</literal>)."
+msgstr "一个 <literal>TransactionFactory</literal> 的类名,用于 Hibernate <literal>Transaction</literal> API(默认为 <literal>JDBCTransactionFactory</literal>)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
-"TransactionFactory</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>classname.of."
-"TransactionFactory</literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.TransactionFactory</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>classname.of.TransactionFactory</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>jta.UserTransaction</literal>"
-msgstr "jta.UserTransaction"
+msgstr "<literal>jta.UserTransaction</literal>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"A JNDI name used by <literal>JTATransactionFactory</literal> to obtain the "
-"JTA <literal>UserTransaction</literal> from the application server."
-msgstr ""
-"一个 JNDI 名字,被 <literal>JTATransactionFactory</literal> 用来从应用服务器"
-"获取 JTA   <literal>UserTransaction</literal>。"
+msgid "A JNDI name used by <literal>JTATransactionFactory</literal> to obtain the JTA <literal>UserTransaction</literal> from the application server."
+msgstr "一个 JNDI 名字,被 <literal>JTATransactionFactory</literal> 用来从应用服务器获取 JTA   <literal>UserTransaction</literal>。"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hibernate.transaction. manager_lookup_class</literal>"
-msgstr "hibernate.transaction.manager_lookup_class"
+msgstr "<literal>hibernate.transaction. manager_lookup_class</literal>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"The classname of a <literal>TransactionManagerLookup</literal>. It is "
-"required when JVM-level caching is enabled or when using hilo generator in a "
-"JTA environment."
-msgstr ""
-"一个 <literal>TransactionManagerLookup</literal> 的类名 — 当使用 JVM 级缓存,"
-"或在 JTA 环境中使用 hilo 生成器的时候需要该类。 "
+msgid "The classname of a <literal>TransactionManagerLookup</literal>. It is required when JVM-level caching is enabled or when using hilo generator in a JTA environment."
+msgstr "一个 <literal>TransactionManagerLookup</literal> 的类名 — 当使用 JVM 级缓存,或在 JTA 环境中使用 hilo 生成器的时候需要该类。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
-"TransactionManagerLookup</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>classname.of."
-"TransactionManagerLookup</literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.TransactionManagerLookup</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>classname.of.TransactionManagerLookup</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hibernate.transaction. flush_before_completion</literal>"
-msgstr "hibernate.transaction.flush_before_completion"
+msgstr "<literal>hibernate.transaction. flush_before_completion</literal>"
 
 #. Tag: entry
-#, fuzzy, no-c-format
-msgid ""
-"If enabled, the session will be automatically flushed during the before "
-"completion phase of the transaction. Built-in and automatic session context "
-"management is preferred, see <xref linkend=\"architecture-current-session\" /"
-">."
-msgstr ""
-"如果开启,session 在事务完成后将被自动清洗(flush)。现在更好的方法是使用自"
-"动 session 上下文管理。请参见 <xref linkend=\"architecture-current-session\"/"
-">。"
+#, no-c-format
+msgid "If enabled, the session will be automatically flushed during the before completion phase of the transaction. Built-in and automatic session context management is preferred, see <xref linkend=\"architecture-current-session\" />."
+msgstr "如果开启,session 在事务完成后将被自动清洗(flush)。现在更好的方法是使用自动 session 上下文管理。请参见 <xref linkend=\"architecture-current-session\"/>。 "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hibernate.transaction. auto_close_session</literal>"
-msgstr "hibernate.transaction.auto_close_session"
+msgstr "<literal>hibernate.transaction. auto_close_session</literal>"
 
 #. Tag: entry
-#, fuzzy, no-c-format
-msgid ""
-"If enabled, the session will be automatically closed during the after "
-"completion phase of the transaction. Built-in and automatic session context "
-"management is preferred, see <xref linkend=\"architecture-current-session\" /"
-">."
-msgstr ""
-"如果开启,session 在事务完成后将被自动关闭。 现在更好的方法是使用自动 "
-"session 上下文管理。请参见 <xref linkend=\"architecture-current-session\"/"
-">。 "
+#, no-c-format
+msgid "If enabled, the session will be automatically closed during the after completion phase of the transaction. Built-in and automatic session context management is preferred, see <xref linkend=\"architecture-current-session\" />."
+msgstr "如果开启,session 在事务完成后将被自动关闭。 现在更好的方法是使用自动 session 上下文管理。请参见 <xref linkend=\"architecture-current-session\"/>。  "
 
 #. Tag: title
 #, no-c-format
@@ -1226,35 +805,24 @@
 msgstr "其他属性"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hibernate. current_session_context_class</literal>"
-msgstr "hibernate.current_session_context_class"
+msgstr "<literal>hibernate. current_session_context_class</literal>"
 
 #. Tag: entry
-#, fuzzy, no-c-format
-msgid ""
-"Supply a custom strategy for the scoping of the \"current\" "
-"<literal>Session</literal>. See <xref linkend=\"architecture-current-session"
-"\" /> for more information about the built-in strategies."
-msgstr ""
-"为\"当前\" <literal>Session</literal> 指定一个(自定义的)策略。关于内置策略"
-"的详情,请参见 <xref linkend=\"architecture-current-session\"/>。"
+#, no-c-format
+msgid "Supply a custom strategy for the scoping of the \"current\" <literal>Session</literal>. See <xref linkend=\"architecture-current-session\" /> for more information about the built-in strategies."
+msgstr "为\"当前\" <literal>Session</literal> 指定一个(自定义的)策略。关于内置策略的详情,请参见 <xref linkend=\"architecture-current-session\"/>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>jta</literal> | "
-"<literal>thread</literal> | <literal>managed</literal> | <literal>custom."
-"Class</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>jta</literal> | "
-"<literal>thread</literal> | <literal>managed</literal> | <literal>custom."
-"Class</literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>jta</literal> | <literal>thread</literal> | <literal>managed</literal> | <literal>custom.Class</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>jta</literal> | <literal>thread</literal> | <literal>managed</literal> | <literal>custom.Class</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hibernate.query.factory_class</literal>"
-msgstr "hibernate.query.factory_class"
+msgstr "<literal>hibernate.query.factory_class</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1263,82 +831,48 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>org.hibernate.hql.ast."
-"ASTQueryTranslatorFactory</literal> or <literal>org.hibernate.hql.classic."
-"ClassicQueryTranslatorFactory</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>org.hibernate.hql.ast."
-"ASTQueryTranslatorFactory</literal> 或 <literal>org.hibernate.hql.classic."
-"ClassicQueryTranslatorFactory</literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>org.hibernate.hql.ast.ASTQueryTranslatorFactory</literal> or <literal>org.hibernate.hql.classic.ClassicQueryTranslatorFactory</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>org.hibernate.hql.ast.ASTQueryTranslatorFactory</literal> 或 <literal>org.hibernate.hql.classic.ClassicQueryTranslatorFactory</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hibernate.query.substitutions</literal>"
-msgstr "hibernate.query.substitutions"
+msgstr "<literal>hibernate.query.substitutions</literal>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Is used to map from tokens in Hibernate queries to SQL tokens (tokens might "
-"be function or literal names, for example)."
-msgstr ""
-"将 Hibernate 查询中的符号映射到 SQL 查询中的符号(符号可能是函数名或常量名"
-"字)。  "
+msgid "Is used to map from tokens in Hibernate queries to SQL tokens (tokens might be function or literal names, for example)."
+msgstr "将 Hibernate 查询中的符号映射到 SQL 查询中的符号(符号可能是函数名或常量名字)。  "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>hqlLiteral=SQL_LITERAL, "
-"hqlFunction=SQLFUNC</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>hqlLiteral=SQL_LITERAL, "
-"hqlFunction=SQLFUNC</literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hibernate.hbm2ddl.auto</literal>"
-msgstr "hibernate.hbm2ddl.auto"
+msgstr "<literal>hibernate.hbm2ddl.auto</literal>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Automatically validates or exports schema DDL to the database when the "
-"<literal>SessionFactory</literal> is created. With <literal>create-drop</"
-"literal>, the database schema will be dropped when the "
-"<literal>SessionFactory</literal> is closed explicitly."
-msgstr ""
-"在 <literal>SessionFactory</literal> 创建时,自动检查数据库结构,或者将数据"
-"库 schema 的 DDL 导出到数据库。使用 <literal>create-drop</literal> 时,在显式"
-"关闭 <literal>SessionFactory</literal> 时,将删除掉数据库 schema。 "
+msgid "Automatically validates or exports schema DDL to the database when the <literal>SessionFactory</literal> is created. With <literal>create-drop</literal>, the database schema will be dropped when the <literal>SessionFactory</literal> is closed explicitly."
+msgstr "在 <literal>SessionFactory</literal> 创建时,自动检查数据库结构,或者将数据库 schema 的 DDL 导出到数据库。使用 <literal>create-drop</literal> 时,在显式关闭 <literal>SessionFactory</literal> 时,将删除掉数据库 schema。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis role=\"strong\">e.g.</emphasis> <literal>validate</literal> | "
-"<literal>update</literal> | <literal>create</literal> | <literal>create-"
-"drop</literal>"
-msgstr ""
-"<emphasis role=\"strong\">例如:</emphasis><literal>validate</literal> | "
-"<literal>update</literal> | <literal>create</literal> | <literal>create-"
-"drop</literal> "
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>validate</literal> | <literal>update</literal> | <literal>create</literal> | <literal>create-drop</literal>"
+msgstr "<emphasis role=\"strong\">例如:</emphasis><literal>validate</literal> | <literal>update</literal> | <literal>create</literal> | <literal>create-drop</literal> "
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>hibernate.cglib. use_reflection_optimizer</literal>"
-msgstr "hibernate.cglib.use_reflection_optimizer"
+msgstr "<literal>hibernate.cglib. use_reflection_optimizer</literal>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Enables the use of CGLIB instead of runtime reflection (System-level "
-"property). Reflection can sometimes be useful when troubleshooting. "
-"Hibernate always requires CGLIB even if you turn off the optimizer. You "
-"cannot set this property in <literal>hibernate.cfg.xml</literal>."
-msgstr ""
-"开启 CGLIB 来替代运行时反射机制(系统级属性)。反射机制有时在除错时比较有用。"
-"注意即使关闭这个优化,Hibernate 还是需要 CGLIB。你不能在 <literal>hibernate."
-"cfg.xml</literal> 中设置此属性。 "
+msgid "Enables the use of CGLIB instead of runtime reflection (System-level property). Reflection can sometimes be useful when troubleshooting. Hibernate always requires CGLIB even if you turn off the optimizer. You cannot set this property in <literal>hibernate.cfg.xml</literal>."
+msgstr "开启 CGLIB 来替代运行时反射机制(系统级属性)。反射机制有时在除错时比较有用。注意即使关闭这个优化,Hibernate 还是需要 CGLIB。你不能在 <literal>hibernate.cfg.xml</literal> 中设置此属性。 "
 
 #. Tag: title
 #, no-c-format
@@ -1347,17 +881,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Always set the <literal>hibernate.dialect</literal> property to the correct "
-"<literal>org.hibernate.dialect.Dialect</literal> subclass for your database. "
-"If you specify a dialect, Hibernate will use sensible defaults for some of "
-"the other properties listed above. This means that you will not have to "
-"specify them manually."
-msgstr ""
-"你应当总是为你的数据库将 <literal>hibernate.dialect</literal> 属性设置成正确"
-"的  <literal>org.hibernate.dialect.Dialect</literal> 子类。如果你指定一种方"
-"言,Hibernate 将为上面列出的一些属性使用合理的默认值,这样你就不用手工指定它"
-"们。"
+msgid "Always set the <literal>hibernate.dialect</literal> property to the correct <literal>org.hibernate.dialect.Dialect</literal> subclass for your database. If you specify a dialect, Hibernate will use sensible defaults for some of the other properties listed above. This means that you will not have to specify them manually."
+msgstr "你应当总是为你的数据库将 <literal>hibernate.dialect</literal> 属性设置成正确的  <literal>org.hibernate.dialect.Dialect</literal> 子类。如果你指定一种方言,Hibernate 将为上面列出的一些属性使用合理的默认值,这样你就不用手工指定它们。"
 
 #. Tag: title
 #, no-c-format
@@ -1377,12 +902,12 @@
 #. Tag: entry
 #, no-c-format
 msgid "DB2"
-msgstr ""
+msgstr "DB2"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.DB2Dialect</literal>"
-msgstr "org.hibernate.dialect.DB2Dialect"
+msgstr "<literal>org.hibernate.dialect.DB2Dialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1390,9 +915,9 @@
 msgstr "DB2 AS/400"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
-msgstr "org.hibernate.dialect.DB2400Dialect"
+msgstr "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1400,9 +925,9 @@
 msgstr "DB2 OS390"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
-msgstr "org.hibernate.dialect.DB2390Dialect"
+msgstr "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1410,9 +935,9 @@
 msgstr "PostgreSQL"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
-msgstr "org.hibernate.dialect.PostgreSQLDialect"
+msgstr "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1420,9 +945,9 @@
 msgstr "MySQL"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.MySQLDialect</literal>"
-msgstr "org.hibernate.dialect.MySQLDialect"
+msgstr "<literal>org.hibernate.dialect.MySQLDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1430,9 +955,9 @@
 msgstr "MySQL with InnoDB"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
-msgstr "org.hibernate.dialect.MySQLInnoDBDialect"
+msgstr "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1440,9 +965,9 @@
 msgstr "MySQL with MyISAM"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
-msgstr "org.hibernate.dialect.MySQLMyISAMDialect"
+msgstr "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1450,9 +975,9 @@
 msgstr "Oracle(any version)"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.OracleDialect</literal>"
-msgstr "org.hibernate.dialect.OracleDialect"
+msgstr "<literal>org.hibernate.dialect.OracleDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1460,9 +985,9 @@
 msgstr "Oracle 9i"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
-msgstr "org.hibernate.dialect.Oracle9iDialect"
+msgstr "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1470,9 +995,9 @@
 msgstr "Oracle 10g"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
-msgstr "org.hibernate.dialect.Oracle10gDialect"
+msgstr "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1480,9 +1005,9 @@
 msgstr "Sybase"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.SybaseDialect</literal>"
-msgstr "org.hibernate.dialect.SybaseDialect"
+msgstr "<literal>org.hibernate.dialect.SybaseDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1490,9 +1015,9 @@
 msgstr "Sybase Anywhere"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
-msgstr "org.hibernate.dialect.SybaseAnywhereDialect"
+msgstr "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1500,9 +1025,9 @@
 msgstr "Microsoft SQL Server"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
-msgstr "org.hibernate.dialect.SQLServerDialect"
+msgstr "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1510,9 +1035,9 @@
 msgstr "SAP DB"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
-msgstr "org.hibernate.dialect.SAPDBDialect"
+msgstr "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1520,9 +1045,9 @@
 msgstr "Informix"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.InformixDialect</literal>"
-msgstr "org.hibernate.dialect.InformixDialect"
+msgstr "<literal>org.hibernate.dialect.InformixDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1530,9 +1055,9 @@
 msgstr "HypersonicSQL"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.HSQLDialect</literal>"
-msgstr "org.hibernate.dialect.HSQLDialect"
+msgstr "<literal>org.hibernate.dialect.HSQLDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1540,9 +1065,9 @@
 msgstr "Ingres"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.IngresDialect</literal>"
-msgstr "org.hibernate.dialect.IngresDialect"
+msgstr "<literal>org.hibernate.dialect.IngresDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1550,9 +1075,9 @@
 msgstr "Progress"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.ProgressDialect</literal>"
-msgstr "org.hibernate.dialect.ProgressDialect"
+msgstr "<literal>org.hibernate.dialect.ProgressDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1560,9 +1085,9 @@
 msgstr "Mckoi SQL"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.MckoiDialect</literal>"
-msgstr "org.hibernate.dialect.MckoiDialect"
+msgstr "<literal>org.hibernate.dialect.MckoiDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1570,9 +1095,9 @@
 msgstr "Interbase"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
-msgstr "org.hibernate.dialect.InterbaseDialect"
+msgstr "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1580,9 +1105,9 @@
 msgstr "Pointbase"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
-msgstr "org.hibernate.dialect.PointbaseDialect"
+msgstr "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1590,9 +1115,9 @@
 msgstr "FrontBase"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
-msgstr "org.hibernate.dialect.FrontbaseDialect"
+msgstr "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1600,9 +1125,9 @@
 msgstr "Firebird"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
-msgstr "org.hibernate.dialect.FirebirdDialect"
+msgstr "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
 
 #. Tag: title
 #, no-c-format
@@ -1611,39 +1136,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If your database supports ANSI, Oracle or Sybase style outer joins, "
-"<emphasis>outer join fetching</emphasis> will often increase performance by "
-"limiting the number of round trips to and from the database. This is, "
-"however, at the cost of possibly more work performed by the database itself. "
-"Outer join fetching allows a whole graph of objects connected by many-to-"
-"one, one-to-many, many-to-many and one-to-one associations to be retrieved "
-"in a single SQL <literal>SELECT</literal>."
-msgstr ""
-"如果你的数据库支持 ANSI、Oracle 或 Sybase 风格的外连接,<emphasis>外连接抓取"
-"</emphasis>通常能通过限制往返数据库次数(更多的工作交由数据库自己来完成)来提"
-"高效率。外连接抓取允许在单个 <literal>SELECT</literal> SQL 语句中, 通过 "
-"many-to-one、one-to-many、many-to-many 和 one-to-one 关联获取连接对象的整个对"
-"象图。"
+msgid "If your database supports ANSI, Oracle or Sybase style outer joins, <emphasis>outer join fetching</emphasis> will often increase performance by limiting the number of round trips to and from the database. This is, however, at the cost of possibly more work performed by the database itself. Outer join fetching allows a whole graph of objects connected by many-to-one, one-to-many, many-to-many and one-to-one associations to be retrieved in a single SQL <literal>SELECT</literal>."
+msgstr "如果你的数据库支持 ANSI、Oracle 或 Sybase 风格的外连接,<emphasis>外连接抓取</emphasis>通常能通过限制往返数据库次数(更多的工作交由数据库自己来完成)来提高效率。外连接抓取允许在单个 <literal>SELECT</literal> SQL 语句中, 通过 many-to-one、one-to-many、many-to-many 和 one-to-one 关联获取连接对象的整个对象图。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Outer join fetching can be disabled <emphasis>globally</emphasis> by setting "
-"the property <literal>hibernate.max_fetch_depth</literal> to <literal>0</"
-"literal>. A setting of <literal>1</literal> or higher enables outer join "
-"fetching for one-to-one and many-to-one associations that have been mapped "
-"with <literal>fetch=\"join\"</literal>."
-msgstr ""
-"将 <literal>hibernate.max_fetch_depth</literal> 设为 <literal>0</literal> 能"
-"在<emphasis>全局</emphasis> 范围内禁止外连接抓取。设为 <literal>1</literal> "
-"或更高值能启用 one-to-one 和 many-to-oneouter 关联的外连接抓取,它们通过 "
-"<literal>fetch=\"join\"</literal> 来映射。 "
+msgid "Outer join fetching can be disabled <emphasis>globally</emphasis> by setting the property <literal>hibernate.max_fetch_depth</literal> to <literal>0</literal>. A setting of <literal>1</literal> or higher enables outer join fetching for one-to-one and many-to-one associations that have been mapped with <literal>fetch=\"join\"</literal>."
+msgstr "将 <literal>hibernate.max_fetch_depth</literal> 设为 <literal>0</literal> 能在<emphasis>全局</emphasis> 范围内禁止外连接抓取。设为 <literal>1</literal> 或更高值能启用 one-to-one 和 many-to-oneouter 关联的外连接抓取,它们通过 <literal>fetch=\"join\"</literal> 来映射。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "See <xref linkend=\"performance-fetching\" /> for more information."
-msgstr "参见 <xref linkend=\"performance-fetching\"/> 获得更多信息。"
+msgstr "参见 <xref linkend=\"performance-fetching\"/> 获得更多信息。 "
 
 #. Tag: title
 #, no-c-format
@@ -1652,17 +1156,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Oracle limits the size of <literal>byte</literal> arrays that can be passed "
-"to and/or from its JDBC driver. If you wish to use large instances of "
-"<literal>binary</literal> or <literal>serializable</literal> type, you "
-"should enable <literal>hibernate.jdbc.use_streams_for_binary</literal>. "
-"<emphasis>This is a system-level setting only.</emphasis>"
-msgstr ""
-"Oracle 限制那些通过 JDBC 驱动传输的<literal>字节</literal>数组的数目。如果你"
-"希望使用<literal>二进值(binary)</literal>或 <literal>可序列化的"
-"(serializable)</literal>类型的大对象,你应该开启 <literal>hibernate.jdbc."
-"use_streams_for_binary</literal> 属性。<emphasis>这是系统级属性。</emphasis> "
+msgid "Oracle limits the size of <literal>byte</literal> arrays that can be passed to and/or from its JDBC driver. If you wish to use large instances of <literal>binary</literal> or <literal>serializable</literal> type, you should enable <literal>hibernate.jdbc.use_streams_for_binary</literal>. <emphasis>This is a system-level setting only.</emphasis>"
+msgstr "Oracle 限制那些通过 JDBC 驱动传输的<literal>字节</literal>数组的数目。如果你希望使用<literal>二进值(binary)</literal>或 <literal>可序列化的(serializable)</literal>类型的大对象,你应该开启 <literal>hibernate.jdbc.use_streams_for_binary</literal> 属性。<emphasis>这是系统级属性。</emphasis> "
 
 #. Tag: title
 #, no-c-format
@@ -1670,15 +1165,9 @@
 msgstr "二级缓存与查询缓存"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The properties prefixed by <literal>hibernate.cache</literal> allow you to "
-"use a process or cluster scoped second-level cache system with Hibernate. "
-"See the <xref linkend=\"performance-cache\" /> for more information."
-msgstr ""
-"以 <literal>hibernate.cache</literal> 为前缀的属性允许你在 Hibernate 中,使用"
-"进程或群集范围内的二级缓存系统。参见 <xref linkend=\"performance-cache\"/> 获"
-"取更多的详情."
+#, no-c-format
+msgid "The properties prefixed by <literal>hibernate.cache</literal> allow you to use a process or cluster scoped second-level cache system with Hibernate. See the <xref linkend=\"performance-cache\" /> for more information."
+msgstr "以 <literal>hibernate.cache</literal> 为前缀的属性允许你在 Hibernate 中,使用进程或群集范围内的二级缓存系统。参见 <xref linkend=\"performance-cache\"/> 获取更多的详情. "
 
 #. Tag: title
 #, no-c-format
@@ -1687,26 +1176,17 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You can define new Hibernate query tokens using <literal>hibernate.query."
-"substitutions</literal>. For example:"
-msgstr ""
-"你可以使用 <literal>hibernate.query.substitutions</literal> 在 Hibernate 中定"
-"义新的查询符号。例如: "
+msgid "You can define new Hibernate query tokens using <literal>hibernate.query.substitutions</literal>. For example:"
+msgstr "你可以使用 <literal>hibernate.query.substitutions</literal> 在 Hibernate 中定义新的查询符号。例如: "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"This would cause the tokens <literal>true</literal> and <literal>false</"
-"literal> to be translated to integer literals in the generated SQL."
-msgstr ""
-"将导致符号 <literal>true</literal> 和 <literal>false</literal> 在生成的 SQL "
-"中被翻译成整数常量。"
+msgid "This would cause the tokens <literal>true</literal> and <literal>false</literal> to be translated to integer literals in the generated SQL."
+msgstr "将导致符号 <literal>true</literal> 和 <literal>false</literal> 在生成的 SQL 中被翻译成整数常量。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"This would allow you to rename the SQL <literal>LOWER</literal> function."
+msgid "This would allow you to rename the SQL <literal>LOWER</literal> function."
 msgstr "将允许你重命名 SQL 中的 <literal>LOWER</literal> 函数。"
 
 #. Tag: title
@@ -1716,18 +1196,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If you enable <literal>hibernate.generate_statistics</literal>, Hibernate "
-"exposes a number of metrics that are useful when tuning a running system via "
-"<literal>SessionFactory.getStatistics()</literal>. Hibernate can even be "
-"configured to expose these statistics via JMX. Read the Javadoc of the "
-"interfaces in <literal>org.hibernate.stats</literal> for more information."
-msgstr ""
-"如果你开启 <literal>hibernate.generate_statistics</literal>,那么当你通过  "
-"<literal>SessionFactory.getStatistics()</literal> 调整正在运行的系统时,"
-"Hibernate 将导出大量有用的数据。Hibernate 甚至能被配置成通过 JMX 导出这些统计"
-"信息。参考 <literal>org.hibernate.stats</literal> 中接口的 Javadoc,以获得更"
-"多信息。 "
+msgid "If you enable <literal>hibernate.generate_statistics</literal>, Hibernate exposes a number of metrics that are useful when tuning a running system via <literal>SessionFactory.getStatistics()</literal>. Hibernate can even be configured to expose these statistics via JMX. Read the Javadoc of the interfaces in <literal>org.hibernate.stats</literal> for more information."
+msgstr "如果你开启 <literal>hibernate.generate_statistics</literal>,那么当你通过  <literal>SessionFactory.getStatistics()</literal> 调整正在运行的系统时,Hibernate 将导出大量有用的数据。Hibernate 甚至能被配置成通过 JMX 导出这些统计信息。参考 <literal>org.hibernate.stats</literal> 中接口的 Javadoc,以获得更多信息。 "
 
 #. Tag: title
 #, no-c-format
@@ -1736,42 +1206,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate utilizes <ulink url=\"http://www.slf4j.org/\">Simple Logging "
-"Facade for Java</ulink> (SLF4J) in order to log various system events. SLF4J "
-"can direct your logging output to several logging frameworks (NOP, Simple, "
-"log4j version 1.2, JDK 1.4 logging, JCL or logback) depending on your chosen "
-"binding. In order to setup logging you will need <filename>slf4j-api.jar</"
-"filename> in your classpath together with the jar file for your preferred "
-"binding - <filename>slf4j-log4j12.jar</filename> in the case of Log4J. See "
-"the SLF4J <ulink url=\"http://www.slf4j.org/manual.html\">documentation</"
-"ulink> for more detail. To use Log4j you will also need to place a "
-"<filename>log4j.properties</filename> file in your classpath. An example "
-"properties file is distributed with Hibernate in the <literal>src/</literal> "
-"directory."
-msgstr ""
-"Hibernate 利用 <ulink url=\"http://www.slf4j.org/\">Simple Logging Facade "
-"for Java</ulink> (SLF4J) 来记录不同系统事件的日志。SLF4J 可以根据你选择的绑定"
-"把日志输出到几个日志框架(NOP、Simple、log4j version 1.2、JDK 1.4 logging、"
-"JCL 或 logback)上。为了设置日志,你需要在 classpath 里加入 <filename>slf4j-"
-"api.jar</filename> 和你选择的绑定的 JAR 文件(使用 Log4J 时加入 "
-"<filename>slf4j-log4j12.jar</filename>)。更多的细节请参考 SLF4J <ulink url="
-"\"http://www.slf4j.org/manual.html\">文档</ulink>。要使用 Log4j,你也需要在 "
-"classpath 里加入 <filename>log4j.properties</filename> 文件。Hibernate 里的 "
-"<literal>src/</literal> 目录里带有一个属性文件的例子。"
+msgid "Hibernate utilizes <ulink url=\"http://www.slf4j.org/\">Simple Logging Facade for Java</ulink> (SLF4J) in order to log various system events. SLF4J can direct your logging output to several logging frameworks (NOP, Simple, log4j version 1.2, JDK 1.4 logging, JCL or logback) depending on your chosen binding. In order to setup logging you will need <filename>slf4j-api.jar</filename> in your classpath together with the jar file for your preferred binding - <filename>slf4j-log4j12.jar</filename> in the case of Log4J. See the SLF4J <ulink url=\"http://www.slf4j.org/manual.html\">documentation</ulink> for more detail. To use Log4j you will also need to place a <filename>log4j.properties</filename> file in your classpath. An example properties file is distributed with Hibernate in the <literal>src/</literal> directory."
+msgstr "Hibernate 利用 <ulink url=\"http://www.slf4j.org/\">Simple Logging Facade for Java</ulink> (SLF4J) 来记录不同系统事件的日志。SLF4J 可以根据你选择的绑定把日志输出到几个日志框架(NOP、Simple、log4j version 1.2、JDK 1.4 logging、JCL 或 logback)上。为了设置日志,你需要在 classpath 里加入 <filename>slf4j-api.jar</filename> 和你选择的绑定的 JAR 文件(使用 Log4J 时加入 <filename>slf4j-log4j12.jar</filename>)。更多的细节请参考 SLF4J <ulink url=\"http://www.slf4j.org/manual.html\">文档</ulink>。要使用 Log4j,你也需要在 classpath 里加入 <filename>log4j.properties</filename> 文件。Hibernate 里的 <literal>src/</literal> 目录里带有一个属性文件的例子。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"It is recommended that you familiarize yourself with Hibernate's log "
-"messages. A lot of work has been put into making the Hibernate log as "
-"detailed as possible, without making it unreadable. It is an essential "
-"troubleshooting device. The most interesting log categories are the "
-"following:"
-msgstr ""
-"我们强烈建议你熟悉一下 Hibernate 的日志消息。在不失可读性的前提下,我们做了很"
-"多工作,使 Hibernate 的日志可能地详细。这是必要的查错利器。最令人感兴趣的日志"
-"分类有如下这些:"
+msgid "It is recommended that you familiarize yourself with Hibernate's log messages. A lot of work has been put into making the Hibernate log as detailed as possible, without making it unreadable. It is an essential troubleshooting device. The most interesting log categories are the following:"
+msgstr "我们强烈建议你熟悉一下 Hibernate 的日志消息。在不失可读性的前提下,我们做了很多工作,使 Hibernate 的日志可能地详细。这是必要的查错利器。最令人感兴趣的日志分类有如下这些:"
 
 #. Tag: title
 #, no-c-format
@@ -1789,9 +1230,9 @@
 msgstr "功能"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.SQL</literal>"
-msgstr "org.hibernate.SQL"
+msgstr "<literal>org.hibernate.SQL</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1799,9 +1240,9 @@
 msgstr "在所有 SQL DML 语句被执行时为它们记录日志"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.type</literal>"
-msgstr "org.hibernate.type"
+msgstr "<literal>org.hibernate.type</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1809,9 +1250,9 @@
 msgstr "为所有 JDBC 参数记录日志"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.tool. hbm2ddl</literal>"
-msgstr "org.hibernate.tool.hbm2ddl"
+msgstr "<literal>org.hibernate.tool. hbm2ddl</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1819,22 +1260,19 @@
 msgstr "在所有 SQL DDL 语句执行时为它们记录日志"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.pretty</literal>"
-msgstr "org.hibernate.pretty"
+msgstr "<literal>org.hibernate.pretty</literal>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Log the state of all entities (max 20 entities) associated with the session "
-"at flush time"
-msgstr ""
-"在 session 清洗(flush)时,为所有与其关联的实体(最多 20 个)的状态记录日志"
+msgid "Log the state of all entities (max 20 entities) associated with the session at flush time"
+msgstr "在 session 清洗(flush)时,为所有与其关联的实体(最多 20 个)的状态记录日志"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.cache</literal>"
-msgstr "org.hibernate.cache"
+msgstr "<literal>org.hibernate.cache</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1842,9 +1280,9 @@
 msgstr "为所有二级缓存的活动记录日志"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate. transaction</literal>"
-msgstr "org.hibernate.transaction"
+msgstr "<literal>org.hibernate. transaction</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1852,9 +1290,9 @@
 msgstr "为事务相关的活动记录日志"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.jdbc</literal>"
-msgstr "org.hibernate.jdbc"
+msgstr "<literal>org.hibernate.jdbc</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1862,9 +1300,9 @@
 msgstr "为所有 JDBC 资源的获取记录日志"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.hql. ast.AST</literal>"
-msgstr "org.hibernate.hql.AST"
+msgstr "<literal>org.hibernate.hql. ast.AST</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1872,9 +1310,9 @@
 msgstr "在解析查询的时候,记录 HQL 和 SQL 的 AST 分析日志"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.secure</literal>"
-msgstr "org.hibernate.secure"
+msgstr "<literal>org.hibernate.secure</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -1882,28 +1320,19 @@
 msgstr "为 JAAS 认证请求做日志"
 
 #. Tag: entry
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate</literal>"
-msgstr "JNDI 绑定的 <literal>SessionFactory</literal>"
+msgstr "<literal>org.hibernate</literal>"
 
 #. Tag: entry
 #, no-c-format
-msgid ""
-"Log everything. This is a lot of information but it is useful for "
-"troubleshooting"
+msgid "Log everything. This is a lot of information but it is useful for troubleshooting"
 msgstr "为任何 Hibernate 相关信息记录日志(信息量较大,但对查错非常有帮助)"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"When developing applications with Hibernate, you should almost always work "
-"with <literal>debug</literal> enabled for the category <literal>org."
-"hibernate.SQL</literal>, or, alternatively, the property <literal>hibernate."
-"show_sql</literal> enabled."
-msgstr ""
-"在使用 Hibernate 开发应用程序时,你应当总是为 <literal>org.hibernate.SQL</"
-"literal> 开启 <literal>debug</literal> 级别的日志记录,或者开启 "
-"<literal>hibernate.show_sql</literal> 属性。"
+msgid "When developing applications with Hibernate, you should almost always work with <literal>debug</literal> enabled for the category <literal>org.hibernate.SQL</literal>, or, alternatively, the property <literal>hibernate.show_sql</literal> enabled."
+msgstr "在使用 Hibernate 开发应用程序时,你应当总是为 <literal>org.hibernate.SQL</literal> 开启 <literal>debug</literal> 级别的日志记录,或者开启 <literal>hibernate.show_sql</literal> 属性。"
 
 #. Tag: title
 #, no-c-format
@@ -1912,44 +1341,23 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The interface <literal>org.hibernate.cfg.NamingStrategy</literal> allows you "
-"to specify a \"naming standard\" for database objects and schema elements."
-msgstr ""
-"<literal>org.hibernate.cfg.NamingStrategy</literal> 接口允许你为数据库中的对"
-"象和 schema 元素指定一个“命名标准”。"
+msgid "The interface <literal>org.hibernate.cfg.NamingStrategy</literal> allows you to specify a \"naming standard\" for database objects and schema elements."
+msgstr "<literal>org.hibernate.cfg.NamingStrategy</literal> 接口允许你为数据库中的对象和 schema 元素指定一个“命名标准”。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You can provide rules for automatically generating database identifiers from "
-"Java identifiers or for processing \"logical\" column and table names given "
-"in the mapping file into \"physical\" table and column names. This feature "
-"helps reduce the verbosity of the mapping document, eliminating repetitive "
-"noise (<literal>TBL_</literal> prefixes, for example). The default strategy "
-"used by Hibernate is quite minimal."
-msgstr ""
-"你可能会提供一些通过 Java 标识生成数据库标识或将映射定义文件中\"逻辑\"表/列名"
-"处理成\"物理\"表/列名的规则。这个特性有助于减少冗长的映射定义文件,消除重复内"
-"容(如 <literal>TBL_</literal> 前缀)。Hibernate 使用的缺省策略是相当精简的。"
+msgid "You can provide rules for automatically generating database identifiers from Java identifiers or for processing \"logical\" column and table names given in the mapping file into \"physical\" table and column names. This feature helps reduce the verbosity of the mapping document, eliminating repetitive noise (<literal>TBL_</literal> prefixes, for example). The default strategy used by Hibernate is quite minimal."
+msgstr "你可能会提供一些通过 Java 标识生成数据库标识或将映射定义文件中\"逻辑\"表/列名处理成\"物理\"表/列名的规则。这个特性有助于减少冗长的映射定义文件,消除重复内容(如 <literal>TBL_</literal> 前缀)。Hibernate 使用的缺省策略是相当精简的。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You can specify a different strategy by calling <literal>Configuration."
-"setNamingStrategy()</literal> before adding mappings:"
-msgstr ""
-"在加入映射定义前,你可以调用 <literal>Configuration.setNamingStrategy()</"
-"literal> 指定一个不同的命名策略: "
+msgid "You can specify a different strategy by calling <literal>Configuration.setNamingStrategy()</literal> before adding mappings:"
+msgstr "在加入映射定义前,你可以调用 <literal>Configuration.setNamingStrategy()</literal> 指定一个不同的命名策略: "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>org.hibernate.cfg.ImprovedNamingStrategy</literal> is a built-in "
-"strategy that might be a useful starting point for some applications."
-msgstr ""
-"<literal>org.hibernate.cfg.ImprovedNamingStrategy</literal> 是一个内建的命名"
-"策略,对一些应用程序而言,可能是非常有用的起点。"
+msgid "<literal>org.hibernate.cfg.ImprovedNamingStrategy</literal> is a built-in strategy that might be a useful starting point for some applications."
+msgstr "<literal>org.hibernate.cfg.ImprovedNamingStrategy</literal> 是一个内建的命名策略,对一些应用程序而言,可能是非常有用的起点。"
 
 #. Tag: title
 #, no-c-format
@@ -1958,40 +1366,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"An alternative approach to configuration is to specify a full configuration "
-"in a file named <literal>hibernate.cfg.xml</literal>. This file can be used "
-"as a replacement for the <literal>hibernate.properties</literal> file or, if "
-"both are present, to override properties."
-msgstr ""
-"另一个配置方法是在 <literal>hibernate.cfg.xml</literal> 文件中指定一套完整的"
-"配置。这个文件可以当成 <literal>hibernate.properties</literal> 的替代。若两个"
-"文件同时存在,它将覆盖前者的属性。"
+msgid "An alternative approach to configuration is to specify a full configuration in a file named <literal>hibernate.cfg.xml</literal>. This file can be used as a replacement for the <literal>hibernate.properties</literal> file or, if both are present, to override properties."
+msgstr "另一个配置方法是在 <literal>hibernate.cfg.xml</literal> 文件中指定一套完整的配置。这个文件可以当成 <literal>hibernate.properties</literal> 的替代。若两个文件同时存在,它将覆盖前者的属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The XML configuration file is by default expected to be in the root of your "
-"<literal>CLASSPATH</literal>. Here is an example:"
-msgstr ""
-"XML 配置文件被默认是放在 <literal>CLASSPATH</literal> 的根目录下。下面是一个"
-"例子: "
+msgid "The XML configuration file is by default expected to be in the root of your <literal>CLASSPATH</literal>. Here is an example:"
+msgstr "XML 配置文件被默认是放在 <literal>CLASSPATH</literal> 的根目录下。下面是一个例子: "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The advantage of this approach is the externalization of the mapping file "
-"names to configuration. The <literal>hibernate.cfg.xml</literal> is also "
-"more convenient once you have to tune the Hibernate cache. It is your choice "
-"to use either <literal>hibernate.properties</literal> or <literal>hibernate."
-"cfg.xml</literal>. Both are equivalent, except for the above mentioned "
-"benefits of using the XML syntax."
-msgstr ""
-"如你所见,这个方法优势在于,在配置文件中指出了映射定义文件的名字。一旦你需要"
-"调整 Hibernate 的缓存,<literal>hibernate.cfg.xml</literal> 也是更方便。注"
-"意,使用 <literal>hibernate.properties</literal> 还是 <literal>hibernate.cfg."
-"xml</literal> 完全是由你来决定,除了上面提到的 XML 语法的优势之外,两者是等价"
-"的。 "
+msgid "The advantage of this approach is the externalization of the mapping file names to configuration. The <literal>hibernate.cfg.xml</literal> is also more convenient once you have to tune the Hibernate cache. It is your choice to use either <literal>hibernate.properties</literal> or <literal>hibernate.cfg.xml</literal>. Both are equivalent, except for the above mentioned benefits of using the XML syntax."
+msgstr "如你所见,这个方法优势在于,在配置文件中指出了映射定义文件的名字。一旦你需要调整 Hibernate 的缓存,<literal>hibernate.cfg.xml</literal> 也是更方便。注意,使用 <literal>hibernate.properties</literal> 还是 <literal>hibernate.cfg.xml</literal> 完全是由你来决定,除了上面提到的 XML 语法的优势之外,两者是等价的。 "
 
 #. Tag: para
 #, no-c-format
@@ -2015,78 +1401,28 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis>Container-managed datasources</emphasis>: Hibernate can use JDBC "
-"connections managed by the container and provided through JNDI. Usually, a "
-"JTA compatible <literal>TransactionManager</literal> and a "
-"<literal>ResourceManager</literal> take care of transaction management "
-"(CMT), especially distributed transaction handling across several "
-"datasources. You can also demarcate transaction boundaries programmatically "
-"(BMT), or you might want to use the optional Hibernate <literal>Transaction</"
-"literal> API for this to keep your code portable."
-msgstr ""
-"<emphasis>容器管理的数据源(Container-managed datasources)</emphasis>: "
-"Hibernate 能使用通过容器管理,并由 JNDI 提供的 JDBC 连接。通常,特别是当处理"
-"多个数据源的分布式事务的时候,由一个 JTA 兼容的 <literal>TransactionManager</"
-"literal> 和一个 <literal>ResourceManager</literal> 来处理事务管理(CMT,容器"
-"管理的事务)。当然你可以通过 编程方式来划分事务边界(BMT,Bean 管理的事务)。"
-"或者为了代码的可移植性,你也也许会想使用可选的 Hibernate "
-"<literal>Transaction</literal> API。 "
+msgid "<emphasis>Container-managed datasources</emphasis>: Hibernate can use JDBC connections managed by the container and provided through JNDI. Usually, a JTA compatible <literal>TransactionManager</literal> and a <literal>ResourceManager</literal> take care of transaction management (CMT), especially distributed transaction handling across several datasources. You can also demarcate transaction boundaries programmatically (BMT), or you might want to use the optional Hibernate <literal>Transaction</literal> API for this to keep your code portable."
+msgstr "<emphasis>容器管理的数据源(Container-managed datasources)</emphasis>: Hibernate 能使用通过容器管理,并由 JNDI 提供的 JDBC 连接。通常,特别是当处理多个数据源的分布式事务的时候,由一个 JTA 兼容的 <literal>TransactionManager</literal> 和一个 <literal>ResourceManager</literal> 来处理事务管理(CMT,容器管理的事务)。当然你可以通过 编程方式来划分事务边界(BMT,Bean 管理的事务)。或者为了代码的可移植性,你也也许会想使用可选的 Hibernate <literal>Transaction</literal> API。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis>Automatic JNDI binding</emphasis>: Hibernate can bind its "
-"<literal>SessionFactory</literal> to JNDI after startup."
-msgstr ""
-"<emphasis>自动 JNDI 绑定</emphasis>:Hibernate 可以在启动后将 "
-"<literal>SessionFactory</literal> 绑定到 JNDI。"
+msgid "<emphasis>Automatic JNDI binding</emphasis>: Hibernate can bind its <literal>SessionFactory</literal> to JNDI after startup."
+msgstr "<emphasis>自动 JNDI 绑定</emphasis>:Hibernate 可以在启动后将 <literal>SessionFactory</literal> 绑定到 JNDI。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis>JTA Session binding:</emphasis> the Hibernate <literal>Session</"
-"literal> can be automatically bound to the scope of JTA transactions. Simply "
-"lookup the <literal>SessionFactory</literal> from JNDI and get the current "
-"<literal>Session</literal>. Let Hibernate manage flushing and closing the "
-"<literal>Session</literal> when your JTA transaction completes. Transaction "
-"demarcation is either declarative (CMT) or programmatic (BMT/"
-"UserTransaction)."
-msgstr ""
-"<emphasis>JTA Session 绑定:</emphasis> Hibernate <literal>Session</literal> "
-"可以自动绑定到 JTA 事务作用的范围。只需简单地从 JNDI 查找 "
-"<literal>SessionFactory</literal> 并获得当前的 <literal>Session</literal>。"
-"当 JTA 事务完成时,让 Hibernate来处理 <literal>Session</literal> 的清洗"
-"(flush)与关闭。事务的划分可以是声明式的(CMT),也可以是编程式的(BMT/"
-"UserTransaction)。 "
+msgid "<emphasis>JTA Session binding:</emphasis> the Hibernate <literal>Session</literal> can be automatically bound to the scope of JTA transactions. Simply lookup the <literal>SessionFactory</literal> from JNDI and get the current <literal>Session</literal>. Let Hibernate manage flushing and closing the <literal>Session</literal> when your JTA transaction completes. Transaction demarcation is either declarative (CMT) or programmatic (BMT/UserTransaction)."
+msgstr "<emphasis>JTA Session 绑定:</emphasis> Hibernate <literal>Session</literal> 可以自动绑定到 JTA 事务作用的范围。只需简单地从 JNDI 查找 <literal>SessionFactory</literal> 并获得当前的 <literal>Session</literal>。当 JTA 事务完成时,让 Hibernate来处理 <literal>Session</literal> 的清洗(flush)与关闭。事务的划分可以是声明式的(CMT),也可以是编程式的(BMT/UserTransaction)。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis>JMX deployment:</emphasis> if you have a JMX capable application "
-"server (e.g. JBoss AS), you can choose to deploy Hibernate as a managed "
-"MBean. This saves you the one line startup code to build your "
-"<literal>SessionFactory</literal> from a <literal>Configuration</literal>. "
-"The container will startup your <literal>HibernateService</literal> and also "
-"take care of service dependencies (datasource has to be available before "
-"Hibernate starts, etc)."
-msgstr ""
-"<emphasis>JMX 部署:</emphasis> 如果你使用支持 JMX 应用程序服务器(如,JBoss "
-"AS),那么你可以选择将 Hibernate 部署成托管 MBean。这将为你省去一行从"
-"<literal>Configuration</literal> 构建 <literal>SessionFactory</literal> 的启"
-"动代码。容器将启动你的 <literal>HibernateService</literal>,并完美地处理好服"
-"务间的依赖关系(在 Hibernate 启动前,数据源必须是可用的,等等)。 "
+msgid "<emphasis>JMX deployment:</emphasis> if you have a JMX capable application server (e.g. JBoss AS), you can choose to deploy Hibernate as a managed MBean. This saves you the one line startup code to build your <literal>SessionFactory</literal> from a <literal>Configuration</literal>. The container will startup your <literal>HibernateService</literal> and also take care of service dependencies (datasource has to be available before Hibernate starts, etc)."
+msgstr "<emphasis>JMX 部署:</emphasis> 如果你使用支持 JMX 应用程序服务器(如,JBoss AS),那么你可以选择将 Hibernate 部署成托管 MBean。这将为你省去一行从<literal>Configuration</literal> 构建 <literal>SessionFactory</literal> 的启动代码。容器将启动你的 <literal>HibernateService</literal>,并完美地处理好服务间的依赖关系(在 Hibernate 启动前,数据源必须是可用的,等等)。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Depending on your environment, you might have to set the configuration "
-"option <literal>hibernate.connection.aggressive_release</literal> to true if "
-"your application server shows \"connection containment\" exceptions."
-msgstr ""
-"如果应用程序服务器抛出 \"connection containment\" 异常,根据你的环境,也许该"
-"将配置属性 <literal>hibernate.connection.release_mode</literal> 设为 "
-"<literal>after_statement</literal>。"
+msgid "Depending on your environment, you might have to set the configuration option <literal>hibernate.connection.aggressive_release</literal> to true if your application server shows \"connection containment\" exceptions."
+msgstr "如果应用程序服务器抛出 \"connection containment\" 异常,根据你的环境,也许该将配置属性 <literal>hibernate.connection.release_mode</literal> 设为 <literal>after_statement</literal>。"
 
 #. Tag: title
 #, no-c-format
@@ -2095,33 +1431,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The Hibernate <literal>Session</literal> API is independent of any "
-"transaction demarcation system in your architecture. If you let Hibernate "
-"use JDBC directly through a connection pool, you can begin and end your "
-"transactions by calling the JDBC API. If you run in a J2EE application "
-"server, you might want to use bean-managed transactions and call the JTA API "
-"and <literal>UserTransaction</literal> when needed."
-msgstr ""
-"在你的架构中,Hibernate 的 <literal>Session</literal> API 是独立于任何事务分"
-"界系统的。如果你让 Hibernate 通过连接池直接使用 JDBC,你需要调用 JDBC API 来"
-"打开和关闭你的事务。如果你运行在 J2EE 应用程序服务器中,你也许想用 Bean 管理"
-"的事务并在需要的时候调用 JTA API 和 <literal>UserTransaction</literal>。 "
+msgid "The Hibernate <literal>Session</literal> API is independent of any transaction demarcation system in your architecture. If you let Hibernate use JDBC directly through a connection pool, you can begin and end your transactions by calling the JDBC API. If you run in a J2EE application server, you might want to use bean-managed transactions and call the JTA API and <literal>UserTransaction</literal> when needed."
+msgstr "在你的架构中,Hibernate 的 <literal>Session</literal> API 是独立于任何事务分界系统的。如果你让 Hibernate 通过连接池直接使用 JDBC,你需要调用 JDBC API 来打开和关闭你的事务。如果你运行在 J2EE 应用程序服务器中,你也许想用 Bean 管理的事务并在需要的时候调用 JTA API 和 <literal>UserTransaction</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"To keep your code portable between these two (and other) environments we "
-"recommend the optional Hibernate <literal>Transaction</literal> API, which "
-"wraps and hides the underlying system. You have to specify a factory class "
-"for <literal>Transaction</literal> instances by setting the Hibernate "
-"configuration property <literal>hibernate.transaction.factory_class</"
-"literal>."
-msgstr ""
-"为了让你的代码在两种(或其他)环境中可以移植,我们建议使用可选的 Hibernate "
-"<literal>Transaction</literal> API,它包装并隐藏了底层系统。你必须通过设置 "
-"Hibernate 配置属性 <literal>hibernate.transaction.factory_class</literal> 来"
-"指定一个 <literal>Transaction</literal> 实例的工厂类。"
+msgid "To keep your code portable between these two (and other) environments we recommend the optional Hibernate <literal>Transaction</literal> API, which wraps and hides the underlying system. You have to specify a factory class for <literal>Transaction</literal> instances by setting the Hibernate configuration property <literal>hibernate.transaction.factory_class</literal>."
+msgstr "为了让你的代码在两种(或其他)环境中可以移植,我们建议使用可选的 Hibernate <literal>Transaction</literal> API,它包装并隐藏了底层系统。你必须通过设置 Hibernate 配置属性 <literal>hibernate.transaction.factory_class</literal> 来指定一个 <literal>Transaction</literal> 实例的工厂类。"
 
 #. Tag: para
 #, no-c-format
@@ -2129,9 +1445,9 @@
 msgstr "有三个标准(内建)的选择: "
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
-msgstr "org.hibernate.transaction.JDBCTransactionFactory"
+msgstr "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -2139,24 +1455,19 @@
 msgstr "委托给数据库(JDBC)事务(默认)"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
-msgstr "org.hibernate.transaction.JTATransactionFactory"
+msgstr "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"delegates to container-managed transactions if an existing transaction is "
-"underway in this context (for example, EJB session bean method). Otherwise, "
-"a new transaction is started and bean-managed transactions are used."
-msgstr ""
-"如果在上下文环境中存在运行着的事务(如,EJB 会话 Bean 的方法),则委托给容器"
-"管理的事务。否则,将启动一个新的事务,并使用 Bean 管理的事务。"
+msgid "delegates to container-managed transactions if an existing transaction is underway in this context (for example, EJB session bean method). Otherwise, a new transaction is started and bean-managed transactions are used."
+msgstr "如果在上下文环境中存在运行着的事务(如,EJB 会话 Bean 的方法),则委托给容器管理的事务。否则,将启动一个新的事务,并使用 Bean 管理的事务。"
 
 #. Tag: term
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
-msgstr "org.hibernate.transaction.CMTTransactionFactory"
+msgstr "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
 
 #. Tag: para
 #, no-c-format
@@ -2165,25 +1476,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You can also define your own transaction strategies (for a CORBA transaction "
-"service, for example)."
+msgid "You can also define your own transaction strategies (for a CORBA transaction service, for example)."
 msgstr "你也可以定义属于你自己的事务策略(如,针对 CORBA 的事务服务)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Some features in Hibernate (i.e., the second level cache, Contextual "
-"Sessions with JTA, etc.) require access to the JTA "
-"<literal>TransactionManager</literal> in a managed environment. In an "
-"application server, since J2EE does not standardize a single mechanism, you "
-"have to specify how Hibernate should obtain a reference to the "
-"<literal>TransactionManager</literal>:"
-msgstr ""
-"Hibernate 的一些特性(比如二级缓存,Contextual Sessions with JTA 等等)需要访"
-"问在托管环境中的 JTA <literal>TransactionManager</literal>。由于 J2EE 没有标"
-"准化一个单一的机制,Hibernate 在应用程序服务器中,你必须指定 Hibernate 如何获"
-"得 <literal>TransactionManager</literal> 的引用: "
+msgid "Some features in Hibernate (i.e., the second level cache, Contextual Sessions with JTA, etc.) require access to the JTA <literal>TransactionManager</literal> in a managed environment. In an application server, since J2EE does not standardize a single mechanism, you have to specify how Hibernate should obtain a reference to the <literal>TransactionManager</literal>:"
+msgstr "Hibernate 的一些特性(比如二级缓存,Contextual Sessions with JTA 等等)需要访问在托管环境中的 JTA <literal>TransactionManager</literal>。由于 J2EE 没有标准化一个单一的机制,Hibernate 在应用程序服务器中,你必须指定 Hibernate 如何获得 <literal>TransactionManager</literal> 的引用: "
 
 #. Tag: title
 #, no-c-format
@@ -2201,10 +1500,9 @@
 msgstr "应用程序服务器"
 
 #. Tag: entry
-#, fuzzy, no-c-format
-msgid ""
-"<literal>org.hibernate.transaction. JBossTransactionManagerLookup</literal>"
-msgstr "org.hibernate.transaction.JBossTransactionManagerLookup"
+#, no-c-format
+msgid "<literal>org.hibernate.transaction. JBossTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. JBossTransactionManagerLookup</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -2212,11 +1510,9 @@
 msgstr "JBoss"
 
 #. Tag: entry
-#, fuzzy, no-c-format
-msgid ""
-"<literal>org.hibernate.transaction. WeblogicTransactionManagerLookup</"
-"literal>"
-msgstr "org.hibernate.transaction.WeblogicTransactionManagerLookup"
+#, no-c-format
+msgid "<literal>org.hibernate.transaction. WeblogicTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. WeblogicTransactionManagerLookup</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -2224,11 +1520,9 @@
 msgstr "Weblogic"
 
 #. Tag: entry
-#, fuzzy, no-c-format
-msgid ""
-"<literal>org.hibernate.transaction. WebSphereTransactionManagerLookup</"
-"literal>"
-msgstr "org.hibernate.transaction.WebSphereTransactionManagerLookup"
+#, no-c-format
+msgid "<literal>org.hibernate.transaction. WebSphereTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. WebSphereTransactionManagerLookup</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -2236,11 +1530,9 @@
 msgstr "WebSphere"
 
 #. Tag: entry
-#, fuzzy, no-c-format
-msgid ""
-"<literal>org.hibernate.transaction. WebSphereExtendedJTATransactionLookup</"
-"literal>"
-msgstr "org.hibernate.transaction.WebSphereExtendedJTATransactionLookup"
+#, no-c-format
+msgid "<literal>org.hibernate.transaction. WebSphereExtendedJTATransactionLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. WebSphereExtendedJTATransactionLookup</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -2248,10 +1540,9 @@
 msgstr "WebSphere 6"
 
 #. Tag: entry
-#, fuzzy, no-c-format
-msgid ""
-"<literal>org.hibernate.transaction. OrionTransactionManagerLookup</literal>"
-msgstr "org.hibernate.transaction.OrionTransactionManagerLookup"
+#, no-c-format
+msgid "<literal>org.hibernate.transaction. OrionTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. OrionTransactionManagerLookup</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -2259,10 +1550,9 @@
 msgstr "Orion"
 
 #. Tag: entry
-#, fuzzy, no-c-format
-msgid ""
-"<literal>org.hibernate.transaction. ResinTransactionManagerLookup</literal>"
-msgstr "org.hibernate.transaction.ResinTransactionManagerLookup"
+#, no-c-format
+msgid "<literal>org.hibernate.transaction. ResinTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. ResinTransactionManagerLookup</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -2270,10 +1560,9 @@
 msgstr "Resin"
 
 #. Tag: entry
-#, fuzzy, no-c-format
-msgid ""
-"<literal>org.hibernate.transaction. JOTMTransactionManagerLookup</literal>"
-msgstr "org.hibernate.transaction.JOTMTransactionManagerLookup"
+#, no-c-format
+msgid "<literal>org.hibernate.transaction. JOTMTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. JOTMTransactionManagerLookup</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -2281,10 +1570,9 @@
 msgstr "JOTM"
 
 #. Tag: entry
-#, fuzzy, no-c-format
-msgid ""
-"<literal>org.hibernate.transaction. JOnASTransactionManagerLookup</literal>"
-msgstr "org.hibernate.transaction.JOnASTransactionManagerLookup"
+#, no-c-format
+msgid "<literal>org.hibernate.transaction. JOnASTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. JOnASTransactionManagerLookup</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -2292,10 +1580,9 @@
 msgstr "JOnAS"
 
 #. Tag: entry
-#, fuzzy, no-c-format
-msgid ""
-"<literal>org.hibernate.transaction. JRun4TransactionManagerLookup</literal>"
-msgstr "org.hibernate.transaction.JRun4TransactionManagerLookup"
+#, no-c-format
+msgid "<literal>org.hibernate.transaction. JRun4TransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. JRun4TransactionManagerLookup</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -2303,10 +1590,9 @@
 msgstr "JRun4"
 
 #. Tag: entry
-#, fuzzy, no-c-format
-msgid ""
-"<literal>org.hibernate.transaction. BESTransactionManagerLookup</literal>"
-msgstr "org.hibernate.transaction.BESTransactionManagerLookup"
+#, no-c-format
+msgid "<literal>org.hibernate.transaction. BESTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction. BESTransactionManagerLookup</literal>"
 
 #. Tag: entry
 #, no-c-format
@@ -2320,87 +1606,33 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A JNDI-bound Hibernate <literal>SessionFactory</literal> can simplify the "
-"lookup function of the factory and create new <literal>Session</literal>s. "
-"This is not, however, related to a JNDI bound <literal>Datasource</literal>; "
-"both simply use the same registry."
-msgstr ""
-"与 JNDI 绑定的 Hibernate 的 <literal>SessionFactory</literal> 能简化工厂的查"
-"询,简化创建新的 <literal>Session</literal>。需要注意的是这与 JNDI 绑定 "
-"<literal>Datasource</literal> 没有关系,它们只是恰巧用了相同的注册表。"
+msgid "A JNDI-bound Hibernate <literal>SessionFactory</literal> can simplify the lookup function of the factory and create new <literal>Session</literal>s. This is not, however, related to a JNDI bound <literal>Datasource</literal>; both simply use the same registry."
+msgstr "与 JNDI 绑定的 Hibernate 的 <literal>SessionFactory</literal> 能简化工厂的查询,简化创建新的 <literal>Session</literal>。需要注意的是这与 JNDI 绑定 <literal>Datasource</literal> 没有关系,它们只是恰巧用了相同的注册表。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If you wish to have the <literal>SessionFactory</literal> bound to a JNDI "
-"namespace, specify a name (e.g. <literal>java:hibernate/SessionFactory</"
-"literal>) using the property <literal>hibernate.session_factory_name</"
-"literal>. If this property is omitted, the <literal>SessionFactory</literal> "
-"will not be bound to JNDI. This is especially useful in environments with a "
-"read-only JNDI default implementation (in Tomcat, for example)."
-msgstr ""
-"如果你希望将 <literal>SessionFactory</literal> 绑定到一个 JNDI 的名字空间,用"
-"属性 <literal>hibernate.session_factory_name</literal> 指定一个名字(如,"
-"<literal>java:hibernate/SessionFactory</literal>)。如果不设置这个属性,"
-"<literal>SessionFactory</literal> 将不会被绑定到 JNDI 中(在以只读 JNDI 为默"
-"认实现的环境中,这个设置尤其有用,如 Tomcat)。"
+msgid "If you wish to have the <literal>SessionFactory</literal> bound to a JNDI namespace, specify a name (e.g. <literal>java:hibernate/SessionFactory</literal>) using the property <literal>hibernate.session_factory_name</literal>. If this property is omitted, the <literal>SessionFactory</literal> will not be bound to JNDI. This is especially useful in environments with a read-only JNDI default implementation (in Tomcat, for example)."
+msgstr "如果你希望将 <literal>SessionFactory</literal> 绑定到一个 JNDI 的名字空间,用属性 <literal>hibernate.session_factory_name</literal> 指定一个名字(如,<literal>java:hibernate/SessionFactory</literal>)。如果不设置这个属性,<literal>SessionFactory</literal> 将不会被绑定到 JNDI 中(在以只读 JNDI 为默认实现的环境中,这个设置尤其有用,如 Tomcat)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"When binding the <literal>SessionFactory</literal> to JNDI, Hibernate will "
-"use the values of <literal>hibernate.jndi.url</literal>, <literal>hibernate."
-"jndi.class</literal> to instantiate an initial context. If they are not "
-"specified, the default <literal>InitialContext</literal> will be used."
-msgstr ""
-"在将 <literal>SessionFactory</literal> 绑定至 JNDI 时,Hibernate 将使用 "
-"<literal>hibernate.jndi.url</literal>,和 <literal>hibernate.jndi.class</"
-"literal> 的值来实例化初始环境(initial context)。如果它们没有被指定,将使用"
-"默认的 <literal>InitialContext</literal>。"
+msgid "When binding the <literal>SessionFactory</literal> to JNDI, Hibernate will use the values of <literal>hibernate.jndi.url</literal>, <literal>hibernate.jndi.class</literal> to instantiate an initial context. If they are not specified, the default <literal>InitialContext</literal> will be used."
+msgstr "在将 <literal>SessionFactory</literal> 绑定至 JNDI 时,Hibernate 将使用 <literal>hibernate.jndi.url</literal>,和 <literal>hibernate.jndi.class</literal> 的值来实例化初始环境(initial context)。如果它们没有被指定,将使用默认的 <literal>InitialContext</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate will automatically place the <literal>SessionFactory</literal> in "
-"JNDI after you call <literal>cfg.buildSessionFactory()</literal>. This means "
-"you will have this call in some startup code, or utility class in your "
-"application, unless you use JMX deployment with the "
-"<literal>HibernateService</literal> (this is discussed later in greater "
-"detail)."
-msgstr ""
-"在你调用 <literal>cfg.buildSessionFactory()</literal>后,Hibernate 会自动将 "
-"<literal>SessionFactory</literal> 注册到 JNDI。这意味这你至少需要在你应用程序"
-"的启动代码(或工具类)中完成这个调用,除非你使用 <literal>HibernateService</"
-"literal> 来做 JMX 部署(见后面讨论)。"
+msgid "Hibernate will automatically place the <literal>SessionFactory</literal> in JNDI after you call <literal>cfg.buildSessionFactory()</literal>. This means you will have this call in some startup code, or utility class in your application, unless you use JMX deployment with the <literal>HibernateService</literal> (this is discussed later in greater detail)."
+msgstr "在你调用 <literal>cfg.buildSessionFactory()</literal>后,Hibernate 会自动将 <literal>SessionFactory</literal> 注册到 JNDI。这意味这你至少需要在你应用程序的启动代码(或工具类)中完成这个调用,除非你使用 <literal>HibernateService</literal> 来做 JMX 部署(见后面讨论)。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If you use a JNDI <literal>SessionFactory</literal>, an EJB or any other "
-"class, you can obtain the <literal>SessionFactory</literal> using a JNDI "
-"lookup."
-msgstr ""
-"假若你使用 JNDI <literal>SessionFactory</literal>,EJB 或者任何其它类都可以"
-"从 JNDI 中找到此 <literal>SessionFactory</literal>。 "
+msgid "If you use a JNDI <literal>SessionFactory</literal>, an EJB or any other class, you can obtain the <literal>SessionFactory</literal> using a JNDI lookup."
+msgstr "假若你使用 JNDI <literal>SessionFactory</literal>,EJB 或者任何其它类都可以从 JNDI 中找到此 <literal>SessionFactory</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"It is recommended that you bind the <literal>SessionFactory</literal> to "
-"JNDI in a managed environment and use a <literal>static</literal> singleton "
-"otherwise. To shield your application code from these details, we also "
-"recommend to hide the actual lookup code for a <literal>SessionFactory</"
-"literal> in a helper class, such as <literal>HibernateUtil.getSessionFactory"
-"()</literal>. Note that such a class is also a convenient way to startup "
-"Hibernate&mdash;see chapter 1."
-msgstr ""
-"我们建议,在受管理的环境中,把 <literal>SessionFactory</literal> 绑定到 "
-"JNDI,在其它情况下,使用一个 <literal>static(静态的)</literal>singleton。为"
-"了在你的应用程序代码中隐藏这些细节,我们还建议你用一个 helper 类把实际查找 "
-"<literal>SessionFactory</literal> 的代码隐藏起来,比如 "
-"<literal>HibernateUtil.getSessionFactory()</literal>。注意,这个类也就可以方"
-"便地启动 Hibernate,参见第一章。 "
+msgid "It is recommended that you bind the <literal>SessionFactory</literal> to JNDI in a managed environment and use a <literal>static</literal> singleton otherwise. To shield your application code from these details, we also recommend to hide the actual lookup code for a <literal>SessionFactory</literal> in a helper class, such as <literal>HibernateUtil.getSessionFactory()</literal>. Note that such a class is also a convenient way to startup Hibernate&mdash;see chapter 1."
+msgstr "我们建议,在受管理的环境中,把 <literal>SessionFactory</literal> 绑定到 JNDI,在其它情况下,使用一个 <literal>static(静态的)</literal>singleton。为了在你的应用程序代码中隐藏这些细节,我们还建议你用一个 helper 类把实际查找 <literal>SessionFactory</literal> 的代码隐藏起来,比如 <literal>HibernateUtil.getSessionFactory()</literal>。注意,这个类也就可以方便地启动 Hibernate,参见第一章。 "
 
 #. Tag: title
 #, no-c-format
@@ -2408,43 +1640,9 @@
 msgstr "在 JTA 环境下使用 Current Session context(当前 session 上下文)管理"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The easiest way to handle <literal>Sessions</literal> and transactions is "
-"Hibernate's automatic \"current\" <literal>Session</literal> management. For "
-"a discussion of contextual sessions see <xref linkend=\"architecture-current-"
-"session\" />. Using the <literal>\"jta\"</literal> session context, if there "
-"is no Hibernate <literal>Session</literal> associated with the current JTA "
-"transaction, one will be started and associated with that JTA transaction "
-"the first time you call <literal>sessionFactory.getCurrentSession()</"
-"literal>. The <literal>Session</literal>s retrieved via "
-"<literal>getCurrentSession()</literal> in the<literal>\"jta\"</literal> "
-"context are set to automatically flush before the transaction completes, "
-"close after the transaction completes, and aggressively release JDBC "
-"connections after each statement. This allows the <literal>Session</"
-"literal>s to be managed by the life cycle of the JTA transaction to which it "
-"is associated, keeping user code clean of such management concerns. Your "
-"code can either use JTA programmatically through <literal>UserTransaction</"
-"literal>, or (recommended for portable code) use the Hibernate "
-"<literal>Transaction</literal> API to set transaction boundaries. If you run "
-"in an EJB container, declarative transaction demarcation with CMT is "
-"preferred."
-msgstr ""
-"在 Hibernate 中,管理 <literal>Session</literal> 和 transaction 最好的方法是"
-"自动的\"当前\"<literal>Session</literal> 管理。请参见 <xref linkend="
-"\"architecture-current-session\">contextual sessions</xref> 一节的讨论。使用 "
-"<literal>\"jta\"</literal> session 上下文,假若在当前 JTA 事务中还没有 "
-"Hibernate<literal>Session</literal> 关联,第一次 <literal>sessionFactory."
-"getCurrentSession()</literal> 调用会启动一个 Session,并关联到当前的 JTA 事"
-"务。在 <literal>\"jta\"</literal> 上下文中调用 <literal>getCurrentSession()</"
-"literal> 获得的 <literal>Session</literal>,会被设置为在 transaction 关闭的时"
-"候自动 flush(清洗)、在 transaction 关闭之后自动关闭,每句语句之后主动释放 "
-"JDBC 连接。这就可以根据 JTA 事务的生命周期来管理与之关联的 <literal>Session</"
-"literal>,用户代码中就可以不再考虑这些管理。你的代码也可以通过 "
-"<literal>UserTransaction</literal>用编程方式使用 JTA,或者(我们建议,为了便"
-"于移植代码)使用 Hibernate 的 <literal>Transaction</literal> API 来设置 "
-"transaction 边界。如果你的代码运行在 EJB 容器中,我们建议对 CMT 使用声明式事"
-"务声明。"
+#, no-c-format
+msgid "The easiest way to handle <literal>Sessions</literal> and transactions is Hibernate's automatic \"current\" <literal>Session</literal> management. For a discussion of contextual sessions see <xref linkend=\"architecture-current-session\" />. Using the <literal>\"jta\"</literal> session context, if there is no Hibernate <literal>Session</literal> associated with the current JTA transaction, one will be started and associated with that JTA transaction the first time you call <literal>sessionFactory.getCurrentSession()</literal>. The <literal>Session</literal>s retrieved via <literal>getCurrentSession()</literal> in the<literal>\"jta\"</literal> context are set to automatically flush before the transaction completes, close after the transaction completes, and aggressively release JDBC connections after each statement. This allows the <literal>Session</literal>s to be managed by the life cycle of the JTA transaction to which it is associated, keeping user code clean of s!
 uch management concerns. Your code can either use JTA programmatically through <literal>UserTransaction</literal>, or (recommended for portable code) use the Hibernate <literal>Transaction</literal> API to set transaction boundaries. If you run in an EJB container, declarative transaction demarcation with CMT is preferred."
+msgstr "在 Hibernate 中,管理 <literal>Session</literal> 和 transaction 最好的方法是自动的\"当前\"<literal>Session</literal> 管理。请参见 <xref linkend=\"architecture-current-session\">contextual sessions</xref> 一节的讨论。使用 <literal>\"jta\"</literal> session 上下文,假若在当前 JTA 事务中还没有 Hibernate<literal>Session</literal> 关联,第一次 <literal>sessionFactory.getCurrentSession()</literal> 调用会启动一个 Session,并关联到当前的 JTA 事务。在 <literal>\"jta\"</literal> 上下文中调用 <literal>getCurrentSession()</literal> 获得的 <literal>Session</literal>,会被设置为在 transaction 关闭的时候自动 flush(清洗)、在 transaction 关闭之后自动关闭,每句语句之后主动释放 JDBC 连接。这就可以根据 JTA 事务的生命周期来管理与之关联的 <literal>Session</literal>,用户代码中就可以不再考虑这些管理。你的代码也可以通过 !
 <literal>UserTransaction</literal>用编程方式使用 JTA,或者(我们建议,为了便于移植代码)使用 Hibernate 的 <literal>Transaction</literal> API 来设置 transaction 边界。如果你的代码运行在 EJB 容器中,我们建议对 CMT 使用声明式事务声明。 "
 
 #. Tag: title
 #, no-c-format
@@ -2453,50 +1651,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The line <literal>cfg.buildSessionFactory()</literal> still has to be "
-"executed somewhere to get a <literal>SessionFactory</literal> into JNDI. You "
-"can do this either in a <literal>static</literal> initializer block, like "
-"the one in <literal>HibernateUtil</literal>, or you can deploy Hibernate as "
-"a <emphasis>managed service</emphasis>."
-msgstr ""
-"为了将 <literal>SessionFactory</literal> 注册到 JNDI 中,<literal>cfg."
-"buildSessionFactory()</literal> 这行代码仍需在某处被执行。你可在一个 "
-"<literal>static</literal> 初始化块(像 <literal>HibernateUtil</literal> 中的"
-"那样)中执行它或将 Hibernate 部署为一个<emphasis>托管的服务</emphasis>。  "
+msgid "The line <literal>cfg.buildSessionFactory()</literal> still has to be executed somewhere to get a <literal>SessionFactory</literal> into JNDI. You can do this either in a <literal>static</literal> initializer block, like the one in <literal>HibernateUtil</literal>, or you can deploy Hibernate as a <emphasis>managed service</emphasis>."
+msgstr "为了将 <literal>SessionFactory</literal> 注册到 JNDI 中,<literal>cfg.buildSessionFactory()</literal> 这行代码仍需在某处被执行。你可在一个 <literal>static</literal> 初始化块(像 <literal>HibernateUtil</literal> 中的那样)中执行它或将 Hibernate 部署为一个<emphasis>托管的服务</emphasis>。  "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate is distributed with <literal>org.hibernate.jmx.HibernateService</"
-"literal> for deployment on an application server with JMX capabilities, such "
-"as JBoss AS. The actual deployment and configuration is vendor-specific. "
-"Here is an example <literal>jboss-service.xml</literal> for JBoss 4.0.x:"
-msgstr ""
-"为了部署在一个支持 JMX 的应用程序服务器上,Hibernate 和 <literal>org."
-"hibernate.jmx.HibernateService</literal> 一同分发,如 Jboss AS。 实际的部署和"
-"配置是由应用程序服务器提供者指定的。这里是 JBoss 4.0.x 的 <literal>jboss-"
-"service.xml</literal> 样例: "
+msgid "Hibernate is distributed with <literal>org.hibernate.jmx.HibernateService</literal> for deployment on an application server with JMX capabilities, such as JBoss AS. The actual deployment and configuration is vendor-specific. Here is an example <literal>jboss-service.xml</literal> for JBoss 4.0.x:"
+msgstr "为了部署在一个支持 JMX 的应用程序服务器上,Hibernate 和 <literal>org.hibernate.jmx.HibernateService</literal> 一同分发,如 Jboss AS。 实际的部署和配置是由应用程序服务器提供者指定的。这里是 JBoss 4.0.x 的 <literal>jboss-service.xml</literal> 样例: "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"This file is deployed in a directory called <literal>META-INF</literal> and "
-"packaged in a JAR file with the extension <literal>.sar</literal> (service "
-"archive). You also need to package Hibernate, its required third-party "
-"libraries, your compiled persistent classes, as well as your mapping files "
-"in the same archive. Your enterprise beans (usually session beans) can be "
-"kept in their own JAR file, but you can include this EJB JAR file in the "
-"main service archive to get a single (hot-)deployable unit. Consult the "
-"JBoss AS documentation for more information about JMX service and EJB "
-"deployment."
-msgstr ""
-"这个文件是部署在 <literal>META-INF</literal> 目录下的,并会被打包到以 "
-"<literal>.sar</literal>(service archive)为扩展名的 JAR 文件中。同时,你需要"
-"将 Hibernate、它所需要的第三方库、你编译好的持久化类以及你的映射定义文件打包"
-"进同一个文档。你的企业 Bean(一般为会话 Bean)可能会被打包成它们自己的 JAR 文"
-"件,但你也许会将 EJB JAR 文件一同包含进能独立(热)部署的主服务文档。参考 "
-"JBoss AS 文档以了解更多的 JMX服务与 EJB 部署的信息。 "
+msgid "This file is deployed in a directory called <literal>META-INF</literal> and packaged in a JAR file with the extension <literal>.sar</literal> (service archive). You also need to package Hibernate, its required third-party libraries, your compiled persistent classes, as well as your mapping files in the same archive. Your enterprise beans (usually session beans) can be kept in their own JAR file, but you can include this EJB JAR file in the main service archive to get a single (hot-)deployable unit. Consult the JBoss AS documentation for more information about JMX service and EJB deployment."
+msgstr "这个文件是部署在 <literal>META-INF</literal> 目录下的,并会被打包到以 <literal>.sar</literal>(service archive)为扩展名的 JAR 文件中。同时,你需要将 Hibernate、它所需要的第三方库、你编译好的持久化类以及你的映射定义文件打包进同一个文档。你的企业 Bean(一般为会话 Bean)可能会被打包成它们自己的 JAR 文件,但你也许会将 EJB JAR 文件一同包含进能独立(热)部署的主服务文档。参考 JBoss AS 文档以了解更多的 JMX服务与 EJB 部署的信息。 "
 
 #~ msgid ""
 #~ "<![CDATA[Configuration cfg = new Configuration()\n"
@@ -2506,7 +1672,6 @@
 #~ "<![CDATA[Configuration cfg = new Configuration()\n"
 #~ "    .addResource(\"Item.hbm.xml\")\n"
 #~ "    .addResource(\"Bid.hbm.xml\");]]>"
-
 #~ msgid ""
 #~ "<![CDATA[Configuration cfg = new Configuration()\n"
 #~ "    .addClass(org.hibernate.auction.Item.class)\n"
@@ -2515,7 +1680,6 @@
 #~ "<![CDATA[Configuration cfg = new Configuration()\n"
 #~ "    .addClass(org.hibernate.auction.Item.class)\n"
 #~ "    .addClass(org.hibernate.auction.Bid.class);]]>"
-
 #~ msgid ""
 #~ "<![CDATA[Configuration cfg = new Configuration()\n"
 #~ "    .addClass(org.hibernate.auction.Item.class)\n"
@@ -2534,26 +1698,20 @@
 #~ "    .setProperty(\"hibernate.connection.datasource\", \"java:comp/env/"
 #~ "jdbc/test\")\n"
 #~ "    .setProperty(\"hibernate.order_updates\", \"true\");]]>"
-
 #~ msgid "<![CDATA[SessionFactory sessions = cfg.buildSessionFactory();]]>"
 #~ msgstr "<![CDATA[SessionFactory sessions = cfg.buildSessionFactory();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[Session session = sessions.openSession(); // open a new Session]]"
 #~ ">"
 #~ msgstr ""
 #~ "<![CDATA[Session session = sessions.openSession(); // open a new Session]]"
 #~ ">"
-
 #~ msgid "JDBC URL"
 #~ msgstr "JDBC URL"
-
 #~ msgid "database user"
 #~ msgstr "database user"
-
 #~ msgid "database user password"
 #~ msgstr "数据库用户密码"
-
 #~ msgid ""
 #~ "<![CDATA[hibernate.connection.driver_class = org.postgresql.Driver\n"
 #~ "hibernate.connection.url = jdbc:postgresql://localhost/mydatabase\n"
@@ -2574,10 +1732,8 @@
 #~ "hibernate.c3p0.timeout=1800\n"
 #~ "hibernate.c3p0.max_statements=50\n"
 #~ "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
-
 #~ msgid "datasource JNDI name"
 #~ msgstr "数据源 JNDI 名字"
-
 #~ msgid ""
 #~ "<![CDATA[hibernate.connection.datasource = java:/comp/env/jdbc/test\n"
 #~ "hibernate.transaction.factory_class = \\\n"
@@ -2592,19 +1748,14 @@
 #~ "hibernate.transaction.manager_lookup_class = \\\n"
 #~ "    org.hibernate.transaction.JBossTransactionManagerLookup\n"
 #~ "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
-
 #~ msgid "<entry>DB2</entry>"
 #~ msgstr "<entry>DB2</entry>"
-
 #~ msgid "hibernate.query.substitutions true=1, false=0"
 #~ msgstr "hibernate.query.substitutions true=1,false=0"
-
 #~ msgid "hibernate.query.substitutions toLowercase=LOWER"
 #~ msgstr "hibernate.query.substitutions toLowercase=LOWER"
-
 #~ msgid "org.hibernate"
 #~ msgstr "org.hibernate"
-
 #~ msgid ""
 #~ "<![CDATA[SessionFactory sf = new Configuration()\n"
 #~ "    .setNamingStrategy(ImprovedNamingStrategy.INSTANCE)\n"
@@ -2617,7 +1768,6 @@
 #~ "    .addFile(\"Item.hbm.xml\")\n"
 #~ "    .addFile(\"Bid.hbm.xml\")\n"
 #~ "    .buildSessionFactory();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
 #~ "<!DOCTYPE hibernate-configuration PUBLIC\n"
@@ -2698,14 +1848,12 @@
 #~ "    </session-factory>\n"
 #~ "\n"
 #~ "</hibernate-configuration>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[SessionFactory sf = new Configuration().configure()."
 #~ "buildSessionFactory();]]>"
 #~ msgstr ""
 #~ "<![CDATA[SessionFactory sf = new Configuration().configure()."
 #~ "buildSessionFactory();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[SessionFactory sf = new Configuration()\n"
 #~ "    .configure(\"catdb.cfg.xml\")\n"
@@ -2714,7 +1862,6 @@
 #~ "<![CDATA[SessionFactory sf = new Configuration()\n"
 #~ "    .configure(\"catdb.cfg.xml\")\n"
 #~ "    .buildSessionFactory();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<?xml version=\"1.0\"?>\n"
 #~ "<server>\n"
@@ -2811,3 +1958,4 @@
 #~ "</mbean>\n"
 #~ "\n"
 #~ "</server>]]>"
+

Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/example_parentchild.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/example_parentchild.po	2009-12-10 21:31:45 UTC (rev 97707)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/example_parentchild.po	2009-12-11 00:50:05 UTC (rev 97708)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-12-03T00:15:26\n"
-"PO-Revision-Date: 2009-11-27 13:54+1000\n"
+"PO-Revision-Date: 2009-12-11 09:48+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -21,31 +21,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"One of the first things that new users want to do with Hibernate is to model "
-"a parent/child type relationship. There are two different approaches to "
-"this. The most convenient approach, especially for new users, is to model "
-"both <literal>Parent</literal> and <literal>Child</literal> as entity "
-"classes with a <literal>&lt;one-to-many&gt;</literal> association from "
-"<literal>Parent</literal> to <literal>Child</literal>. The alternative "
-"approach is to declare the <literal>Child</literal> as a <literal>&lt;"
-"composite-element&gt;</literal>. The default semantics of a one-to-many "
-"association in Hibernate are much less close to the usual semantics of a "
-"parent/child relationship than those of a composite element mapping. We will "
-"explain how to use a <emphasis>bidirectional one-to-many association with "
-"cascades</emphasis> to model a parent/child relationship efficiently and "
-"elegantly."
-msgstr ""
-"刚刚接触 Hibernate 的人大多是从父子关系(parent / child type relationship)的"
-"建模入手的。父子关系的建模有两种方法。由于种种原因,最方便的方法是把 "
-"<literal>Parent</literal> 和 <literal>Child</literal> 都建模成实体类,并创建"
-"一个从 <literal>Parent</literal> 指向 <literal>Child</literal> 的 &lt;one-to-"
-"many&gt; 关联,对新手来说尤其如此。还有一种方法,就是将 <literal>Child</"
-"literal> 声明为一个 <literal>&lt;composite-element&gt;</literal>(组合元"
-"素)。 事实上在 Hibernate 中 one to many 关联的默认语义远没有 composite "
-"element 贴近 parent / child 关系的通常语义。下面我们会阐述如何使用<emphasis>"
-"带有级联的双向一对多关联(idirectional one to many association with "
-"cascades)</emphasis>去建立有效、优美的 parent / child 关系。"
+msgid "One of the first things that new users want to do with Hibernate is to model a parent/child type relationship. There are two different approaches to this. The most convenient approach, especially for new users, is to model both <literal>Parent</literal> and <literal>Child</literal> as entity classes with a <literal>&lt;one-to-many&gt;</literal> association from <literal>Parent</literal> to <literal>Child</literal>. The alternative approach is to declare the <literal>Child</literal> as a <literal>&lt;composite-element&gt;</literal>. The default semantics of a one-to-many association in Hibernate are much less close to the usual semantics of a parent/child relationship than those of a composite element mapping. We will explain how to use a <emphasis>bidirectional one-to-many association with cascades</emphasis> to model a parent/child relationship efficiently and elegantly."
+msgstr "刚刚接触 Hibernate 的人大多是从父子关系(parent / child type relationship)的建模入手的。父子关系的建模有两种方法。由于种种原因,最方便的方法是把 <literal>Parent</literal> 和 <literal>Child</literal> 都建模成实体类,并创建一个从 <literal>Parent</literal> 指向 <literal>Child</literal> 的 &lt;one-to-many&gt; 关联,对新手来说尤其如此。还有一种方法,就是将 <literal>Child</literal> 声明为一个 <literal>&lt;composite-element&gt;</literal>(组合元素)。 事实上在 Hibernate 中 one to many 关联的默认语义远没有 composite element 贴近 parent / child 关系的通常语义。下面我们会阐述如何使用<emphasis>带有级联的双向一对多关联(idirectional one to many association with cascades)</emphasis>去建立有效、优美的 parent / child 关系。"
 
 #. Tag: title
 #, no-c-format
@@ -54,62 +31,28 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate collections are considered to be a logical part of their owning "
-"entity and not of the contained entities. Be aware that this is a critical "
-"distinction that has the following consequences:"
-msgstr ""
-"Hibernate collections 被当作其所属实体而不是其包含实体的一个逻辑部分。这非常"
-"重要,它主要体现为以下几点:"
+msgid "Hibernate collections are considered to be a logical part of their owning entity and not of the contained entities. Be aware that this is a critical distinction that has the following consequences:"
+msgstr "Hibernate collections 被当作其所属实体而不是其包含实体的一个逻辑部分。这非常重要,它主要体现为以下几点:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"When you remove/add an object from/to a collection, the version number of "
-"the collection owner is incremented."
-msgstr ""
-"当删除或增加 collection 中对象的时候,collection 所属者的版本值会递增。 "
+msgid "When you remove/add an object from/to a collection, the version number of the collection owner is incremented."
+msgstr "当删除或增加 collection 中对象的时候,collection 所属者的版本值会递增。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If an object that was removed from a collection is an instance of a value "
-"type (e.g. a composite element), that object will cease to be persistent and "
-"its state will be completely removed from the database. Likewise, adding a "
-"value type instance to the collection will cause its state to be immediately "
-"persistent."
-msgstr ""
-"如果一个从 collection 中移除的对象是一个值类型(value type)的实例,比如 "
-"composite element,那么这个对象的持久化状态将会终止,其在数据库中对应的记录会"
-"被删除。同样的,向 collection 增加一个 value type 的实例将会使之立即被持久"
-"化。 "
+msgid "If an object that was removed from a collection is an instance of a value type (e.g. a composite element), that object will cease to be persistent and its state will be completely removed from the database. Likewise, adding a value type instance to the collection will cause its state to be immediately persistent."
+msgstr "如果一个从 collection 中移除的对象是一个值类型(value type)的实例,比如 composite element,那么这个对象的持久化状态将会终止,其在数据库中对应的记录会被删除。同样的,向 collection 增加一个 value type 的实例将会使之立即被持久化。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Conversely, if an entity is removed from a collection (a one-to-many or many-"
-"to-many association), it will not be deleted by default. This behavior is "
-"completely consistent; a change to the internal state of another entity "
-"should not cause the associated entity to vanish. Likewise, adding an entity "
-"to a collection does not cause that entity to become persistent, by default."
-msgstr ""
-"另一方面,如果从一对多或多对多关联的 collection 中移除一个实体,在缺省情况下"
-"这个对象并不会被删除。这个行为是完全合乎逻辑的--改变一个实体的内部状态不应"
-"该使与它关联的实体消失掉。同样的,向 collection 增加一个实体不会使之被持久"
-"化。 "
+msgid "Conversely, if an entity is removed from a collection (a one-to-many or many-to-many association), it will not be deleted by default. This behavior is completely consistent; a change to the internal state of another entity should not cause the associated entity to vanish. Likewise, adding an entity to a collection does not cause that entity to become persistent, by default."
+msgstr "另一方面,如果从一对多或多对多关联的 collection 中移除一个实体,在缺省情况下这个对象并不会被删除。这个行为是完全合乎逻辑的--改变一个实体的内部状态不应该使与它关联的实体消失掉。同样的,向 collection 增加一个实体不会使之被持久化。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Adding an entity to a collection, by default, merely creates a link between "
-"the two entities. Removing the entity will remove the link. This is "
-"appropriate for all sorts of cases. However, it is not appropriate in the "
-"case of a parent/child relationship. In this case, the life of the child is "
-"bound to the life cycle of the parent."
-msgstr ""
-"实际上,向 Collection 增加一个实体的缺省动作只是在两个实体之间创建一个连接而"
-"已,同样移除的时候也只是删除连接。这种处理对于所有的情况都是合适的。对于父子"
-"关系则是完全不适合的,在这种关系下,子对象的生存绑定于父对象的生存周期。 "
+msgid "Adding an entity to a collection, by default, merely creates a link between the two entities. Removing the entity will remove the link. This is appropriate for all sorts of cases. However, it is not appropriate in the case of a parent/child relationship. In this case, the life of the child is bound to the life cycle of the parent."
+msgstr "实际上,向 Collection 增加一个实体的缺省动作只是在两个实体之间创建一个连接而已,同样移除的时候也只是删除连接。这种处理对于所有的情况都是合适的。对于父子关系则是完全不适合的,在这种关系下,子对象的生存绑定于父对象的生存周期。 "
 
 #. Tag: title
 #, no-c-format
@@ -118,11 +61,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Suppose we start with a simple <literal>&lt;one-to-many&gt;</literal> "
-"association from <literal>Parent</literal> to <literal>Child</literal>."
-msgstr ""
-"假设我们要实现一个简单的从 Parent 到 Child 的 &lt;one-to-many&gt; 关联。"
+msgid "Suppose we start with a simple <literal>&lt;one-to-many&gt;</literal> association from <literal>Parent</literal> to <literal>Child</literal>."
+msgstr "假设我们要实现一个简单的从 Parent 到 Child 的 &lt;one-to-many&gt; 关联。"
 
 #. Tag: para
 #, no-c-format
@@ -136,31 +76,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"an <literal>INSERT</literal> to create the record for <literal>c</literal>"
-msgstr ""
-"一条 <literal>INSERT</literal> 语句,为 <literal>c</literal> 创建一条记录"
+msgid "an <literal>INSERT</literal> to create the record for <literal>c</literal>"
+msgstr "一条 <literal>INSERT</literal> 语句,为 <literal>c</literal> 创建一条记录"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"an <literal>UPDATE</literal> to create the link from <literal>p</literal> to "
-"<literal>c</literal>"
-msgstr ""
-"一条 <literal>UPDATE</literal> 语句,创建从 <literal>p</literal> 到 "
-"<literal>c</literal> 的连接"
+msgid "an <literal>UPDATE</literal> to create the link from <literal>p</literal> to <literal>c</literal>"
+msgstr "一条 <literal>UPDATE</literal> 语句,创建从 <literal>p</literal> 到 <literal>c</literal> 的连接"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"This is not only inefficient, but also violates any <literal>NOT NULL</"
-"literal> constraint on the <literal>parent_id</literal> column. You can fix "
-"the nullability constraint violation by specifying <literal>not-null=\"true"
-"\"</literal> in the collection mapping:"
-msgstr ""
-"这样做不仅效率低,而且违反了 <literal>parent_id</literal> 列 "
-"<literal>parent_id</literal> 非空的限制。我们可以通过在集合类映射上指定 "
-"<literal>not-null=\"true\"</literal> 来解决违反非空约束的问题:"
+msgid "This is not only inefficient, but also violates any <literal>NOT NULL</literal> constraint on the <literal>parent_id</literal> column. You can fix the nullability constraint violation by specifying <literal>not-null=\"true\"</literal> in the collection mapping:"
+msgstr "这样做不仅效率低,而且违反了 <literal>parent_id</literal> 列 <literal>parent_id</literal> 非空的限制。我们可以通过在集合类映射上指定 <literal>not-null=\"true\"</literal> 来解决违反非空约束的问题:"
 
 #. Tag: para
 #, no-c-format
@@ -169,35 +96,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The underlying cause of this behavior is that the link (the foreign key "
-"<literal>parent_id</literal>) from <literal>p</literal> to <literal>c</"
-"literal> is not considered part of the state of the <literal>Child</literal> "
-"object and is therefore not created in the <literal>INSERT</literal>. The "
-"solution is to make the link part of the <literal>Child</literal> mapping."
-msgstr ""
-"这种现象的根本原因是从 <literal>p</literal> 到 <literal>c</literal> 的连接"
-"(外键 parent_id)没有被当作 <literal>Child</literal> 对象状态的一部分,因而"
-"没有在 <literal>INSERT</literal> 语句中被创建。因此解决的办法就是把这个连接添"
-"加到 <literal>Child</literal> 的映射中。"
+msgid "The underlying cause of this behavior is that the link (the foreign key <literal>parent_id</literal>) from <literal>p</literal> to <literal>c</literal> is not considered part of the state of the <literal>Child</literal> object and is therefore not created in the <literal>INSERT</literal>. The solution is to make the link part of the <literal>Child</literal> mapping."
+msgstr "这种现象的根本原因是从 <literal>p</literal> 到 <literal>c</literal> 的连接(外键 parent_id)没有被当作 <literal>Child</literal> 对象状态的一部分,因而没有在 <literal>INSERT</literal> 语句中被创建。因此解决的办法就是把这个连接添加到 <literal>Child</literal> 的映射中。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You also need to add the <literal>parent</literal> property to the "
-"<literal>Child</literal> class."
-msgstr ""
-"你还需要为类 <literal>Child</literal> 添加 <literal>parent</literal> 属性。"
+msgid "You also need to add the <literal>parent</literal> property to the <literal>Child</literal> class."
+msgstr "你还需要为类 <literal>Child</literal> 添加 <literal>parent</literal> 属性。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Now that the <literal>Child</literal> entity is managing the state of the "
-"link, we tell the collection not to update the link. We use the "
-"<literal>inverse</literal> attribute to do this:"
-msgstr ""
-"现在实体 <literal>Child</literal> 在管理连接的状态,为了使 collection 不更新"
-"连接,我们使用 <literal>inverse</literal> 属性:"
+msgid "Now that the <literal>Child</literal> entity is managing the state of the link, we tell the collection not to update the link. We use the <literal>inverse</literal> attribute to do this:"
+msgstr "现在实体 <literal>Child</literal> 在管理连接的状态,为了使 collection 不更新连接,我们使用 <literal>inverse</literal> 属性:"
 
 #. Tag: para
 #, no-c-format
@@ -211,12 +121,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You could also create an <literal>addChild()</literal> method of "
-"<literal>Parent</literal>."
-msgstr ""
-"为了让事情变得井井有条,可以为 <literal>Parent</literal> 加一个 "
-"<literal>addChild()</literal> 方法。"
+msgid "You could also create an <literal>addChild()</literal> method of <literal>Parent</literal>."
+msgstr "为了让事情变得井井有条,可以为 <literal>Parent</literal> 加一个 <literal>addChild()</literal> 方法。"
 
 #. Tag: para
 #, no-c-format
@@ -230,12 +136,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You can address the frustrations of the explicit call to <literal>save()</"
-"literal> by using cascades."
-msgstr ""
-"需要显式调用 <literal>save()</literal> 仍然很麻烦,我们可以用级联来解决这个问"
-"题。 "
+msgid "You can address the frustrations of the explicit call to <literal>save()</literal> by using cascades."
+msgstr "需要显式调用 <literal>save()</literal> 仍然很麻烦,我们可以用级联来解决这个问题。 "
 
 #. Tag: para
 #, no-c-format
@@ -244,13 +146,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Similarly, we do not need to iterate over the children when saving or "
-"deleting a <literal>Parent</literal>. The following removes <literal>p</"
-"literal> and all its children from the database."
-msgstr ""
-"同样的,保存或删除 <literal>Parent</literal> 对象的时候并不需要遍历其子对象。"
-"下面的代码会删除对象 <literal>p</literal> 及其所有子对象对应的数据库记录。 "
+msgid "Similarly, we do not need to iterate over the children when saving or deleting a <literal>Parent</literal>. The following removes <literal>p</literal> and all its children from the database."
+msgstr "同样的,保存或删除 <literal>Parent</literal> 对象的时候并不需要遍历其子对象。下面的代码会删除对象 <literal>p</literal> 及其所有子对象对应的数据库记录。 "
 
 #. Tag: para
 #, no-c-format
@@ -259,41 +156,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"will not remove <literal>c</literal> from the database. In this case, it "
-"will only remove the link to <literal>p</literal> and cause a <literal>NOT "
-"NULL</literal> constraint violation. You need to explicitly <literal>delete()"
-"</literal> the <literal>Child</literal>."
-msgstr ""
-"不会从数据库删除<literal>c</literal>;它只会删除与 <literal>p</literal> 之间"
-"的连接(并且会导致违反 <literal>NOT NULL</literal> 约束,在这个例子中)。你需"
-"要显式调用 <literal>delete()</literal> 来删除 <literal>Child</literal>。 "
+msgid "will not remove <literal>c</literal> from the database. In this case, it will only remove the link to <literal>p</literal> and cause a <literal>NOT NULL</literal> constraint violation. You need to explicitly <literal>delete()</literal> the <literal>Child</literal>."
+msgstr "不会从数据库删除<literal>c</literal>;它只会删除与 <literal>p</literal> 之间的连接(并且会导致违反 <literal>NOT NULL</literal> 约束,在这个例子中)。你需要显式调用 <literal>delete()</literal> 来删除 <literal>Child</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"In our case, a <literal>Child</literal> cannot exist without its parent. So "
-"if we remove a <literal>Child</literal> from the collection, we do want it "
-"to be deleted. To do this, we must use <literal>cascade=\"all-delete-orphan"
-"\"</literal>."
-msgstr ""
-"在我们的例子中,如果没有父对象,子对象就不应该存在,如果将子对象从 "
-"collection 中移除,实际上我们是想删除它。要实现这种要求,就必须使用 "
-"<literal>cascade=\"all-delete-orphan\"</literal>。 "
+msgid "In our case, a <literal>Child</literal> cannot exist without its parent. So if we remove a <literal>Child</literal> from the collection, we do want it to be deleted. To do this, we must use <literal>cascade=\"all-delete-orphan\"</literal>."
+msgstr "在我们的例子中,如果没有父对象,子对象就不应该存在,如果将子对象从 collection 中移除,实际上我们是想删除它。要实现这种要求,就必须使用 <literal>cascade=\"all-delete-orphan\"</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Even though the collection mapping specifies <literal>inverse=\"true\"</"
-"literal>, cascades are still processed by iterating the collection elements. "
-"If you need an object be saved, deleted or updated by cascade, you must add "
-"it to the collection. It is not enough to simply call <literal>setParent()</"
-"literal>."
-msgstr ""
-"注意:即使在 collection 一方的映射中指定 <literal>inverse=\"true\"</"
-"literal>,级联仍然是通过遍历 collection 中的元素来处理的。如果你想要通过级联"
-"进行子对象的插入、删除、更新操作,就必须把它加到 collection 中,只调用 "
-"<literal>setParent()</literal> 是不够的。 "
+msgid "Even though the collection mapping specifies <literal>inverse=\"true\"</literal>, cascades are still processed by iterating the collection elements. If you need an object be saved, deleted or updated by cascade, you must add it to the collection. It is not enough to simply call <literal>setParent()</literal>."
+msgstr "注意:即使在 collection 一方的映射中指定 <literal>inverse=\"true\"</literal>,级联仍然是通过遍历 collection 中的元素来处理的。如果你想要通过级联进行子对象的插入、删除、更新操作,就必须把它加到 collection 中,只调用 <literal>setParent()</literal> 是不够的。 "
 
 #. Tag: title
 #, no-c-format
@@ -301,57 +175,19 @@
 msgstr "级联与未保存值(<literal>unsaved-value</literal>)"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</"
-"literal>, made some changes in a UI action and wanted to persist these "
-"changes in a new session by calling <literal>update()</literal>. The "
-"<literal>Parent</literal> will contain a collection of children and, since "
-"the cascading update is enabled, Hibernate needs to know which children are "
-"newly instantiated and which represent existing rows in the database. We "
-"will also assume that both <literal>Parent</literal> and <literal>Child</"
-"literal> have generated identifier properties of type <literal>Long</"
-"literal>. Hibernate will use the identifier and version/timestamp property "
-"value to determine which of the children are new. (See <xref linkend="
-"\"objectstate-saveorupdate\" />.) <emphasis>In Hibernate3, it is no longer "
-"necessary to specify an <literal>unsaved-value</literal> explicitly.</"
-"emphasis>"
-msgstr ""
-"假设我们从 <literal>Session</literal> 中装入了一个 <literal>Parent</literal> "
-"对象,用户界面对其进行了修改,然后希望在一个新的 Session 里面调用 "
-"<literal>update()</literal> 来保存这些修改。对象 <literal>Parent</literal> 包"
-"含了子对象的集合,由于打开了级联更新,Hibernate 需要知道哪些 Child 对象是新实"
-"例化的,哪些代表数据库中已经存在的记录。我们假设 <literal>Parent</literal> "
-"和 <literal>Child</literal> 对象的标识属性都是自动生成的,类型为 "
-"<literal>java.lang.Long</literal>。Hibernate 会使用标识属性的值,和 version "
-"或 timestamp 属性,来判断哪些子对象是新的。(参见 <xref linkend="
-"\"objectstate-saveorupdate\"/>)<emphasis>在 Hibernate3 中,显式指定 "
-"<literal>unsaved-value</literal> 不再是必须的了。</emphasis>"
+#, no-c-format
+msgid "Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</literal>, made some changes in a UI action and wanted to persist these changes in a new session by calling <literal>update()</literal>. The <literal>Parent</literal> will contain a collection of children and, since the cascading update is enabled, Hibernate needs to know which children are newly instantiated and which represent existing rows in the database. We will also assume that both <literal>Parent</literal> and <literal>Child</literal> have generated identifier properties of type <literal>Long</literal>. Hibernate will use the identifier and version/timestamp property value to determine which of the children are new. (See <xref linkend=\"objectstate-saveorupdate\" />.) <emphasis>In Hibernate3, it is no longer necessary to specify an <literal>unsaved-value</literal> explicitly.</emphasis>"
+msgstr "假设我们从 <literal>Session</literal> 中装入了一个 <literal>Parent</literal> 对象,用户界面对其进行了修改,然后希望在一个新的 Session 里面调用 <literal>update()</literal> 来保存这些修改。对象 <literal>Parent</literal> 包含了子对象的集合,由于打开了级联更新,Hibernate 需要知道哪些 Child 对象是新实例化的,哪些代表数据库中已经存在的记录。我们假设 <literal>Parent</literal> 和 <literal>Child</literal> 对象的标识属性都是自动生成的,类型为 <literal>java.lang.Long</literal>。Hibernate 会使用标识属性的值,和 version 或 timestamp 属性,来判断哪些子对象是新的。(参见 <xref linkend=\"objectstate-saveorupdate\"/>)<emphasis>在 Hibernate3 中,显式指定 <literal>unsaved-value</literal> 不再是必须的了。</emphasis> "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The following code will update <literal>parent</literal> and <literal>child</"
-"literal> and insert <literal>newChild</literal>:"
-msgstr ""
-"下面的代码会更新 <literal>parent</literal> 和 <literal>child</literal> 对象,"
-"并且插入 <literal>newChild</literal> 对象。 "
+msgid "The following code will update <literal>parent</literal> and <literal>child</literal> and insert <literal>newChild</literal>:"
+msgstr "下面的代码会更新 <literal>parent</literal> 和 <literal>child</literal> 对象,并且插入 <literal>newChild</literal> 对象。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"This may be suitable for the case of a generated identifier, but what about "
-"assigned identifiers and composite identifiers? This is more difficult, "
-"since Hibernate cannot use the identifier property to distinguish between a "
-"newly instantiated object, with an identifier assigned by the user, and an "
-"object loaded in a previous session. In this case, Hibernate will either use "
-"the timestamp or version property, or will actually query the second-level "
-"cache or, worst case, the database, to see if the row exists."
-msgstr ""
-"这对于自动生成标识的情况是非常好的,但是自分配的标识和复合标识怎么办呢?这是"
-"有点麻烦,因为 Hibernate 没有办法区分新实例化的对象(标识被用户指定了)和前一"
-"个 Session 装入的对象。在这种情况下,Hibernate 会使用 timestamp 或 version 属"
-"性,或者查询第二级缓存,或者最坏的情况,查询数据库,来确认是否此行存在。 "
+msgid "This may be suitable for the case of a generated identifier, but what about assigned identifiers and composite identifiers? This is more difficult, since Hibernate cannot use the identifier property to distinguish between a newly instantiated object, with an identifier assigned by the user, and an object loaded in a previous session. In this case, Hibernate will either use the timestamp or version property, or will actually query the second-level cache or, worst case, the database, to see if the row exists."
+msgstr "这对于自动生成标识的情况是非常好的,但是自分配的标识和复合标识怎么办呢?这是有点麻烦,因为 Hibernate 没有办法区分新实例化的对象(标识被用户指定了)和前一个 Session 装入的对象。在这种情况下,Hibernate 会使用 timestamp 或 version 属性,或者查询第二级缓存,或者最坏的情况,查询数据库,来确认是否此行存在。 "
 
 #. Tag: title
 #, no-c-format
@@ -360,28 +196,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The sections we have just covered can be a bit confusing. However, in "
-"practice, it all works out nicely. Most Hibernate applications use the "
-"parent/child pattern in many places."
-msgstr ""
-"这里有不少东西需要融会贯通,可能会让新手感到迷惑。但是在实践中它们都工作地非"
-"常好。大部分 Hibernate 应用程序都会经常用到父子对象模式。 "
+msgid "The sections we have just covered can be a bit confusing. However, in practice, it all works out nicely. Most Hibernate applications use the parent/child pattern in many places."
+msgstr "这里有不少东西需要融会贯通,可能会让新手感到迷惑。但是在实践中它们都工作地非常好。大部分 Hibernate 应用程序都会经常用到父子对象模式。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"We mentioned an alternative in the first paragraph. None of the above issues "
-"exist in the case of <literal>&lt;composite-element&gt;</literal> mappings, "
-"which have exactly the semantics of a parent/child relationship. "
-"Unfortunately, there are two big limitations with composite element classes: "
-"composite elements cannot own collections and they should not be the child "
-"of any entity other than the unique parent."
-msgstr ""
-"在第一段中我们曾经提到另一个方案。上面的这些问题都不会出现在 <literal>&lt;"
-"composite-element&gt;</literal> 映射中,它准确地表达了父子关系的语义。很不幸"
-"复合元素还有两个重大限制:复合元素不能拥有 collections,并且,除了用于惟一的"
-"父对象外,它们不能再作为其它任何实体的子对象。 "
+msgid "We mentioned an alternative in the first paragraph. None of the above issues exist in the case of <literal>&lt;composite-element&gt;</literal> mappings, which have exactly the semantics of a parent/child relationship. Unfortunately, there are two big limitations with composite element classes: composite elements cannot own collections and they should not be the child of any entity other than the unique parent."
+msgstr "在第一段中我们曾经提到另一个方案。上面的这些问题都不会出现在 <literal>&lt;composite-element&gt;</literal> 映射中,它准确地表达了父子关系的语义。很不幸复合元素还有两个重大限制:复合元素不能拥有 collections,并且,除了用于惟一的父对象外,它们不能再作为其它任何实体的子对象。 "
 
 #~ msgid ""
 #~ "<![CDATA[<set name=\"children\">\n"
@@ -393,7 +214,6 @@
 #~ "    <key column=\"parent_id\"/>\n"
 #~ "    <one-to-many class=\"Child\"/>\n"
 #~ "</set>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[Parent p = .....;\n"
 #~ "Child c = new Child();\n"
@@ -406,7 +226,6 @@
 #~ "p.getChildren().add(c);\n"
 #~ "session.save(c);\n"
 #~ "session.flush();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<set name=\"children\">\n"
 #~ "    <key column=\"parent_id\" not-null=\"true\"/>\n"
@@ -417,14 +236,12 @@
 #~ "    <key column=\"parent_id\" not-null=\"true\"/>\n"
 #~ "    <one-to-many class=\"Child\"/>\n"
 #~ "</set>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true"
 #~ "\"/>]]>"
 #~ msgstr ""
 #~ "<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true"
 #~ "\"/>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<set name=\"children\" inverse=\"true\">\n"
 #~ "    <key column=\"parent_id\"/>\n"
@@ -435,7 +252,6 @@
 #~ "    <key column=\"parent_id\"/>\n"
 #~ "    <one-to-many class=\"Child\"/>\n"
 #~ "</set>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
 #~ "Child c = new Child();\n"
@@ -450,7 +266,6 @@
 #~ "p.getChildren().add(c);\n"
 #~ "session.save(c);\n"
 #~ "session.flush();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[public void addChild(Child c) {\n"
 #~ "    c.setParent(this);\n"
@@ -461,7 +276,6 @@
 #~ "    c.setParent(this);\n"
 #~ "    children.add(c);\n"
 #~ "}]]>"
-
 #~ msgid ""
 #~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
 #~ "Child c = new Child();\n"
@@ -474,7 +288,6 @@
 #~ "p.addChild(c);\n"
 #~ "session.save(c);\n"
 #~ "session.flush();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
 #~ "    <key column=\"parent_id\"/>\n"
@@ -485,7 +298,6 @@
 #~ "    <key column=\"parent_id\"/>\n"
 #~ "    <one-to-many class=\"Child\"/>\n"
 #~ "</set>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
 #~ "Child c = new Child();\n"
@@ -496,7 +308,6 @@
 #~ "Child c = new Child();\n"
 #~ "p.addChild(c);\n"
 #~ "session.flush();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
 #~ "session.delete(p);\n"
@@ -505,7 +316,6 @@
 #~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
 #~ "session.delete(p);\n"
 #~ "session.flush();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
 #~ "Child c = (Child) p.getChildren().iterator().next();\n"
@@ -518,7 +328,6 @@
 #~ "p.getChildren().remove(c);\n"
 #~ "c.setParent(null);\n"
 #~ "session.flush();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
 #~ "Child c = (Child) p.getChildren().iterator().next();\n"
@@ -531,7 +340,6 @@
 #~ "p.getChildren().remove(c);\n"
 #~ "session.delete(c);\n"
 #~ "session.flush();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all-delete-"
 #~ "orphan\">\n"
@@ -544,7 +352,6 @@
 #~ "    <key column=\"parent_id\"/>\n"
 #~ "    <one-to-many class=\"Child\"/>\n"
 #~ "</set>]]>"
-
 #~ msgid ""
 #~ "<![CDATA[//parent and child were both loaded in a previous session\n"
 #~ "parent.addChild(child);\n"
@@ -559,3 +366,4 @@
 #~ "parent.addChild(newChild);\n"
 #~ "session.update(parent);\n"
 #~ "session.flush();]]>"
+

Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/portability.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/portability.po	2009-12-10 21:31:45 UTC (rev 97707)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/portability.po	2009-12-11 00:50:05 UTC (rev 97708)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-12-03T00:15:27\n"
-"PO-Revision-Date: 2009-12-07 20:00+1000\n"
+"PO-Revision-Date: 2009-12-11 10:48+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -37,7 +37,7 @@
 #. Tag: para
 #, no-c-format
 msgid "The first line of portability for Hibernate is the dialect, which is a specialization of the <classname>org.hibernate.dialect.Dialect</classname> contract. A dialect encapsulates all the differences in how Hibernate must communicate with a particular database to accomplish some task like getting a sequence value or structuring a SELECT query. Hibernate bundles a wide range of dialects for many of the most popular databases. If you find that your particular database is not among them, it is not terribly difficult to write your own."
-msgstr ""
+msgstr "Hibernate 的移植性的首要问题是方言(dialect),也就是 <classname>org.hibernate.dialect.Dialect</classname> 合约的具体实例。方言封装了 Hibernate 和特定数据库通讯以完成某些任务如获取序列值或构建 SELECT 查询等的所有差异。Hibernate 捆绑了用于许多最常用的数据库的方言。如果你发现自己使用的数据库不在其中,编写自定义的方言也不是很困难的事情。"
 
 #. Tag: title
 #, no-c-format
@@ -52,17 +52,17 @@
 #. Tag: para
 #, no-c-format
 msgid "Starting with version 3.2, Hibernate introduced the notion of automatically detecting the dialect to use based on the <interfacename>java.sql.DatabaseMetaData</interfacename> obtained from a <interfacename>java.sql.Connection</interfacename> to that database. This was much better, expect that this resolution was limited to databases Hibernate know about ahead of time and was in no way configurable or overrideable."
-msgstr ""
+msgstr "从版本 3.2 开始,Hibernate 引入了方言的自动检测,它基于从该数据库的 <interfacename>java.sql.Connection</interfacename> 上获得的 <interfacename>java.sql.DatabaseMetaData</interfacename>。这是一个更好的方案,但它局限于 Hibernate 已知的数据库且无法进行配置和覆盖。"
 
 #. Tag: para
 #, no-c-format
 msgid "Starting with version 3.3, Hibernate has a fare more powerful way to automatically determine which dialect to should be used by relying on a series of delegates which implement the <interfacename>org.hibernate.dialect.resolver.DialectResolver</interfacename> which defines only a single method:<programlisting>public Dialect resolveDialect(DatabaseMetaData metaData) throws JDBCConnectionException</programlisting>. The basic contract here is that if the resolver 'understands' the given database metadata then it returns the corresponding Dialect; if not it returns null and the process continues to the next resolver. The signature also identifies <exceptionname>org.hibernate.exception.JDBCConnectionException</exceptionname> as possibly being thrown. A JDBCConnectionException here is interpreted to imply a \"non transient\" (aka non-recoverable) connection problem and is used to indicate an immediate stop to resolution attempts. All other exceptions result in a warning and!
  continuing on to the next resolver."
-msgstr ""
+msgstr "从版本 3.2 开始,Hibernate 有了更为强大的自动决定应该使用哪个方言的方法,这根据一系列实现 <interfacename>org.hibernate.dialect.resolver.DialectResolver</interfacename> 接口的代理,它们只定义一个方法:<programlisting>public Dialect resolveDialect(DatabaseMetaData metaData) throws JDBCConnectionException</programlisting>。这里的基本合约是如果解析者(resolver)“理解”给点数据库的元数据并返回对应的方言;否则返回 null 并使用下一个解析者。这个签名也指定可能抛出的异常 <exceptionname>org.hibernate.exception.JDBCConnectionException</exceptionname>。这里的 JDBCConnectionException 被认为是“非瞬时的”(也就是不可恢复的)连接问题且指示立即终止解析。所有其他的异常都导致警告发出并使用下一个解析者。"
 
 #. Tag: para
 #, no-c-format
 msgid "The cool part about these resolvers is that users can also register their own custom resolvers which will be processed ahead of the built-in Hibernate ones. This might be useful in a number of different situations: it allows easy integration for auto-detection of dialects beyond those shipped with HIbernate itself; it allows you to specify to use a custom dialect when a particular database is recognized; etc. To register one or more resolvers, simply specify them (seperated by commas, tabs or spaces) using the 'hibernate.dialect_resolvers' configuration setting (see the <constant>DIALECT_RESOLVERS</constant> constant on <classname>org.hibernate.cfg.Environment</classname>)."
-msgstr ""
+msgstr "这些解析者最棒的功能是用户也可以注册自定义的解析者,它们将在内置的解析者之前被调用。在许多情况下这可能很有用:它可以轻易地集成内置方言之外的方言的自动检测;它让你可以使用自定义的方言等。要注册一个或多个解析者,只要用 'hibernate.dialect_resolvers' 配置设置指定它们(由逗号、制表符或空格隔开)就可以了(请参考 <classname>org.hibernate.cfg.Environment</classname> 上的 <constant>DIALECT_RESOLVERS</constant>)。"
 
 #. Tag: title
 #, no-c-format
@@ -72,7 +72,7 @@
 #. Tag: para
 #, no-c-format
 msgid "When considering portability between databases, another important decision is selecting the identifier generation stratagy you want to use. Originally Hibernate provided the <emphasis>native</emphasis> generator for this purpose, which was intended to select between a <emphasis>sequence</emphasis>, <emphasis>identity</emphasis>, or <emphasis>table</emphasis> strategy depending on the capability of the underlying database. However, an insidious implication of this approach comes about when targtetting some databases which support <emphasis>identity</emphasis> generation and some which do not. <emphasis>identity</emphasis> generation relies on the SQL definition of an IDENTITY (or auto-increment) column to manage the identifier value; it is what is known as a post-insert generation strategy becauase the insert must actually happen before we can know the identifier value. Because Hibernate relies on this identifier value to uniquely reference entities within a persisten!
 ce context it must then issue the insert immediately when the users requests the entitiy be associated with the session (like via save() e.g.) regardless of current transactional semantics. The underlying issue is that the semanctics of the application itself changes in these cases."
-msgstr ""
+msgstr "当考虑数据库的移植性时,另外一个重要的考量是选择标识符生成策略。Hibernate 原先提供的 <emphasis>native</emphasis> 生成器的目的是根据底层数据库的能力在 <emphasis>sequence</emphasis>、<emphasis>identity</emphasis> 或 <emphasis>table</emphasis> 策略间进行选择。然而,这个方法一个潜在的问题是有些数据库支持<emphasis>标识符(identity)</emphasis>生成而有些则不支持。<emphasis>标识符(identity)</emphasis> 生成依赖于管理标识符值的 IDENTITY(或 auto-increment)字段的 SQL 定义。它也成为 post-insert 生成策略,因为 insert 必须在知道标识符值后才能实际发生。因为 Hibernate 依赖于这个标识符值来唯一地引用持久性上下文里的实体,当用户请求和会话相关联的实体时,它必须立即执行 insert  语句而不管当前的事务性语义。底层的问题是应用程序的语义在这些情况下自è!
 º«ä¹Ÿä¼šå‘生改变。"
 
 #. Tag: para
 #, no-c-format
@@ -112,20 +112,20 @@
 #. Tag: para
 #, no-c-format
 msgid "This is a new area in Hibernate and as such it is not as mature as the overall Hibernate experience."
-msgstr ""
+msgstr "这是 Hibernate 的一个新的领域,暂时还不如 Hibernate 总体那么成熟。"
 
 #. Tag: para
 #, no-c-format
 msgid "SQL functions can be referenced in many ways by users. However, not all databases support the same set of functions. Hibernate, provides a means of mapping a <emphasis>logical</emphasis> function name to a a delegate which knows how to render that particular function, perhaps even using a totally different physical function call."
-msgstr ""
+msgstr "用户可以以多种方式引用 SQL 函数。然而,不是所有的数据库都支持相同的函数集。Hibernate 提供了一种映射<emphasis>逻辑</emphasis>函数名到代理的方法,这个代理知道如何解析特定的函数,甚至可能使用完全不同的物理函数调用。"
 
 #. Tag: para
 #, no-c-format
 msgid "Technically this function registration is handled through the <classname>org.hibernate.dialect.function.SQLFunctionRegistry</classname> class which is intended to allow users to provide custom function definitions without having to provide a custom dialect. This specific behavior is not fully completed as of yet."
-msgstr ""
+msgstr "从技术上来讲,这个函数注册是通过 <classname>org.hibernate.dialect.function.SQLFunctionRegistry</classname> 类进行处理的,它的目的是允许用户提供自定义的函数定义而无需提供自定义的方言。这种特殊的行为目前还未全部开发完毕。"
 
 #. Tag: para
 #, no-c-format
 msgid "It is sort of implemented such that users can programatically register functions with the <classname>org.hibernate.cfg.Configuration</classname> and those functions will be recognized for HQL."
-msgstr ""
+msgstr "其中一些功能已经实现,如用户可以在程序里用 <classname>org.hibernate.cfg.Configuration</classname> 注册函数且这些函数可被 HQL 识别。"
 

Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/preface.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/preface.po	2009-12-10 21:31:45 UTC (rev 97707)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/preface.po	2009-12-11 00:50:05 UTC (rev 97708)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-12-03T00:15:27\n"
-"PO-Revision-Date: 2007-02-26 10:59+1000\n"
+"PO-Revision-Date: 2009-12-11 09:54+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -21,108 +21,43 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Working with object-oriented software and a relational database can be "
-"cumbersome and time consuming in today's enterprise environments. Hibernate "
-"is an object/relational mapping tool for Java environments. The term object/"
-"relational mapping (ORM) refers to the technique of mapping a data "
-"representation from an object model to a relational data model with a SQL-"
-"based schema."
-msgstr ""
-"在今日的企业环境中,把面向对象的软件和关系型数据库一起使用可能是相当麻烦和浪"
-"费时间的。Hibernate 是一个面向 Java 环境的对象/关系型数据库映射工具。对象/关"
-"系型数据库映射(object/relational mapping,ORM)这个术语表示一种技术,用来把"
-"对象模型表示的对象映射到基于 SQL 的关系模型数据结构中去。"
+msgid "Working with object-oriented software and a relational database can be cumbersome and time consuming in today's enterprise environments. Hibernate is an object/relational mapping tool for Java environments. The term object/relational mapping (ORM) refers to the technique of mapping a data representation from an object model to a relational data model with a SQL-based schema."
+msgstr "在今日的企业环境中,把面向对象的软件和关系型数据库一起使用可能是相当麻烦和浪费时间的。Hibernate 是一个面向 Java 环境的对象/关系型数据库映射工具。对象/关系型数据库映射(object/relational mapping,ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于 SQL 的关系模型数据结构中去。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate not only takes care of the mapping from Java classes to database "
-"tables (and from Java data types to SQL data types), but also provides data "
-"query and retrieval facilities. It can also significantly reduce development "
-"time otherwise spent with manual data handling in SQL and JDBC."
-msgstr ""
-"Hibernate 不仅管理 Java 类到数据库表的映射(包括 Java 数据类型到 SQL 数据类型"
-"的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时对人工使用 SQL "
-"和 JDBC 处理数据的时间。"
+#, no-c-format
+msgid "Hibernate not only takes care of the mapping from Java classes to database tables (and from Java data types to SQL data types), but also provides data query and retrieval facilities. It can also significantly reduce development time otherwise spent with manual data handling in SQL and JDBC."
+msgstr "Hibernate 不仅管理 Java 类到数据库表的映射(包括 Java 数据类型到 SQL 数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时对人工使用 SQL 和 JDBC 处理数据的时间。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Hibernate's goal is to relieve the developer from 95 percent of common data "
-"persistence related programming tasks. Hibernate may not be the best "
-"solution for data-centric applications that only use stored-procedures to "
-"implement the business logic in the database, it is most useful with object-"
-"oriented domain models and business logic in the Java-based middle-tier. "
-"However, Hibernate can certainly help you to remove or encapsulate vendor-"
-"specific SQL code and will help with the common task of result set "
-"translation from a tabular representation to a graph of objects."
-msgstr ""
-"Hibernate 的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的 95%。"
-"对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,"
-"Hibernate 可能不是最好的解决方案;对于那些在基于 Java 的中间层应用中,它们实"
-"现面向对象的业务模型和商业逻辑的应用,Hibernate 是最有用的。不管怎样,"
-"Hibernate 一定可以帮助你消除或者包装那些针对特定厂商的 SQL 代码,而且帮助你结"
-"果集从表格式的表示形式转换到一系列的对象中去。"
+#, no-c-format
+msgid "Hibernate's goal is to relieve the developer from 95 percent of common data persistence related programming tasks. Hibernate may not be the best solution for data-centric applications that only use stored-procedures to implement the business logic in the database, it is most useful with object-oriented domain models and business logic in the Java-based middle-tier. However, Hibernate can certainly help you to remove or encapsulate vendor-specific SQL code and will help with the common task of result set translation from a tabular representation to a graph of objects."
+msgstr "Hibernate 的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的 95%。对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,Hibernate 可能不是最好的解决方案;对于那些在基于 Java 的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用,Hibernate 是最有用的。不管怎样,Hibernate 一定可以帮助你消除或者包装那些针对特定厂商的 SQL 代码,而且帮助你结果集从表格式的表示形式转换到一系列的对象中去。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If you are new to Hibernate and Object/Relational Mapping or even Java, "
-"please follow these steps:"
-msgstr ""
-"如果你对 Hibernate 和对象/关系型数据库映射还是个新手,甚至对 Java 也不熟悉,"
-"请按照下面的步骤来学习。"
+msgid "If you are new to Hibernate and Object/Relational Mapping or even Java, please follow these steps:"
+msgstr "如果你对 Hibernate 和对象/关系型数据库映射还是个新手,甚至对 Java 也不熟悉,请按照下面的步骤来学习。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Read <xref linkend=\"tutorial\" /> for a tutorial with step-by-step "
-"instructions. The source code for the tutorial is included in the "
-"distribution in the <literal>doc/reference/tutorial/</literal> directory."
-msgstr ""
-"阅读 <xref linkend=\"Introduction_to_Hibernate\"/>,这是一篇包含详细的逐步知"
-"道的指南。本指南的源代码包含在发行包里,你可以在 <literal>doc/reference/"
-"tutorial/</literal> 目录下找到。"
+#, no-c-format
+msgid "Read <xref linkend=\"tutorial\" /> for a tutorial with step-by-step instructions. The source code for the tutorial is included in the distribution in the <literal>doc/reference/tutorial/</literal> directory."
+msgstr "阅读 <xref linkend=\"Introduction_to_Hibernate\"/>,这是一篇包含详细的逐步知道的指南。本指南的源代码包含在发行包里,你可以在 <literal>doc/reference/tutorial/</literal> 目录下找到。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Read <xref linkend=\"architecture\" /> to understand the environments where "
-"Hibernate can be used."
-msgstr ""
-"阅读 <xref linkend=\"Architecture\"/> 来理解 Hibernate 可以使用的环境。"
+#, no-c-format
+msgid "Read <xref linkend=\"architecture\" /> to understand the environments where Hibernate can be used."
+msgstr "阅读 <xref linkend=\"Architecture\"/> 来理解 Hibernate 可以使用的环境。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"View the <literal>eg/</literal> directory in the Hibernate distribution. It "
-"contains a simple standalone application. Copy your JDBC driver to the "
-"<literal>lib/</literal> directory and edit <literal>etc/hibernate."
-"properties</literal>, specifying correct values for your database. From a "
-"command prompt in the distribution directory, type <literal>ant eg</literal> "
-"(using Ant), or under Windows, type <literal>build eg</literal>."
-msgstr ""
-"查看 Hibernate 发行包中的 <literal>eg/</literal> 目录,里面有个一简单的独立运"
-"行的程序。把你的 JDBC 驱动复制到 <literal>lib/</literal> 目录并修改一下 "
-"<literal>etc/hibernate.properties</literal>,指定数据库的信息。然后进入命令"
-"行,切换到发行包的目录,输入 <literal>ant eg</literal>(使用 Ant),或者在 "
-"Windows 系统下使用 <literal>build eg</literal>。"
+#, no-c-format
+msgid "View the <literal>eg/</literal> directory in the Hibernate distribution. It contains a simple standalone application. Copy your JDBC driver to the <literal>lib/</literal> directory and edit <literal>etc/hibernate.properties</literal>, specifying correct values for your database. From a command prompt in the distribution directory, type <literal>ant eg</literal> (using Ant), or under Windows, type <literal>build eg</literal>."
+msgstr "查看 Hibernate 发行包中的 <literal>eg/</literal> 目录,里面有个一简单的独立运行的程序。把你的 JDBC 驱动复制到 <literal>lib/</literal> 目录并修改一下 <literal>etc/hibernate.properties</literal>,指定数据库的信息。然后进入命令行,切换到发行包的目录,输入 <literal>ant eg</literal>(使用 Ant),或者在 Windows 系统下使用 <literal>build eg</literal>。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Use this reference documentation as your primary source of information. "
-"Consider reading <emphasis>Java Persistence with Hibernate</emphasis> "
-"(http://www.manning.com/bauer2) if you need more help with application "
-"design, or if you prefer a step-by-step tutorial. Also visit http://"
-"caveatemptor.hibernate.org and download the example application for Java "
-"Persistence with Hibernate."
-msgstr ""
-"把这份文档作为你学习的主要信息来源。如果你需要应用程序设计方面的帮助或者你希"
-"望有一个按部就班的指南,你可以考虑阅读 <emphasis>Hibernate in Action</"
-"emphasis>(http://www.manning.com/bauer)。你也可以访问http://caveatemptor."
-"hibernate.org 并下载 Hibernate 的示例程序。"
+#, no-c-format
+msgid "Use this reference documentation as your primary source of information. Consider reading <emphasis>Java Persistence with Hibernate</emphasis> (http://www.manning.com/bauer2) if you need more help with application design, or if you prefer a step-by-step tutorial. Also visit http://caveatemptor.hibernate.org and download the example application for Java Persistence with Hibernate."
+msgstr "把这份文档作为你学习的主要信息来源。如果你需要应用程序设计方面的帮助或者你希望有一个按部就班的指南,你可以考虑阅读 <emphasis>Hibernate in Action</emphasis>(http://www.manning.com/bauer)。你也可以访问 http://caveatemptor.hibernate.org 并下载 Hibernate 的示例程序。"
 
 #. Tag: para
 #, no-c-format
@@ -131,45 +66,21 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Third party demos, examples, and tutorials are linked on the Hibernate "
-"website."
+msgid "Third party demos, examples, and tutorials are linked on the Hibernate website."
 msgstr "在 Hibernate 网站上还有第三方的演示、示例和教程的链接。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The Community Area on the Hibernate website is a good resource for design "
-"patterns and various integration solutions (Tomcat, JBoss AS, Struts, EJB, "
-"etc.)."
-msgstr ""
-"Hibernate 网站的社区是讨论关于设计模式以及很多整合方案(Tomcat、JBoss AS、"
-"Struts、EJB 等)的好地方。"
+msgid "The Community Area on the Hibernate website is a good resource for design patterns and various integration solutions (Tomcat, JBoss AS, Struts, EJB, etc.)."
+msgstr "Hibernate 网站的社区是讨论关于设计模式以及很多整合方案(Tomcat、JBoss AS、Struts、EJB 等)的好地方。"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"If you have questions, use the user forum linked on the Hibernate website. "
-"We also provide a JIRA issue tracking system for bug reports and feature "
-"requests. If you are interested in the development of Hibernate, join the "
-"developer mailing list. If you are interested in translating this "
-"documentation into your language, contact us on the developer mailing list."
-msgstr ""
-"如果你有任何问题,请使用 Hibernate 网站上链接的用户论坛。我们也提供一个 JIRA "
-"问题追踪系统,来搜集 bug 报告和新的功能请求。如果对开发 Hibernate 有兴趣,请"
-"加入开发者的邮件列表。如果你对翻译本文档感兴趣,请通过开发者的邮件列表来联系"
-"我们。"
+#, no-c-format
+msgid "If you have questions, use the user forum linked on the Hibernate website. We also provide a JIRA issue tracking system for bug reports and feature requests. If you are interested in the development of Hibernate, join the developer mailing list. If you are interested in translating this documentation into your language, contact us on the developer mailing list."
+msgstr "如果你有任何问题,请使用 Hibernate 网站上链接的用户论坛。我们也提供一个 JIRA 问题追踪系统,来搜集 bug 报告和新的功能请求。如果对开发 Hibernate 有兴趣,请加入开发者的邮件列表。如果你对翻译本文档感兴趣,请通过开发者的邮件列表来联系我们。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Commercial development support, production support, and training for "
-"Hibernate is available through JBoss Inc. (see http://www.hibernate.org/"
-"SupportTraining/). Hibernate is a Professional Open Source project and a "
-"critical component of the JBoss Enterprise Middleware System (JEMS) suite of "
-"products."
-msgstr ""
-"商业开发、产品支持和 Hibernate 培训可以通过 JBoss Inc. 获得(请查阅: http://"
-"www.hibernate.org/SupportTraining/)。Hibernate 是一个专业的开源项目,也是 "
-"JBoss 企业级中间件系统(JBoss Enterprise Middleware System,JEMS)里的一个核"
-"心组件。  "
+msgid "Commercial development support, production support, and training for Hibernate is available through JBoss Inc. (see http://www.hibernate.org/SupportTraining/). Hibernate is a Professional Open Source project and a critical component of the JBoss Enterprise Middleware System (JEMS) suite of products."
+msgstr "商业开发、产品支持和 Hibernate 培训可以通过 JBoss Inc. 获得(请查阅: http://www.hibernate.org/SupportTraining/)。Hibernate 是一个专业的开源项目,也是 JBoss 企业级中间件系统(JBoss Enterprise Middleware System,JEMS)里的一个核心组件。  "
+

Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/query_sql.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/query_sql.po	2009-12-10 21:31:45 UTC (rev 97707)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/query_sql.po	2009-12-11 00:50:05 UTC (rev 97708)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-12-03T00:15:27\n"
-"PO-Revision-Date: 2009-12-04 15:21+1000\n"
+"PO-Revision-Date: 2009-12-11 09:55+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -535,9 +535,9 @@
 msgstr "Hibernate3 能够使用定制的 SQL 语句来执行 create,update 和 delete 操作。在 Hibernate 中,持久化的类和集合已经包含了一套配置期产生的语句(insertsql,deletesql,updatesql 等等),这些映射标记 <literal>&lt;sql-insert&gt;</literal>,<literal>&lt;sql-delete&gt;</literal> 和 <literal>&lt;sql-update&gt;</literal> 重载了这些语句。"
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "The SQL is directly executed in your database, so you can use any dialect you like. This will reduce the portability of your mapping if you use database specific SQL."
-msgstr "这些 SQL 直接在你的数据库里执行,所以你可以自由的使用你喜欢的任意语法。但如果你使用数据库特定的语法,这当然会降低你映射的可移植性。"
+msgstr "这些 SQL 直接在你的数据库里执行,所以你可以自由的使用你喜欢的任意语法。但如果你使用数据库特定的语法,这当然会降低你映射的可移植性。 "
 
 #. Tag: para
 #, no-c-format
@@ -545,19 +545,19 @@
 msgstr "如果设定 <literal>callable</literal>,则能够支持存储过程了。"
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "The order of the positional parameters is vital, as they must be in the same sequence as Hibernate expects them."
-msgstr "参数的位置顺序是非常重要的,他们必须和 Hibernate 所期待的顺序相同。"
+msgstr "参数的位置顺序是非常重要的,他们必须和 Hibernate 所期待的顺序相同。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "You can view the expected order by enabling debug logging for the <literal>org.hibernate.persister.entity</literal> level. With this level enabled, Hibernate will print out the static SQL that is used to create, update, delete etc. entities. To view the expected sequence, do not include your custom SQL in the mapping files, as this will override the Hibernate generated static SQL."
-msgstr "你能够通过设定日志调试级别为 <literal>org.hiberante.persister.entity</literal> 来查看 Hibernate 所期待的顺序。在这个级别下,Hibernate 将会打印出create,update 和 delete 实体的静态 SQL。(如果想看到预计的顺序。记得不要将定制 SQL 包含在映射文件里,因为他们会重载 Hibernate 生成的静态 SQL。)"
+msgstr "你能够通过设定日志调试级别为 <literal>org.hiberante.persister.entity</literal> 来查看 Hibernate 所期待的顺序。在这个级别下,Hibernate 将会打印出create,update 和 delete 实体的静态 SQL。(如果想看到预计的顺序。记得不要将定制 SQL 包含在映射文件里,因为他们会重载 Hibernate 生成的静态 SQL。) "
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "The stored procedures are in most cases required to return the number of rows inserted, updated and deleted, as Hibernate has some runtime checks for the success of the statement. Hibernate always registers the first statement parameter as a numeric output parameter for the CUD operations:"
-msgstr "在大多数情况下(最好这么做),存储过程需要返回插入/更新/删除的行数,因为 Hibernate 对语句的成功执行有些运行时的检查。Hibernate 常会把进行 CUD 操作的语句的第一个参数注册为一个数值型输出参数。"
+msgstr "在大多数情况下(最好这么做),存储过程需要返回插入/更新/删除的行数,因为 Hibernate 对语句的成功执行有些运行时的检查。Hibernate 常会把进行 CUD 操作的语句的第一个参数注册为一个数值型输出参数:"
 
 #. Tag: title
 #, no-c-format
@@ -565,14 +565,14 @@
 msgstr "定制装载 SQL"
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "You can also declare your own SQL (or HQL) queries for entity loading:"
-msgstr "你可能需要声明你自己的 SQL(或 HQL)来装载实体"
+msgstr "你可能需要声明你自己的 SQL(或 HQL)来装载实体:"
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "This is just a named query declaration, as discussed earlier. You can reference this named query in a class mapping:"
-msgstr "这只是一个前面讨论过的命名查询声明,你可以在类映射里引用这个命名查询。"
+msgstr "这只是一个前面讨论过的命名查询声明,你可以在类映射里引用这个命名查询:"
 
 #. Tag: para
 #, no-c-format
@@ -580,14 +580,14 @@
 msgstr "这也可以用于存储过程"
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "You can even define a query for collection loading:"
-msgstr "你甚至可以定一个用于集合装载的查询:"
+msgstr "你甚至可以定一个用于集合装载的查询: "
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "You can also define an entity loader that loads a collection by join fetching:"
-msgstr "你甚至还可以定义一个实体装载器,它通过连接抓取装载一个集合:"
+msgstr "你甚至还可以定义一个实体装载器,它通过连接抓取装载一个集合: "
 
 #, fuzzy
 #~ msgid ""

Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/transactions.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/transactions.po	2009-12-10 21:31:45 UTC (rev 97707)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/transactions.po	2009-12-11 00:50:05 UTC (rev 97708)
@@ -6,7 +6,7 @@
 "Project-Id-Version: Collection_Mapping\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-12-03T00:15:27\n"
-"PO-Revision-Date: 2009-11-27 14:11+1000\n"
+"PO-Revision-Date: 2009-12-11 09:56+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -21,54 +21,23 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The most important point about Hibernate and concurrency control is that it "
-"is easy to understand. Hibernate directly uses JDBC connections and JTA "
-"resources without adding any additional locking behavior. It is recommended "
-"that you spend some time with the JDBC, ANSI, and transaction isolation "
-"specification of your database management system."
-msgstr ""
-"Hibernate 的事务和并发控制很容易掌握。Hibernate 直接使用 JDBC 连接和 JTA 资"
-"源,不添加任何附加锁定行为。我们强烈推荐你花点时间了解 JDBC 编程,ANSI SQL 查"
-"询语言和你使用的数据库系统的事务隔离规范。 "
+msgid "The most important point about Hibernate and concurrency control is that it is easy to understand. Hibernate directly uses JDBC connections and JTA resources without adding any additional locking behavior. It is recommended that you spend some time with the JDBC, ANSI, and transaction isolation specification of your database management system."
+msgstr "Hibernate 的事务和并发控制很容易掌握。Hibernate 直接使用 JDBC 连接和 JTA 资源,不添加任何附加锁定行为。我们强烈推荐你花点时间了解 JDBC 编程,ANSI SQL 查询语言和你使用的数据库系统的事务隔离规范。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate does not lock objects in memory. Your application can expect the "
-"behavior as defined by the isolation level of your database transactions. "
-"Through <literal>Session</literal>, which is also a transaction-scoped "
-"cache, Hibernate provides repeatable reads for lookup by identifier and "
-"entity queries and not reporting queries that return scalar values."
-msgstr ""
-"Hibernate 不锁定内存中的对象。你的应用程序会按照你的数据库事务的隔离级别规定"
-"的那样运作。幸亏有了 <literal>Session</literal>,使得 Hibernate 通过标识符查"
-"找,和实体查询(不是返回标量值的报表查询)提供了可重复的读取(Repeatable "
-"reads)功能,<literal>Session</literal> 同时也是事务范围内的缓存(cache)。 "
+msgid "Hibernate does not lock objects in memory. Your application can expect the behavior as defined by the isolation level of your database transactions. Through <literal>Session</literal>, which is also a transaction-scoped cache, Hibernate provides repeatable reads for lookup by identifier and entity queries and not reporting queries that return scalar values."
+msgstr "Hibernate 不锁定内存中的对象。你的应用程序会按照你的数据库事务的隔离级别规定的那样运作。幸亏有了 <literal>Session</literal>,使得 Hibernate 通过标识符查找,和实体查询(不是返回标量值的报表查询)提供了可重复的读取(Repeatable reads)功能,<literal>Session</literal> 同时也是事务范围内的缓存(cache)。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"In addition to versioning for automatic optimistic concurrency control, "
-"Hibernate also offers, using the <literal>SELECT FOR UPDATE</literal> "
-"syntax, a (minor) API for pessimistic locking of rows. Optimistic "
-"concurrency control and this API are discussed later in this chapter."
-msgstr ""
-"除了对自动乐观并发控制提供版本管理,针对行级悲观锁定,Hibernate 也提供了辅助"
-"的(较小的)API,它使用了 <literal>SELECT FOR UPDATE</literal> 的 SQL 语法。"
-"本章后面会讨论乐观并发控制和这个API。 "
+msgid "In addition to versioning for automatic optimistic concurrency control, Hibernate also offers, using the <literal>SELECT FOR UPDATE</literal> syntax, a (minor) API for pessimistic locking of rows. Optimistic concurrency control and this API are discussed later in this chapter."
+msgstr "除了对自动乐观并发控制提供版本管理,针对行级悲观锁定,Hibernate 也提供了辅助的(较小的)API,它使用了 <literal>SELECT FOR UPDATE</literal> 的 SQL 语法。本章后面会讨论乐观并发控制和这个API。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The discussion of concurrency control in Hibernate begins with the "
-"granularity of <literal>Configuration</literal>, <literal>SessionFactory</"
-"literal>, and <literal>Session</literal>, as well as database transactions "
-"and long conversations."
-msgstr ""
-"我们从 <literal>Configuration</literal>层、<literal>SessionFactory</literal> "
-"层,和 <literal>Session</literal> 层开始讨论 Hibernate 的并行控制、数据库事务"
-"和应用程序的长事务。 "
+msgid "The discussion of concurrency control in Hibernate begins with the granularity of <literal>Configuration</literal>, <literal>SessionFactory</literal>, and <literal>Session</literal>, as well as database transactions and long conversations."
+msgstr "我们从 <literal>Configuration</literal>层、<literal>SessionFactory</literal> 层,和 <literal>Session</literal> 层开始讨论 Hibernate 的并行控制、数据库事务和应用程序的长事务。 "
 
 #. Tag: title
 #, no-c-format
@@ -77,58 +46,23 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A <literal>SessionFactory</literal> is an expensive-to-create, threadsafe "
-"object, intended to be shared by all application threads. It is created "
-"once, usually on application startup, from a <literal>Configuration</"
-"literal> instance."
-msgstr ""
-"<literal>SessionFactory</literal> 对象的创建代价很昂贵,它是线程安全的对象,"
-"它为所有的应用程序线程所共享。它只创建一次,通常是在应用程序启动的时候,由一"
-"个 <literal>Configuraion</literal> 的实例来创建。 "
+msgid "A <literal>SessionFactory</literal> is an expensive-to-create, threadsafe object, intended to be shared by all application threads. It is created once, usually on application startup, from a <literal>Configuration</literal> instance."
+msgstr "<literal>SessionFactory</literal> 对象的创建代价很昂贵,它是线程安全的对象,它为所有的应用程序线程所共享。它只创建一次,通常是在应用程序启动的时候,由一个 <literal>Configuraion</literal> 的实例来创建。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A <literal>Session</literal> is an inexpensive, non-threadsafe object that "
-"should be used once and then discarded for: a single request, a conversation "
-"or a single unit of work. A <literal>Session</literal> will not obtain a "
-"JDBC <literal>Connection</literal>, or a <literal>Datasource</literal>, "
-"unless it is needed. It will not consume any resources until used."
-msgstr ""
-"<literal>Session</literal> 对象的创建代价比较小,是非线程安全的,对于单个请"
-"求,单个会话、单个的 工作单元而言,它只被使用一次,然后就丢弃。只有在需要的时"
-"候,一个 <literal>Session</literal> 对象 才会获取一个 JDBC 的 "
-"<literal>Connection</literal>(或一个<literal>Datasource</literal>)对象,因"
-"此假若不使用的时候它不消费任何资源。 "
+msgid "A <literal>Session</literal> is an inexpensive, non-threadsafe object that should be used once and then discarded for: a single request, a conversation or a single unit of work. A <literal>Session</literal> will not obtain a JDBC <literal>Connection</literal>, or a <literal>Datasource</literal>, unless it is needed. It will not consume any resources until used."
+msgstr "<literal>Session</literal> 对象的创建代价比较小,是非线程安全的,对于单个请求,单个会话、单个的 工作单元而言,它只被使用一次,然后就丢弃。只有在需要的时候,一个 <literal>Session</literal> 对象 才会获取一个 JDBC 的 <literal>Connection</literal>(或一个<literal>Datasource</literal>)对象,因此假若不使用的时候它不消费任何资源。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"In order to reduce lock contention in the database, a database transaction "
-"has to be as short as possible. Long database transactions will prevent your "
-"application from scaling to a highly concurrent load. It is not recommended "
-"that you hold a database transaction open during user think time until the "
-"unit of work is complete."
-msgstr ""
-"此外我们还要考虑数据库事务。数据库事务应该尽可能的短,降低数据库中的锁争用。"
-"数据库长事务会阻止你的应用程序扩展到高的并发负载。因此,假若在用户思考期间让"
-"数据库事务开着,直到整个工作单元完成才关闭这个事务,这绝不是一个好的设计。 "
+msgid "In order to reduce lock contention in the database, a database transaction has to be as short as possible. Long database transactions will prevent your application from scaling to a highly concurrent load. It is not recommended that you hold a database transaction open during user think time until the unit of work is complete."
+msgstr "此外我们还要考虑数据库事务。数据库事务应该尽可能的短,降低数据库中的锁争用。数据库长事务会阻止你的应用程序扩展到高的并发负载。因此,假若在用户思考期间让数据库事务开着,直到整个工作单元完成才关闭这个事务,这绝不是一个好的设计。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"What is the scope of a unit of work? Can a single Hibernate "
-"<literal>Session</literal> span several database transactions, or is this a "
-"one-to-one relationship of scopes? When should you open and close a "
-"<literal>Session</literal> and how do you demarcate the database transaction "
-"boundaries? These questions are addressed in the following sections."
-msgstr ""
-"一个操作单元(Unit of work)的范围是多大?单个的 Hibernate <literal>Session</"
-"literal> 能跨越多个数据库事务吗?还是一个 <literal>Session</literal> 的作用范"
-"围对应一个数据库事务的范围?应该何时打开 <literal>Session</literal>,何时关"
-"闭 <literal>Session</literal>,你又如何划分数据库事务的边界呢?我们将在后续章"
-"节解决这些问题。"
+msgid "What is the scope of a unit of work? Can a single Hibernate <literal>Session</literal> span several database transactions, or is this a one-to-one relationship of scopes? When should you open and close a <literal>Session</literal> and how do you demarcate the database transaction boundaries? These questions are addressed in the following sections."
+msgstr "一个操作单元(Unit of work)的范围是多大?单个的 Hibernate <literal>Session</literal> 能跨越多个数据库事务吗?还是一个 <literal>Session</literal> 的作用范围对应一个数据库事务的范围?应该何时打开 <literal>Session</literal>,何时关闭 <literal>Session</literal>,你又如何划分数据库事务的边界呢?我们将在后续章节解决这些问题。"
 
 #. Tag: title
 #, no-c-format
@@ -136,137 +70,34 @@
 msgstr "操作单元(Unit of work)"
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"First, let's define a unit of work. A unit of work is a design pattern "
-"described by Martin Fowler as <quote> [maintaining] a list of objects "
-"affected by a business transaction and coordinates the writing out of "
-"changes and the resolution of concurrency problems. </quote><citation>PoEAA</"
-"citation> In other words, its a series of operations we wish to carry out "
-"against the database together. Basically, it is a transaction, though "
-"fulfilling a unit of work will often span multiple physical database "
-"transactions (see <xref linkend=\"transactions-basics-apptx\" />). So really "
-"we are talking about a more abstract notion of a transaction. The term "
-"\"business transaction\" is also sometimes used in lieu of unit of work."
-msgstr ""
-"首先,让我们定义一个工作单元(unit of work)。工作单元是一个设计模式,Martin "
-"Fowler 把它描述为 <quote> [maintaining] a list of objects affected by a "
-"business transaction and coordinates the writing out of changes and the "
-"resolution of concurrency problems. </quote><citation>PoEAA</citation> 换句话"
-"说,它是我们希望对数据库执行的一系列操作。基本上,它是一个事务,虽然完成一个"
-"工作单元经常将跨越多个物理数据库事务(请参考 <xref linkend=\"transactions-"
-"basics-apptx\"/>)。所以,实际上我们在讨论一个更抽象的事务概念。术语 "
-"\"business transaction\" 有时也和工作单元一起使用。"
+#, no-c-format
+msgid "First, let's define a unit of work. A unit of work is a design pattern described by Martin Fowler as <quote> [maintaining] a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems. </quote><citation>PoEAA</citation> In other words, its a series of operations we wish to carry out against the database together. Basically, it is a transaction, though fulfilling a unit of work will often span multiple physical database transactions (see <xref linkend=\"transactions-basics-apptx\" />). So really we are talking about a more abstract notion of a transaction. The term \"business transaction\" is also sometimes used in lieu of unit of work."
+msgstr "首先,让我们定义一个工作单元(unit of work)。工作单元是一个设计模式,Martin Fowler 把它描述为 <quote> [maintaining] a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems. </quote><citation>PoEAA</citation> 换句话说,它是我们希望对数据库执行的一系列操作。基本上,它是一个事务,虽然完成一个工作单元经常将跨越多个物理数据库事务(请参考 <xref linkend=\"transactions-basics-apptx\"/>)。所以,实际上我们在讨论一个更抽象的事务概念。术语 \"business transaction\" 有时也和工作单元一起使用。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Do not use the <emphasis>session-per-operation</emphasis> antipattern: do "
-"not open and close a <literal>Session</literal> for every simple database "
-"call in a single thread. The same is true for database transactions. "
-"Database calls in an application are made using a planned sequence; they are "
-"grouped into atomic units of work. This also means that auto-commit after "
-"every single SQL statement is useless in an application as this mode is "
-"intended for ad-hoc SQL console work. Hibernate disables, or expects the "
-"application server to disable, auto-commit mode immediately. Database "
-"transactions are never optional. All communication with a database has to "
-"occur inside a transaction. Auto-commit behavior for reading data should be "
-"avoided, as many small transactions are unlikely to perform better than one "
-"clearly defined unit of work. The latter is also more maintainable and "
-"extensible."
-msgstr ""
-"首先,别用 <emphasis>session-per-operation</emphasis> 这种反模式了,也就是"
-"说,在单个线程中, 不要因为一次简单的数据库调用,就打开和关闭一次 "
-"<literal>Session</literal>!数据库事务也是如此。 应用程序中的数据库调用是按照"
-"计划好的次序,分组为原子的操作单元。(注意,这也意味着,应用程 序中,在单个"
-"的 SQL 语句发送之后,自动事务提交(auto-commit)模式失效了。这种模式专门为SQL"
-"控制台操作设计的。 Hibernate 禁止立即自动事务提交模式,或者期望应用服务器禁止"
-"立即自动事务提交模式。)数据库事务绝不是可有可无的,任何与数据库之间的通讯都"
-"必须在某个事务中进行,不管你是在读还是在写数据。对读数据而言,应该避免 auto-"
-"commit 行为,因为很多小的事务比一个清晰定义的工作单元性能差。后者也更容易维护"
-"和扩展。 "
+msgid "Do not use the <emphasis>session-per-operation</emphasis> antipattern: do not open and close a <literal>Session</literal> for every simple database call in a single thread. The same is true for database transactions. Database calls in an application are made using a planned sequence; they are grouped into atomic units of work. This also means that auto-commit after every single SQL statement is useless in an application as this mode is intended for ad-hoc SQL console work. Hibernate disables, or expects the application server to disable, auto-commit mode immediately. Database transactions are never optional. All communication with a database has to occur inside a transaction. Auto-commit behavior for reading data should be avoided, as many small transactions are unlikely to perform better than one clearly defined unit of work. The latter is also more maintainable and extensible."
+msgstr "首先,别用 <emphasis>session-per-operation</emphasis> 这种反模式了,也就是说,在单个线程中, 不要因为一次简单的数据库调用,就打开和关闭一次 <literal>Session</literal>!数据库事务也是如此。 应用程序中的数据库调用是按照计划好的次序,分组为原子的操作单元。(注意,这也意味着,应用程 序中,在单个的 SQL 语句发送之后,自动事务提交(auto-commit)模式失效了。这种模式专门为SQL控制台操作设计的。 Hibernate 禁止立即自动事务提交模式,或者期望应用服务器禁止立即自动事务提交模式。)数据库事务绝不是可有可无的,任何与数据库之间的通讯都必须在某个事务中进行,不管你是在读还是在写数据。对读数据而言,应该避免 auto-commit 行为,因为很多小的事务比一个清晰定义的工作单元性能差。后者也更容易维护和扩展。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The most common pattern in a multi-user client/server application is "
-"<emphasis>session-per-request</emphasis>. In this model, a request from the "
-"client is sent to the server, where the Hibernate persistence layer runs. A "
-"new Hibernate <literal>Session</literal> is opened, and all database "
-"operations are executed in this unit of work. On completion of the work, and "
-"once the response for the client has been prepared, the session is flushed "
-"and closed. Use a single database transaction to serve the clients request, "
-"starting and committing it when you open and close the <literal>Session</"
-"literal>. The relationship between the two is one-to-one and this model is a "
-"perfect fit for many applications."
-msgstr ""
-"在多用户的 client/server 应用程序中,最常用的模式是 <emphasis>每个请求一个会"
-"话(session-per-request)</emphasis>。 在这种模式下,来自客户端的请求被发送到"
-"服务器端(即 Hibernate 持久化层运行的地方),一个新的 Hibernate "
-"<literal>Session</literal> 被打开,并且执行这个操作单元中所有的数据库操作。一"
-"旦操作完成(同时对客户端的响应也准备就绪),session 被同步,然后关闭。你也可"
-"以使用单 个数据库事务来处理客户端请求,在你打开 <literal>Session</literal> 之"
-"后启动事务,在你关闭 <literal>Session</literal> 之前提交事务。会话和请求之间"
-"的关系是一对一的关系,这种模式对 于大多数应用程序来说是很棒的。 "
+msgid "The most common pattern in a multi-user client/server application is <emphasis>session-per-request</emphasis>. In this model, a request from the client is sent to the server, where the Hibernate persistence layer runs. A new Hibernate <literal>Session</literal> is opened, and all database operations are executed in this unit of work. On completion of the work, and once the response for the client has been prepared, the session is flushed and closed. Use a single database transaction to serve the clients request, starting and committing it when you open and close the <literal>Session</literal>. The relationship between the two is one-to-one and this model is a perfect fit for many applications."
+msgstr "在多用户的 client/server 应用程序中,最常用的模式是 <emphasis>每个请求一个会话(session-per-request)</emphasis>。 在这种模式下,来自客户端的请求被发送到服务器端(即 Hibernate 持久化层运行的地方),一个新的 Hibernate <literal>Session</literal> 被打开,并且执行这个操作单元中所有的数据库操作。一旦操作完成(同时对客户端的响应也准备就绪),session 被同步,然后关闭。你也可以使用单 个数据库事务来处理客户端请求,在你打开 <literal>Session</literal> 之后启动事务,在你关闭 <literal>Session</literal> 之前提交事务。会话和请求之间的关系是一对一的关系,这种模式对 于大多数应用程序来说是很棒的。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The challenge lies in the implementation. Hibernate provides built-in "
-"management of the \"current session\" to simplify this pattern. Start a "
-"transaction when a server request has to be processed, and end the "
-"transaction before the response is sent to the client. Common solutions are "
-"<literal>ServletFilter</literal>, AOP interceptor with a pointcut on the "
-"service methods, or a proxy/interception container. An EJB container is a "
-"standardized way to implement cross-cutting aspects such as transaction "
-"demarcation on EJB session beans, declaratively with CMT. If you use "
-"programmatic transaction demarcation, for ease of use and code portability "
-"use the Hibernate <literal>Transaction</literal> API shown later in this "
-"chapter."
-msgstr ""
-"实现才是真正的挑战。Hibernate 内置了对\"当前 session(current session)\" 的"
-"管理,用于简化此模式。你要做的一切就是在服务器端要处理请求的时候,开启事务,"
-"在响应发送给客户之前结束事务。你可以用任何方式来完成这一操作,通常的方案有 "
-"<literal>ServletFilter</literal>,在 service 方法中进行 pointcut 的 AOP 拦截"
-"器,或者 proxy/interception 容器。EJB 容器是实现横切诸如 EJB session bean 上"
-"的事务分界,用 CMT 对事务进行声明等方面的标准手段。假若你决定使用编程式的事务"
-"分界,请参考本章后面讲到的 Hibernate <literal>Transaction</literal> API,这对"
-"易用性和代码可移植性都有好处。 "
+msgid "The challenge lies in the implementation. Hibernate provides built-in management of the \"current session\" to simplify this pattern. Start a transaction when a server request has to be processed, and end the transaction before the response is sent to the client. Common solutions are <literal>ServletFilter</literal>, AOP interceptor with a pointcut on the service methods, or a proxy/interception container. An EJB container is a standardized way to implement cross-cutting aspects such as transaction demarcation on EJB session beans, declaratively with CMT. If you use programmatic transaction demarcation, for ease of use and code portability use the Hibernate <literal>Transaction</literal> API shown later in this chapter."
+msgstr "实现才是真正的挑战。Hibernate 内置了对\"当前 session(current session)\" 的管理,用于简化此模式。你要做的一切就是在服务器端要处理请求的时候,开启事务,在响应发送给客户之前结束事务。你可以用任何方式来完成这一操作,通常的方案有 <literal>ServletFilter</literal>,在 service 方法中进行 pointcut 的 AOP 拦截器,或者 proxy/interception 容器。EJB 容器是实现横切诸如 EJB session bean 上的事务分界,用 CMT 对事务进行声明等方面的标准手段。假若你决定使用编程式的事务分界,请参考本章后面讲到的 Hibernate <literal>Transaction</literal> API,这对易用性和代码可移植性都有好处。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"Your application code can access a \"current session\" to process the "
-"request by calling <literal>sessionFactory.getCurrentSession()</literal>. "
-"You will always get a <literal>Session</literal> scoped to the current "
-"database transaction. This has to be configured for either resource-local or "
-"JTA environments, see <xref linkend=\"architecture-current-session\" />."
-msgstr ""
-"在任何时间,任何地方,你的应用代码可以通过简单的调用<literal>sessionFactory."
-"getCurrentSession()</literal> 来访问\"当前 session\",用于处理请求。你总是会"
-"得到当前数据库事务范围内的 <literal>Session</literal>。在使用本地资源或 JTA "
-"环境时,必须配置它,请参见 <xref linkend=\"architecture-current-session\"/>。"
+#, no-c-format
+msgid "Your application code can access a \"current session\" to process the request by calling <literal>sessionFactory.getCurrentSession()</literal>. You will always get a <literal>Session</literal> scoped to the current database transaction. This has to be configured for either resource-local or JTA environments, see <xref linkend=\"architecture-current-session\" />."
+msgstr "在任何时间,任何地方,你的应用代码可以通过简单的调用<literal>sessionFactory.getCurrentSession()</literal> 来访问\"当前 session\",用于处理请求。你总是会得到当前数据库事务范围内的 <literal>Session</literal>。在使用本地资源或 JTA 环境时,必须配置它,请参见 <xref linkend=\"architecture-current-session\"/>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You can extend the scope of a <literal>Session</literal> and database "
-"transaction until the \"view has been rendered\". This is especially useful "
-"in servlet applications that utilize a separate rendering phase after the "
-"request has been processed. Extending the database transaction until view "
-"rendering, is achieved by implementing your own interceptor. However, this "
-"will be difficult if you rely on EJBs with container-managed transactions. A "
-"transaction will be completed when an EJB method returns, before rendering "
-"of any view can start. See the Hibernate website and forum for tips and "
-"examples relating to this <emphasis>Open Session in View</emphasis> pattern."
-msgstr ""
-"有时,将 <literal>Session</literal> 和数据库事务的边界延伸到\"展示层被渲染后"
-"\"会带来便利。有些 serlvet 应用程序在对请求进行处理后,有个单独的渲染期,这种"
-"延伸对这种程序特别有用。假若你实现你自己的拦截器,把事务边界延伸到展示层渲染"
-"结束后非常容易。然而,假若你依赖有容器管理事务的 EJB,这就不太容易了,因为事"
-"务会在 EJB 方法返回后结束,而那是在任何展示层渲染开始之前。请访问  Hibernate "
-"网站和论坛,你可以找到 <emphasis>Open Session in View</emphasis> 这一模式的提"
-"示和示例。 "
+msgid "You can extend the scope of a <literal>Session</literal> and database transaction until the \"view has been rendered\". This is especially useful in servlet applications that utilize a separate rendering phase after the request has been processed. Extending the database transaction until view rendering, is achieved by implementing your own interceptor. However, this will be difficult if you rely on EJBs with container-managed transactions. A transaction will be completed when an EJB method returns, before rendering of any view can start. See the Hibernate website and forum for tips and examples relating to this <emphasis>Open Session in View</emphasis> pattern."
+msgstr "有时,将 <literal>Session</literal> 和数据库事务的边界延伸到\"展示层被渲染后\"会带来便利。有些 serlvet 应用程序在对请求进行处理后,有个单独的渲染期,这种延伸对这种程序特别有用。假若你实现你自己的拦截器,把事务边界延伸到展示层渲染结束后非常容易。然而,假若你依赖有容器管理事务的 EJB,这就不太容易了,因为事务会在 EJB 方法返回后结束,而那是在任何展示层渲染开始之前。请访问  Hibernate 网站和论坛,你可以找到 <emphasis>Open Session in View</emphasis> 这一模式的提示和示例。 "
 
 #. Tag: title
 #, no-c-format
@@ -275,141 +106,53 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The session-per-request pattern is not the only way of designing units of "
-"work. Many business processes require a whole series of interactions with "
-"the user that are interleaved with database accesses. In web and enterprise "
-"applications, it is not acceptable for a database transaction to span a user "
-"interaction. Consider the following example:"
-msgstr ""
-"session-per-request 模式不仅仅是一个可以用来设计操作单元的有用概念。很多业务"
-"处理都需 要一系列完整的与用户之间的交互,而这些用户是指对数据库有交叉访问的用"
-"户。在基于 web 的应用和企业应用中,跨用户交互的数据库事务是无法接受的。考虑下"
-"面的例子: "
+msgid "The session-per-request pattern is not the only way of designing units of work. Many business processes require a whole series of interactions with the user that are interleaved with database accesses. In web and enterprise applications, it is not acceptable for a database transaction to span a user interaction. Consider the following example:"
+msgstr "session-per-request 模式不仅仅是一个可以用来设计操作单元的有用概念。很多业务处理都需 要一系列完整的与用户之间的交互,而这些用户是指对数据库有交叉访问的用户。在基于 web 的应用和企业应用中,跨用户交互的数据库事务是无法接受的。考虑下面的例子: "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The first screen of a dialog opens. The data seen by the user has been "
-"loaded in a particular <literal>Session</literal> and database transaction. "
-"The user is free to modify the objects."
-msgstr ""
-"在界面的第一屏,打开对话框,用户所看到的数据是被一个特定的 <literal>Session</"
-"literal> 和数据 库事务载入(load)的。用户可以随意修改对话框中的数据对象。 "
+msgid "The first screen of a dialog opens. The data seen by the user has been loaded in a particular <literal>Session</literal> and database transaction. The user is free to modify the objects."
+msgstr "在界面的第一屏,打开对话框,用户所看到的数据是被一个特定的 <literal>Session</literal> 和数据 库事务载入(load)的。用户可以随意修改对话框中的数据对象。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The user clicks \"Save\" after 5 minutes and expects their modifications to "
-"be made persistent. The user also expects that they were the only person "
-"editing this information and that no conflicting modification has occurred."
-msgstr ""
-"5 分钟后,用户点击“保存”,期望所做出的修改被持久化;同时他也期望自己是唯一修"
-"改这个信息的人,不会出现修改冲突。 "
+msgid "The user clicks \"Save\" after 5 minutes and expects their modifications to be made persistent. The user also expects that they were the only person editing this information and that no conflicting modification has occurred."
+msgstr "5 分钟后,用户点击“保存”,期望所做出的修改被持久化;同时他也期望自己是唯一修改这个信息的人,不会出现修改冲突。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"From the point of view of the user, we call this unit of work a long-running "
-"<emphasis>conversation</emphasis> or <emphasis>application transaction</"
-"emphasis>. There are many ways to implement this in your application."
-msgstr ""
-"从用户的角度来看,我们把这个操作单元称为长时间运行的<emphasis>对话</emphasis>"
-"(conversation),或者<emphasis>应用事务</emphasis>(application "
-"transaction)。在你的应用程序中,可以有很多种方法来实现它。"
+msgid "From the point of view of the user, we call this unit of work a long-running <emphasis>conversation</emphasis> or <emphasis>application transaction</emphasis>. There are many ways to implement this in your application."
+msgstr "从用户的角度来看,我们把这个操作单元称为长时间运行的<emphasis>对话</emphasis>(conversation),或者<emphasis>应用事务</emphasis>(application transaction)。在你的应用程序中,可以有很多种方法来实现它。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A first naive implementation might keep the <literal>Session</literal> and "
-"database transaction open during user think time, with locks held in the "
-"database to prevent concurrent modification and to guarantee isolation and "
-"atomicity. This is an anti-pattern, since lock contention would not allow "
-"the application to scale with the number of concurrent users."
-msgstr ""
-"头一个幼稚的做法是,在用户思考的过程中,保持 <literal>Session</literal> 和数"
-"据库事务是打开的,保持数据库锁定,以阻止并发修改,从而保证数据库事务隔离级别"
-"和原子操作。这种方式当然是一个反模式,因为锁争用会导致应用程序无法扩展并发用"
-"户的数目。 "
+msgid "A first naive implementation might keep the <literal>Session</literal> and database transaction open during user think time, with locks held in the database to prevent concurrent modification and to guarantee isolation and atomicity. This is an anti-pattern, since lock contention would not allow the application to scale with the number of concurrent users."
+msgstr "头一个幼稚的做法是,在用户思考的过程中,保持 <literal>Session</literal> 和数据库事务是打开的,保持数据库锁定,以阻止并发修改,从而保证数据库事务隔离级别和原子操作。这种方式当然是一个反模式,因为锁争用会导致应用程序无法扩展并发用户的数目。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You have to use several database transactions to implement the conversation. "
-"In this case, maintaining isolation of business processes becomes the "
-"partial responsibility of the application tier. A single conversation "
-"usually spans several database transactions. It will be atomic if only one "
-"of these database transactions (the last one) stores the updated data. All "
-"others simply read data (for example, in a wizard-style dialog spanning "
-"several request/response cycles). This is easier to implement than it might "
-"sound, especially if you utilize some of Hibernate's features:"
-msgstr ""
-"很明显,我们必须使用多个数据库事务来实现这个对话。在这个例子中,维护业务处理"
-"的 事务隔离变成了应用程序层的部分责任。一个对话通常跨越多个数据库事务。如果仅"
-"仅只有一个数据库事务(最后的那个事务)保存更新过的数据,而所有其他事务只是单"
-"纯的读取数据(例如在一个跨越多个请求/响应周期的向导风格的对话框中),那么应用"
-"程序事务将保证其原子性。这种方式比听起来还要容易实现,特别是当你使用了 "
-"Hibernate 的下述特性的时候: "
+msgid "You have to use several database transactions to implement the conversation. In this case, maintaining isolation of business processes becomes the partial responsibility of the application tier. A single conversation usually spans several database transactions. It will be atomic if only one of these database transactions (the last one) stores the updated data. All others simply read data (for example, in a wizard-style dialog spanning several request/response cycles). This is easier to implement than it might sound, especially if you utilize some of Hibernate's features:"
+msgstr "很明显,我们必须使用多个数据库事务来实现这个对话。在这个例子中,维护业务处理的 事务隔离变成了应用程序层的部分责任。一个对话通常跨越多个数据库事务。如果仅仅只有一个数据库事务(最后的那个事务)保存更新过的数据,而所有其他事务只是单纯的读取数据(例如在一个跨越多个请求/响应周期的向导风格的对话框中),那么应用程序事务将保证其原子性。这种方式比听起来还要容易实现,特别是当你使用了 Hibernate 的下述特性的时候: "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis>Automatic Versioning</emphasis>: Hibernate can perform automatic "
-"optimistic concurrency control for you. It can automatically detect if a "
-"concurrent modification occurred during user think time. Check for this at "
-"the end of the conversation."
-msgstr ""
-"<emphasis>自动版本化</emphasis>:Hibernate 能够自动进行乐观并发控制,如果在用"
-"户思考的过程中发生并发修改,Hibernate 能够自动检测到。一般我们只在对话结束时"
-"才检查。"
+msgid "<emphasis>Automatic Versioning</emphasis>: Hibernate can perform automatic optimistic concurrency control for you. It can automatically detect if a concurrent modification occurred during user think time. Check for this at the end of the conversation."
+msgstr "<emphasis>自动版本化</emphasis>:Hibernate 能够自动进行乐观并发控制,如果在用户思考的过程中发生并发修改,Hibernate 能够自动检测到。一般我们只在对话结束时才检查。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis>Detached Objects</emphasis>: if you decide to use the "
-"<emphasis>session-per-request</emphasis> pattern, all loaded instances will "
-"be in the detached state during user think time. Hibernate allows you to "
-"reattach the objects and persist the modifications. The pattern is called "
-"<emphasis>session-per-request-with-detached-objects</emphasis>. Automatic "
-"versioning is used to isolate concurrent modifications."
-msgstr ""
-"<emphasis>脱管对象</emphasis>(Detached Objects):如果你决定采用前面已经讨论"
-"过的  <emphasis>session-per-request</emphasis> 模式,所有载入的实例在用户思考"
-"的过程中都处于与 Session 脱离的状态。Hibernate 允许你把与 Session 脱离的对象"
-"重新关联到 Session 上,并且对修改进行持久化,这种模式被称为 "
-"<emphasis>session-per-request-with-detached-objects</emphasis>。自动版本化被"
-"用来隔离并发修改。"
+msgid "<emphasis>Detached Objects</emphasis>: if you decide to use the <emphasis>session-per-request</emphasis> pattern, all loaded instances will be in the detached state during user think time. Hibernate allows you to reattach the objects and persist the modifications. The pattern is called <emphasis>session-per-request-with-detached-objects</emphasis>. Automatic versioning is used to isolate concurrent modifications."
+msgstr "<emphasis>脱管对象</emphasis>(Detached Objects):如果你决定采用前面已经讨论过的  <emphasis>session-per-request</emphasis> 模式,所有载入的实例在用户思考的过程中都处于与 Session 脱离的状态。Hibernate 允许你把与 Session 脱离的对象重新关联到 Session 上,并且对修改进行持久化,这种模式被称为 <emphasis>session-per-request-with-detached-objects</emphasis>。自动版本化被用来隔离并发修改。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<emphasis>Extended (or Long) Session</emphasis>: the Hibernate "
-"<literal>Session</literal> can be disconnected from the underlying JDBC "
-"connection after the database transaction has been committed and reconnected "
-"when a new client request occurs. This pattern is known as <emphasis>session-"
-"per-conversation</emphasis> and makes even reattachment unnecessary. "
-"Automatic versioning is used to isolate concurrent modifications and the "
-"<literal>Session</literal> will not be allowed to be flushed automatically, "
-"but explicitly."
-msgstr ""
-"<emphasis>Extended (or Long) Session</emphasis>:Hibernate 的 "
-"<literal>Session</literal> 可以在数据库事务提交之后和底层的 JDBC 连接断开,当"
-"一个新的客户端请求到来的时候,它又重新连接上底层的 JDBC 连接。这种模式被称之"
-"为<emphasis>session-per-conversation</emphasis>,这种情况可 能会造成不必要的 "
-"Session 和 JDBC 连接的重新关联。自动版本化被用来隔离并发修改,"
-"<literal>Session</literal> 通常不允许自动 flush,而是显性地 flush。 "
+msgid "<emphasis>Extended (or Long) Session</emphasis>: the Hibernate <literal>Session</literal> can be disconnected from the underlying JDBC connection after the database transaction has been committed and reconnected when a new client request occurs. This pattern is known as <emphasis>session-per-conversation</emphasis> and makes even reattachment unnecessary. Automatic versioning is used to isolate concurrent modifications and the <literal>Session</literal> will not be allowed to be flushed automatically, but explicitly."
+msgstr "<emphasis>Extended (or Long) Session</emphasis>:Hibernate 的 <literal>Session</literal> 可以在数据库事务提交之后和底层的 JDBC 连接断开,当一个新的客户端请求到来的时候,它又重新连接上底层的 JDBC 连接。这种模式被称之为<emphasis>session-per-conversation</emphasis>,这种情况可 能会造成不必要的 Session 和 JDBC 连接的重新关联。自动版本化被用来隔离并发修改,<literal>Session</literal> 通常不允许自动 flush,而是显性地 flush。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Both <emphasis>session-per-request-with-detached-objects</emphasis> and "
-"<emphasis>session-per-conversation</emphasis> have advantages and "
-"disadvantages. These disadvantages are discussed later in this chapter in "
-"the context of optimistic concurrency control."
-msgstr ""
-"<emphasis>session-per-request-with-detached-objects</emphasis> 和  "
-"<emphasis>session-per-conversation</emphasis> 各有优缺点,我们在本章后面乐观"
-"并发控制那部分再进行讨论。 "
+msgid "Both <emphasis>session-per-request-with-detached-objects</emphasis> and <emphasis>session-per-conversation</emphasis> have advantages and disadvantages. These disadvantages are discussed later in this chapter in the context of optimistic concurrency control."
+msgstr "<emphasis>session-per-request-with-detached-objects</emphasis> 和  <emphasis>session-per-conversation</emphasis> 各有优缺点,我们在本章后面乐观并发控制那部分再进行讨论。 "
 
 #. Tag: title
 #, no-c-format
@@ -418,15 +161,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"An application can concurrently access the same persistent state in two "
-"different <literal>Session</literal>s. However, an instance of a persistent "
-"class is never shared between two <literal>Session</literal> instances. It "
-"is for this reason that there are two different notions of identity:"
-msgstr ""
-"应用程序可能在两个不同的 <literal>Session</literal> 中并发访问同一持久化状"
-"态,但是,一个持久化类的实例无法在两个 <literal>Session</literal> 中共享。因"
-"此有两种不同的标识语义: "
+msgid "An application can concurrently access the same persistent state in two different <literal>Session</literal>s. However, an instance of a persistent class is never shared between two <literal>Session</literal> instances. It is for this reason that there are two different notions of identity:"
+msgstr "应用程序可能在两个不同的 <literal>Session</literal> 中并发访问同一持久化状态,但是,一个持久化类的实例无法在两个 <literal>Session</literal> 中共享。因此有两种不同的标识语义: "
 
 #. Tag: term
 #, no-c-format
@@ -434,9 +170,9 @@
 msgstr "数据库标识"
 
 #. Tag: para
-#, fuzzy, no-c-format
+#, no-c-format
 msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
-msgstr "foo.getId().equals( bar.getId() )"
+msgstr "<literal>foo.getId().equals( bar.getId() )</literal>"
 
 #. Tag: term
 #, no-c-format
@@ -446,83 +182,22 @@
 #. Tag: para
 #, no-c-format
 msgid "<literal>foo==bar</literal>"
-msgstr ""
+msgstr "<literal>foo==bar</literal>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"For objects attached to a <emphasis>particular</emphasis> <literal>Session</"
-"literal> (i.e., in the scope of a <literal>Session</literal>), the two "
-"notions are equivalent and JVM identity for database identity is guaranteed "
-"by Hibernate. While the application might concurrently access the \"same"
-"\" (persistent identity) business object in two different sessions, the two "
-"instances will actually be \"different\" (JVM identity). Conflicts are "
-"resolved using an optimistic approach and automatic versioning at flush/"
-"commit time."
-msgstr ""
-"对于那些关联到 <emphasis>特定</emphasis> <literal>Session</literal>(也就是在"
-"单个 <literal>Session</literal> 的范围内)上的对象来说,这两种标识的语义是等"
-"价的,与数据库标识对应的 JVM 标识是由 Hibernate 来保证的。不过,当应用程序在"
-"两个不同的 session 中并发访问具有同一持久化标识的业务对象实例的时候,这个业务"
-"对象的两个实例事实上是不相同的(从 JVM 识别来看)。这种冲突可以通过在同步和提"
-"交的时候使用自动版本化和乐观锁定方法来解决。 "
+msgid "For objects attached to a <emphasis>particular</emphasis> <literal>Session</literal> (i.e., in the scope of a <literal>Session</literal>), the two notions are equivalent and JVM identity for database identity is guaranteed by Hibernate. While the application might concurrently access the \"same\" (persistent identity) business object in two different sessions, the two instances will actually be \"different\" (JVM identity). Conflicts are resolved using an optimistic approach and automatic versioning at flush/commit time."
+msgstr "对于那些关联到 <emphasis>特定</emphasis> <literal>Session</literal>(也就是在单个 <literal>Session</literal> 的范围内)上的对象来说,这两种标识的语义是等价的,与数据库标识对应的 JVM 标识是由 Hibernate 来保证的。不过,当应用程序在两个不同的 session 中并发访问具有同一持久化标识的业务对象实例的时候,这个业务对象的两个实例事实上是不相同的(从 JVM 识别来看)。这种冲突可以通过在同步和提交的时候使用自动版本化和乐观锁定方法来解决。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"This approach leaves Hibernate and the database to worry about concurrency. "
-"It also provides the best scalability, since guaranteeing identity in single-"
-"threaded units of work means that it does not need expensive locking or "
-"other means of synchronization. The application does not need to synchronize "
-"on any business object, as long as it maintains a single thread per "
-"<literal>Session</literal>. Within a <literal>Session</literal> the "
-"application can safely use <literal>==</literal> to compare objects."
-msgstr ""
-"这种方式把关于并发的头疼问题留给了 Hibernate 和数据库;由于在单个线程内,操作"
-"单元中的对象识别不 需要代价昂贵的锁定或其他意义上的同步,因此它同时可以提供最"
-"好的可伸缩性。只要在单个线程只持有一个 <literal>Session</literal>,应用程序就"
-"不需要同步任何业务对象。在 <literal>Session</literal> 的范围内,应用程序可以"
-"放心的使用 <literal>==</literal> 进行对象比较。 "
+msgid "This approach leaves Hibernate and the database to worry about concurrency. It also provides the best scalability, since guaranteeing identity in single-threaded units of work means that it does not need expensive locking or other means of synchronization. The application does not need to synchronize on any business object, as long as it maintains a single thread per <literal>Session</literal>. Within a <literal>Session</literal> the application can safely use <literal>==</literal> to compare objects."
+msgstr "这种方式把关于并发的头疼问题留给了 Hibernate 和数据库;由于在单个线程内,操作单元中的对象识别不 需要代价昂贵的锁定或其他意义上的同步,因此它同时可以提供最好的可伸缩性。只要在单个线程只持有一个 <literal>Session</literal>,应用程序就不需要同步任何业务对象。在 <literal>Session</literal> 的范围内,应用程序可以放心的使用 <literal>==</literal> 进行对象比较。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"However, an application that uses <literal>==</literal> outside of a "
-"<literal>Session</literal> might produce unexpected results. This might "
-"occur even in some unexpected places. For example, if you put two detached "
-"instances into the same <literal>Set</literal>, both might have the same "
-"database identity (i.e., they represent the same row). JVM identity, "
-"however, is by definition not guaranteed for instances in a detached state. "
-"The developer has to override the <literal>equals()</literal> and "
-"<literal>hashCode()</literal> methods in persistent classes and implement "
-"their own notion of object equality. There is one caveat: never use the "
-"database identifier to implement equality. Use a business key that is a "
-"combination of unique, usually immutable, attributes. The database "
-"identifier will change if a transient object is made persistent. If the "
-"transient instance (usually together with detached instances) is held in a "
-"<literal>Set</literal>, changing the hashcode breaks the contract of the "
-"<literal>Set</literal>. Attributes for business keys do not have to be as "
-"stable as database primary keys; you only have to guarantee stability as "
-"long as the objects are in the same <literal>Set</literal>. See the "
-"Hibernate website for a more thorough discussion of this issue. Please note "
-"that this is not a Hibernate issue, but simply how Java object identity and "
-"equality has to be implemented."
-msgstr ""
-"不过,应用程序在 <literal>Session</literal> 的外面使用 <literal>==</literal> "
-"进行对象比较可能会 导致无法预期的结果。在一些无法预料的场合,例如,如果你把两"
-"个脱管对象实例放进同一个  <literal>Set</literal> 的时候,就可能发生。这两个对"
-"象实例可能有同一个数据库标识(也就是说, 他们代表了表的同一行数据),从 JVM "
-"标识的定义上来说,对脱管的对象而言,Hibernate 无法保证他们 的的 JVM 标识一"
-"致。开发人员必须覆盖持久化类的 <literal>equals()</literal> 方法和  "
-"<literal>hashCode()</literal> 方法,从而实现自定义的对象相等语义。警告:不要"
-"使用数据库标识来实现对象相等,应该使用业务键值,由唯一的,通常不变的属性组"
-"成。当一个瞬时对象被持久化的时候,它的数据库标识会发生改变。如果一个瞬时对象"
-"(通常也包括脱管对象实例)被放入一个 <literal>Set</literal>,改变它的 "
-"hashcode 会导致与这个 <literal>Set</literal> 的关系中断。虽 然业务键值的属性"
-"不象数据库主键那样稳定不变,但是你只需要保证在同一个 <literal>Set</literal> "
-"中的对象属性的稳定性就足够了。请到 Hibernate 网站去寻求这个问题更多的详细的讨"
-"论。请注意,这不是一个有关 Hibernate 的问题,而仅仅是一个关于 Java 对象标识和"
-"判等行为如何实现的问题。 "
+msgid "However, an application that uses <literal>==</literal> outside of a <literal>Session</literal> might produce unexpected results. This might occur even in some unexpected places. For example, if you put two detached instances into the same <literal>Set</literal>, both might have the same database identity (i.e., they represent the same row). JVM identity, however, is by definition not guaranteed for instances in a detached state. The developer has to override the <literal>equals()</literal> and <literal>hashCode()</literal> methods in persistent classes and implement their own notion of object equality. There is one caveat: never use the database identifier to implement equality. Use a business key that is a combination of unique, usually immutable, attributes. The database identifier will change if a transient object is made persistent. If the transient instance (usually together with detached instances) is held in a <literal>Set</literal>, changing the hashcode bre!
 aks the contract of the <literal>Set</literal>. Attributes for business keys do not have to be as stable as database primary keys; you only have to guarantee stability as long as the objects are in the same <literal>Set</literal>. See the Hibernate website for a more thorough discussion of this issue. Please note that this is not a Hibernate issue, but simply how Java object identity and equality has to be implemented."
+msgstr "不过,应用程序在 <literal>Session</literal> 的外面使用 <literal>==</literal> 进行对象比较可能会 导致无法预期的结果。在一些无法预料的场合,例如,如果你把两个脱管对象实例放进同一个  <literal>Set</literal> 的时候,就可能发生。这两个对象实例可能有同一个数据库标识(也就是说, 他们代表了表的同一行数据),从 JVM 标识的定义上来说,对脱管的对象而言,Hibernate 无法保证他们 的的 JVM 标识一致。开发人员必须覆盖持久化类的 <literal>equals()</literal> 方法和  <literal>hashCode()</literal> 方法,从而实现自定义的对象相等语义。警告:不要使用数据库标识来实现对象相等,应该使用业务键值,由唯一的,通常不变的属性组成。当一个瞬时对象被持久化的时候,它的数据库标识会发生改变。如果一个瞬时对象(通常也包括脱管对象实例)被放入ä!
 ¸€ä¸ª <literal>Set</literal>,改变它的 hashcode 会导致与这个 <literal>Set</literal> 的关系中断。虽 然业务键值的属性不象数据库主键那样稳定不变,但是你只需要保证在同一个 <literal>Set</literal> 中的对象属性的稳定性就足够了。请到 Hibernate 网站去寻求这个问题更多的详细的讨论。请注意,这不是一个有关 Hibernate 的问题,而仅仅是一个关于 Java 对象标识和判等行为如何实现的问题。 "
 
 #. Tag: title
 #, no-c-format
@@ -531,80 +206,23 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Do not use the anti-patterns <emphasis>session-per-user-session</emphasis> "
-"or <emphasis>session-per-application</emphasis> (there are, however, rare "
-"exceptions to this rule). Some of the following issues might also arise "
-"within the recommended patterns, so ensure that you understand the "
-"implications before making a design decision:"
-msgstr ""
-"决不要使用反模式 <emphasis>session-per-user-session</emphasis> 或者 "
-"<emphasis> session-per-application</emphasis>(当然,这个规定几乎没有例外)。"
-"请注意,下述一些问题可能也会出现在我们推荐的模式中,在你作出某个设计决定之"
-"前,请务必理解该模式的应用前提。 "
+msgid "Do not use the anti-patterns <emphasis>session-per-user-session</emphasis> or <emphasis>session-per-application</emphasis> (there are, however, rare exceptions to this rule). Some of the following issues might also arise within the recommended patterns, so ensure that you understand the implications before making a design decision:"
+msgstr "决不要使用反模式 <emphasis>session-per-user-session</emphasis> 或者 <emphasis> session-per-application</emphasis>(当然,这个规定几乎没有例外)。请注意,下述一些问题可能也会出现在我们推荐的模式中,在你作出某个设计决定之前,请务必理解该模式的应用前提。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A <literal>Session</literal> is not thread-safe. Things that work "
-"concurrently, like HTTP requests, session beans, or Swing workers, will "
-"cause race conditions if a <literal>Session</literal> instance is shared. If "
-"you keep your Hibernate <literal>Session</literal> in your "
-"<literal>HttpSession</literal> (this is discussed later in the chapter), you "
-"should consider synchronizing access to your Http session. Otherwise, a user "
-"that clicks reload fast enough can use the same <literal>Session</literal> "
-"in two concurrently running threads."
-msgstr ""
-"<literal>Session</literal> 对象是非线程安全的。如果一个 <literal>Session</"
-"literal> 实例允许共享的话,那些支持并发运行的东东,例如 HTTP request,"
-"session beans 或者是 Swing workers,将会导致出现资源争用(race condition)。"
-"如果在 <literal>HttpSession</literal> 中有 Hibernate 的 <literal>Session</"
-"literal> 的话(稍后讨论),你应该考虑同步访问你的 Http session。 否则,只要用"
-"户足够快的点击浏览器的“刷新”,就会导致两个并发运行线程使用同一个  "
-"<literal>Session</literal>。 "
+msgid "A <literal>Session</literal> is not thread-safe. Things that work concurrently, like HTTP requests, session beans, or Swing workers, will cause race conditions if a <literal>Session</literal> instance is shared. If you keep your Hibernate <literal>Session</literal> in your <literal>HttpSession</literal> (this is discussed later in the chapter), you should consider synchronizing access to your Http session. Otherwise, a user that clicks reload fast enough can use the same <literal>Session</literal> in two concurrently running threads."
+msgstr "<literal>Session</literal> 对象是非线程安全的。如果一个 <literal>Session</literal> 实例允许共享的话,那些支持并发运行的东东,例如 HTTP request,session beans 或者是 Swing workers,将会导致出现资源争用(race condition)。如果在 <literal>HttpSession</literal> 中有 Hibernate 的 <literal>Session</literal> 的话(稍后讨论),你应该考虑同步访问你的 Http session。 否则,只要用户足够快的点击浏览器的“刷新”,就会导致两个并发运行线程使用同一个  <literal>Session</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"An exception thrown by Hibernate means you have to rollback your database "
-"transaction and close the <literal>Session</literal> immediately (this is "
-"discussed in more detail later in the chapter). If your <literal>Session</"
-"literal> is bound to the application, you have to stop the application. "
-"Rolling back the database transaction does not put your business objects "
-"back into the state they were at the start of the transaction. This means "
-"that the database state and the business objects will be out of sync. "
-"Usually this is not a problem, because exceptions are not recoverable and "
-"you will have to start over after rollback anyway."
-msgstr ""
-"一个由 Hibernate 抛出的异常意味着你必须立即回滚数据库事务,并立即关闭 "
-"<literal>Session</literal>(稍后会展开讨论)。如果你的 <literal>Session</"
-"literal> 绑定到一个应用程序上,你必须停止该应用程序。回滚数据库事务并不会把你"
-"的业务对象退回到事务启动时候的状态。这意味着数据库状态和业务对象状态不同步。"
-"通常情况下,这不是什么问题,因为异常是不可恢复的,你必须在回滚之后重新开始执"
-"行。 "
+msgid "An exception thrown by Hibernate means you have to rollback your database transaction and close the <literal>Session</literal> immediately (this is discussed in more detail later in the chapter). If your <literal>Session</literal> is bound to the application, you have to stop the application. Rolling back the database transaction does not put your business objects back into the state they were at the start of the transaction. This means that the database state and the business objects will be out of sync. Usually this is not a problem, because exceptions are not recoverable and you will have to start over after rollback anyway."
+msgstr "一个由 Hibernate 抛出的异常意味着你必须立即回滚数据库事务,并立即关闭 <literal>Session</literal>(稍后会展开讨论)。如果你的 <literal>Session</literal> 绑定到一个应用程序上,你必须停止该应用程序。回滚数据库事务并不会把你的业务对象退回到事务启动时候的状态。这意味着数据库状态和业务对象状态不同步。通常情况下,这不是什么问题,因为异常是不可恢复的,你必须在回滚之后重新开始执行。 "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"The <literal>Session</literal> caches every object that is in a persistent "
-"state (watched and checked for dirty state by Hibernate). If you keep it "
-"open for a long time or simply load too much data, it will grow endlessly "
-"until you get an OutOfMemoryException. One solution is to call <literal>clear"
-"()</literal> and <literal>evict()</literal> to manage the <literal>Session</"
-"literal> cache, but you should consider a Stored Procedure if you need mass "
-"data operations. Some solutions are shown in <xref linkend=\"batch\" />. "
-"Keeping a <literal>Session</literal> open for the duration of a user session "
-"also means a higher probability of stale data."
-msgstr ""
-"<literal>Session</literal> 缓存了处于持久化状态的每个对象(Hibernate 会监视和"
-"检查脏数据)。 这意味着,如果你让 <literal>Session</literal> 打开很长一段时"
-"间,或是仅仅载入了过多的数据, <literal>Session</literal> 占用的内存会一直增"
-"长,直到抛出 OutOfMemoryException 异常。这个 问题的一个解决方法是调用 "
-"<literal>clear()</literal> 和 <literal>evict()</literal> 来管理 "
-"<literal>Session</literal> 的缓存,但是如果你需要大批量数据操作的话,最好考虑"
-"使用存储过程。在<xref linkend=\"Batch_processing\"/>中有一些解决方案。在用户"
-"会话期间一直保持 <literal>Session</literal> 打开也意味着出现脏数据的可能性很"
-"高。 "
+#, no-c-format
+msgid "The <literal>Session</literal> caches every object that is in a persistent state (watched and checked for dirty state by Hibernate). If you keep it open for a long time or simply load too much data, it will grow endlessly until you get an OutOfMemoryException. One solution is to call <literal>clear()</literal> and <literal>evict()</literal> to manage the <literal>Session</literal> cache, but you should consider a Stored Procedure if you need mass data operations. Some solutions are shown in <xref linkend=\"batch\" />. Keeping a <literal>Session</literal> open for the duration of a user session also means a higher probability of stale data."
+msgstr "<literal>Session</literal> 缓存了处于持久化状态的每个对象(Hibernate 会监视和检查脏数据)。 这意味着,如果你让 <literal>Session</literal> 打开很长一段时间,或是仅仅载入了过多的数据, <literal>Session</literal> 占用的内存会一直增长,直到抛出 OutOfMemoryException 异常。这个 问题的一个解决方法是调用 <literal>clear()</literal> 和 <literal>evict()</literal> 来管理 <literal>Session</literal> 的缓存,但是如果你需要大批量数据操作的话,最好考虑使用存储过程。在 <xref linkend=\"batch\" /> 中有一些解决方案。在用户会话期间一直保持 <literal>Session</literal> 打开也意味着出现脏数据的可能性很高。 "
 
 #. Tag: title
 #, no-c-format
@@ -613,64 +231,22 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Database, or system, transaction boundaries are always necessary. No "
-"communication with the database can occur outside of a database transaction "
-"(this seems to confuse many developers who are used to the auto-commit "
-"mode). Always use clear transaction boundaries, even for read-only "
-"operations. Depending on your isolation level and database capabilities this "
-"might not be required, but there is no downside if you always demarcate "
-"transactions explicitly. Certainly, a single database transaction is going "
-"to perform better than many small transactions, even for reading data."
-msgstr ""
-"数据库(或者系统)事务的声明总是必须的。在数据库事务之外,就无法和数据库通讯"
-"(这可能会让那些习惯于自动提交事务模式的开发人员感到迷惑)。永远使用清晰的事"
-"务声明,即使只读操作也是如此。进行 显式的事务声明并不总是需要的,这取决于你的"
-"事务隔离级别和数据库的能力,但不管怎么说,声明事务总归有益无害。当然,一个单"
-"独的数据库事务总是比很多琐碎的事务性能更好,即时对读数据而言也是一样。 "
+msgid "Database, or system, transaction boundaries are always necessary. No communication with the database can occur outside of a database transaction (this seems to confuse many developers who are used to the auto-commit mode). Always use clear transaction boundaries, even for read-only operations. Depending on your isolation level and database capabilities this might not be required, but there is no downside if you always demarcate transactions explicitly. Certainly, a single database transaction is going to perform better than many small transactions, even for reading data."
+msgstr "数据库(或者系统)事务的声明总是必须的。在数据库事务之外,就无法和数据库通讯(这可能会让那些习惯于自动提交事务模式的开发人员感到迷惑)。永远使用清晰的事务声明,即使只读操作也是如此。进行 显式的事务声明并不总是需要的,这取决于你的事务隔离级别和数据库的能力,但不管怎么说,声明事务总归有益无害。当然,一个单独的数据库事务总是比很多琐碎的事务性能更好,即时对读数据而言也是一样。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A Hibernate application can run in non-managed (i.e., standalone, simple "
-"Web- or Swing applications) and managed J2EE environments. In a non-managed "
-"environment, Hibernate is usually responsible for its own database "
-"connection pool. The application developer has to manually set transaction "
-"boundaries (begin, commit, or rollback database transactions) themselves. A "
-"managed environment usually provides container-managed transactions (CMT), "
-"with the transaction assembly defined declaratively (in deployment "
-"descriptors of EJB session beans, for example). Programmatic transaction "
-"demarcation is then no longer necessary."
-msgstr ""
-"一个 Hibernate 应用程序可以运行在非托管环境中(也就是独立运行的应用程序,简"
-"单 Web 应用程序,或者Swing图形桌面应用程序),也可以运行在托管的 J2EE 环境"
-"中。在一个非托管环境中,Hibernate 通常自己负责管理数据库连接池。应用程序开发"
-"人员必须手工设置事务声明,换句话说,就是手工启 动,提交,或者回滚数据库事务。"
-"一个托管的环境通常提供了容器管理事务(CMT),例如事务装配通过可声明的方式定义"
-"在 EJB session beans 的部署描述符中。可编程式事务声明不再需要,即使是 "
-"<literal>Session</literal> 的同步也可以自动完成。 "
+msgid "A Hibernate application can run in non-managed (i.e., standalone, simple Web- or Swing applications) and managed J2EE environments. In a non-managed environment, Hibernate is usually responsible for its own database connection pool. The application developer has to manually set transaction boundaries (begin, commit, or rollback database transactions) themselves. A managed environment usually provides container-managed transactions (CMT), with the transaction assembly defined declaratively (in deployment descriptors of EJB session beans, for example). Programmatic transaction demarcation is then no longer necessary."
+msgstr "一个 Hibernate 应用程序可以运行在非托管环境中(也就是独立运行的应用程序,简单 Web 应用程序,或者Swing图形桌面应用程序),也可以运行在托管的 J2EE 环境中。在一个非托管环境中,Hibernate 通常自己负责管理数据库连接池。应用程序开发人员必须手工设置事务声明,换句话说,就是手工启 动,提交,或者回滚数据库事务。一个托管的环境通常提供了容器管理事务(CMT),例如事务装配通过可声明的方式定义在 EJB session beans 的部署描述符中。可编程式事务声明不再需要,即使是 <literal>Session</literal> 的同步也可以自动完成。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"However, it is often desirable to keep your persistence layer portable "
-"between non-managed resource-local environments, and systems that can rely "
-"on JTA but use BMT instead of CMT. In both cases use programmatic "
-"transaction demarcation. Hibernate offers a wrapper API called "
-"<literal>Transaction</literal> that translates into the native transaction "
-"system of your deployment environment. This API is actually optional, but we "
-"strongly encourage its use unless you are in a CMT session bean."
-msgstr ""
-"让持久层具备可移植性是人们的理想,这种移植发生在非托管的本地资源环境,与依赖 "
-"JTA 但是使用 BMT 而非 CMT 的系统之间。在两种情况下你都可以使用编程式的事务管"
-"理。Hibernate 提供了一套称为 <literal>Transaction</literal> 的封装 API, 用来"
-"把你的部署环境中的本地事务管理系统转换到 Hibernate 事务上。这个 API 是可选"
-"的,但是我们强烈推荐你使用,除非你用 CMT session bean。 "
+msgid "However, it is often desirable to keep your persistence layer portable between non-managed resource-local environments, and systems that can rely on JTA but use BMT instead of CMT. In both cases use programmatic transaction demarcation. Hibernate offers a wrapper API called <literal>Transaction</literal> that translates into the native transaction system of your deployment environment. This API is actually optional, but we strongly encourage its use unless you are in a CMT session bean."
+msgstr "让持久层具备可移植性是人们的理想,这种移植发生在非托管的本地资源环境,与依赖 JTA 但是使用 BMT 而非 CMT 的系统之间。在两种情况下你都可以使用编程式的事务管理。Hibernate 提供了一套称为 <literal>Transaction</literal> 的封装 API, 用来把你的部署环境中的本地事务管理系统转换到 Hibernate 事务上。这个 API 是可选的,但是我们强烈推荐你使用,除非你用 CMT session bean。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Ending a <literal>Session</literal> usually involves four distinct phases:"
+msgid "Ending a <literal>Session</literal> usually involves four distinct phases:"
 msgstr "通常情况下,结束 <literal>Session</literal> 包含了四个不同的阶段: "
 
 #. Tag: para
@@ -695,13 +271,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"We discussed Flushing the session earlier, so we will now have a closer look "
-"at transaction demarcation and exception handling in both managed and non-"
-"managed environments."
-msgstr ""
-"session 的同步(flush,刷出)前面已经讨论过了,我们现在进一步考察在托管和非托"
-"管环境下的事务声明和异常处理。 "
+msgid "We discussed Flushing the session earlier, so we will now have a closer look at transaction demarcation and exception handling in both managed and non-managed environments."
+msgstr "session 的同步(flush,刷出)前面已经讨论过了,我们现在进一步考察在托管和非托管环境下的事务声明和异常处理。 "
 
 #. Tag: title
 #, no-c-format
@@ -710,73 +281,28 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If a Hibernate persistence layer runs in a non-managed environment, database "
-"connections are usually handled by simple (i.e., non-DataSource) connection "
-"pools from which Hibernate obtains connections as needed. The session/"
-"transaction handling idiom looks like this:"
-msgstr ""
-"如果 Hibernat 持久层运行在一个非托管环境中,数据库连接通常由 Hibernate 的简单"
-"(即非 DataSource)连接池机制 来处理。session/transaction 处理方式如下所示: "
+msgid "If a Hibernate persistence layer runs in a non-managed environment, database connections are usually handled by simple (i.e., non-DataSource) connection pools from which Hibernate obtains connections as needed. The session/transaction handling idiom looks like this:"
+msgstr "如果 Hibernat 持久层运行在一个非托管环境中,数据库连接通常由 Hibernate 的简单(即非 DataSource)连接池机制 来处理。session/transaction 处理方式如下所示: "
 
 #. Tag: para
-#, fuzzy, no-c-format
-msgid ""
-"You do not have to <literal>flush()</literal> the <literal>Session</literal> "
-"explicitly: the call to <literal>commit()</literal> automatically triggers "
-"the synchronization depending on the <xref linkend=\"objectstate-flushing\" /"
-"> for the session. A call to <literal>close()</literal> marks the end of a "
-"session. The main implication of <literal>close()</literal> is that the JDBC "
-"connection will be relinquished by the session. This Java code is portable "
-"and runs in both non-managed and JTA environments."
-msgstr ""
-"你不需要显式 <literal>flush()</literal> <literal>Session</literal> — 对 "
-"<literal>commit()</literal> 的调用会自动触发 session 的同步(取决于 session "
-"的 <xref linkend=\"objectstate-flushing\">FlushMode</xref>)。调用 "
-"<literal>close()</literal> 标志 session 的结束。<literal>close()</literal> 方"
-"法重要的暗示是,<literal>session</literal> 释放了 JDBC 连接。这段 Java 代码在"
-"非托管环境下和 JTA 环境下都可以运行。 "
+#, no-c-format
+msgid "You do not have to <literal>flush()</literal> the <literal>Session</literal> explicitly: the call to <literal>commit()</literal> automatically triggers the synchronization depending on the <xref linkend=\"objectstate-flushing\" /> for the session. A call to <literal>close()</literal> marks the end of a session. The main implication of <literal>close()</literal> is that the JDBC connection will be relinquished by the session. This Java code is portable and runs in both non-managed and JTA environments."
+msgstr "你不需要显式 <literal>flush()</literal> <literal>Session</literal> — 对 <literal>commit()</literal> 的调用会自动触发 session 的同步(取决于 session 的 <xref linkend=\"objectstate-flushing\">FlushMode</xref>)。调用 <literal>close()</literal> 标志 session 的结束。<literal>close()</literal> 方法重要的暗示是,<literal>session</literal> 释放了 JDBC 连接。这段 Java 代码在非托管环境下和 JTA 环境下都可以运行。  "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"As outlined earlier, a much more flexible solution is Hibernate's built-in "
-"\"current session\" context management:"
-msgstr ""
-"更加灵活的方案是 Hibernate 内置的 \"current session\" 上下文管理,前文已经讲"
-"过: "
+msgid "As outlined earlier, a much more flexible solution is Hibernate's built-in \"current session\" context management:"
+msgstr "更加灵活的方案是 Hibernate 内置的 \"current session\" 上下文管理,前文已经讲过: "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You will not see these code snippets in a regular application; fatal "
-"(system) exceptions should always be caught at the \"top\". In other words, "
-"the code that executes Hibernate calls in the persistence layer, and the "
-"code that handles <literal>RuntimeException</literal> (and usually can only "
-"clean up and exit), are in different layers. The current context management "
-"by Hibernate can significantly simplify this design by accessing a "
-"<literal>SessionFactory</literal>. Exception handling is discussed later in "
-"this chapter."
-msgstr ""
-"你很可能从未在一个通常的应用程序的业务代码中见过这样的代码片断:致命的(系"
-"统)异常应该总是 在应用程序“顶层”被捕获。换句话说,执行 Hibernate 调用的代码"
-"(在持久层)和处理 <literal>RuntimeException</literal> 异常的代码(通常只能清"
-"理和退出应用程序)应该在不同 的应用程序逻辑层。Hibernate 的当前上下文管理可以"
-"极大地简化这一设计,你所有的一切就是 <literal>SessionFactory</literal>。异常"
-"处理将在本章稍后进行讨论。 "
+msgid "You will not see these code snippets in a regular application; fatal (system) exceptions should always be caught at the \"top\". In other words, the code that executes Hibernate calls in the persistence layer, and the code that handles <literal>RuntimeException</literal> (and usually can only clean up and exit), are in different layers. The current context management by Hibernate can significantly simplify this design by accessing a <literal>SessionFactory</literal>. Exception handling is discussed later in this chapter."
+msgstr "你很可能从未在一个通常的应用程序的业务代码中见过这样的代码片断:致命的(系统)异常应该总是 在应用程序“顶层”被捕获。换句话说,执行 Hibernate 调用的代码(在持久层)和处理 <literal>RuntimeException</literal> 异常的代码(通常只能清理和退出应用程序)应该在不同 的应用程序逻辑层。Hibernate 的当前上下文管理可以极大地简化这一设计,你所有的一切就是 <literal>SessionFactory</literal>。异常处理将在本章稍后进行讨论。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You should select <literal>org.hibernate.transaction.JDBCTransactionFactory</"
-"literal>, which is the default, and for the second example select <literal>"
-"\"thread\"</literal> as your <literal>hibernate."
-"current_session_context_class</literal>."
-msgstr ""
-"请注意,你应该选择 <literal>org.hibernate.transaction."
-"JDBCTransactionFactory</literal> (这是默认选项),对第二个例子来说,"
-"<literal>hibernate.current_session_context_class</literal>应该是 <literal>"
-"\"thread\"</literal>。"
+msgid "You should select <literal>org.hibernate.transaction.JDBCTransactionFactory</literal>, which is the default, and for the second example select <literal>\"thread\"</literal> as your <literal>hibernate.current_session_context_class</literal>."
+msgstr "请注意,你应该选择 <literal>org.hibernate.transaction.JDBCTransactionFactory</literal> (这是默认选项),对第二个例子来说,<literal>hibernate.current_session_context_class</literal>应该是 <literal>\"thread\"</literal>。"
 
 #. Tag: title
 #, no-c-format
@@ -785,110 +311,38 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If your persistence layer runs in an application server (for example, behind "
-"EJB session beans), every datasource connection obtained by Hibernate will "
-"automatically be part of the global JTA transaction. You can also install a "
-"standalone JTA implementation and use it without EJB. Hibernate offers two "
-"strategies for JTA integration."
-msgstr ""
-"如果你的持久层运行在一个应用服务器中(例如,在 EJB session beans 的后面),"
-"Hibernate 获取的每个数据源连接将自动成为全局 JTA 事务的一部分。你可以安装一个"
-"独立的 JTA 实现,使用它而不使用 EJB。Hibernate 提供了两种策略进行 JTA 集成。 "
+msgid "If your persistence layer runs in an application server (for example, behind EJB session beans), every datasource connection obtained by Hibernate will automatically be part of the global JTA transaction. You can also install a standalone JTA implementation and use it without EJB. Hibernate offers two strategies for JTA integration."
+msgstr "如果你的持久层运行在一个应用服务器中(例如,在 EJB session beans 的后面),Hibernate 获取的每个数据源连接将自动成为全局 JTA 事务的一部分。你可以安装一个独立的 JTA 实现,使用它而不使用 EJB。Hibernate 提供了两种策略进行 JTA 集成。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If you use bean-managed transactions (BMT), Hibernate will tell the "
-"application server to start and end a BMT transaction if you use the "
-"<literal>Transaction</literal> API. The transaction management code is "
-"identical to the non-managed environment."
-msgstr ""
-"如果你使用 bean 管理事务(BMT),可以通过使用 Hibernate 的 "
-"<literal>Transaction</literal> API 来告诉应用服务器启动和结束 BMT 事务。因"
-"此,事务管理代码和在非托管环境下是一样的。 "
+msgid "If you use bean-managed transactions (BMT), Hibernate will tell the application server to start and end a BMT transaction if you use the <literal>Transaction</literal> API. The transaction management code is identical to the non-managed environment."
+msgstr "如果你使用 bean 管理事务(BMT),可以通过使用 Hibernate 的 <literal>Transaction</literal> API 来告诉应用服务器启动和结束 BMT 事务。因此,事务管理代码和在非托管环境下是一样的。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If you want to use a transaction-bound <literal>Session</literal>, that is, "
-"the <literal>getCurrentSession()</literal> functionality for easy context "
-"propagation, use the JTA <literal>UserTransaction</literal> API directly:"
-msgstr ""
-"如果你希望使用与事务绑定的 <literal>Session</literal>,也就是使用 "
-"<literal>getCurrentSession()</literal> 来简化上下文管理,你将不得不直接使用 "
-"JTA  <literal>UserTransaction</literal> API。 "
+msgid "If you want to use a transaction-bound <literal>Session</literal>, that is, the <literal>getCurrentSession()</literal> functionality for easy context propagation, use the JTA <literal>UserTransaction</literal> API directly:"
+msgstr "如果你希望使用与事务绑定的 <literal>Session</literal>,也就是使用 <literal>getCurrentSession()</literal> 来简化上下文管理,你将不得不直接使用 JTA  <literal>UserTransaction</literal> API。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"With CMT, transaction demarcation is completed in session bean deployment "
-"descriptors, not programmatically. The code is reduced to:"
-msgstr ""
-"在 CMT 方式下,事务声明是在 session bean 的部署描述符中,而不需要编程。因此,"
-"代码被简化为:"
+msgid "With CMT, transaction demarcation is completed in session bean deployment descriptors, not programmatically. The code is reduced to:"
+msgstr "在 CMT 方式下,事务声明是在 session bean 的部署描述符中,而不需要编程。因此,代码被简化为:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"In a CMT/EJB, even rollback happens automatically. An unhandled "
-"<literal>RuntimeException</literal> thrown by a session bean method tells "
-"the container to set the global transaction to rollback. <emphasis>You do "
-"not need to use the Hibernate <literal>Transaction</literal> API at all with "
-"BMT or CMT, and you get automatic propagation of the \"current\" Session "
-"bound to the transaction.</emphasis>"
-msgstr ""
-"在 CMT/EJB 中甚至会自动 rollback,因为假若有未捕获的 "
-"<literal>RuntimeException</literal> 从 session bean 方法中抛出,这就会通知容"
-"器把全局事务回滚。<emphasis>这就意味着,在 BMT 或者 CMT 中,你根本就不需要使"
-"用 Hibernate <literal>Transaction</literal> API,你自动得到了绑定到事务的“当"
-"前” Session。</emphasis>"
+msgid "In a CMT/EJB, even rollback happens automatically. An unhandled <literal>RuntimeException</literal> thrown by a session bean method tells the container to set the global transaction to rollback. <emphasis>You do not need to use the Hibernate <literal>Transaction</literal> API at all with BMT or CMT, and you get automatic propagation of the \"current\" Session bound to the transaction.</emphasis>"
+msgstr "在 CMT/EJB 中甚至会自动 rollback,因为假若有未捕获的 <literal>RuntimeException</literal> 从 session bean 方法中抛出,这就会通知容器把全局事务回滚。<emphasis>这就意味着,在 BMT 或者 CMT 中,你根本就不需要使用 Hibernate <literal>Transaction</literal> API,你自动得到了绑定到事务的“当前” Session。</emphasis>"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"When configuring Hibernate's transaction factory, choose <literal>org."
-"hibernate.transaction.JTATransactionFactory</literal> if you use JTA "
-"directly (BMT), and <literal>org.hibernate.transaction."
-"CMTTransactionFactory</literal> in a CMT session bean. Remember to also set "
-"<literal>hibernate.transaction.manager_lookup_class</literal>. Ensure that "
-"your <literal>hibernate.current_session_context_class</literal> is either "
-"unset (backwards compatibility), or is set to <literal>\"jta\"</literal>."
-msgstr ""
-"注意,当你配置 Hibernate 的 transaction factory 的时候,在直接使用 JTA 的时候"
-"(BMT),你应该选择 <literal>org.hibernate.transaction."
-"JTATransactionFactory</literal>,在 CMT session bean 中选择 <literal>org."
-"hibernate.transaction.CMTTransactionFactory</literal>。记得也要设置 "
-"<literal>hibernate.transaction.manager_lookup_class</literal>。还有,确认你"
-"的 <literal>hibernate.current_session_context_class</literal> 未设置(为了向"
-"下兼容),或者设置为 <literal>\"jta\"</literal>。 "
+msgid "When configuring Hibernate's transaction factory, choose <literal>org.hibernate.transaction.JTATransactionFactory</literal> if you use JTA directly (BMT), and <literal>org.hibernate.transaction.CMTTransactionFactory</literal> in a CMT session bean. Remember to also set <literal>hibernate.transaction.manager_lookup_class</literal>. Ensure that your <literal>hibernate.current_session_context_class</literal> is either unset (backwards compatibility), or is set to <literal>\"jta\"</literal>."
+msgstr "注意,当你配置 Hibernate 的 transaction factory 的时候,在直接使用 JTA 的时候(BMT),你应该选择 <literal>org.hibernate.transaction.JTATransactionFactory</literal>,在 CMT session bean 中选择 <literal>org.hibernate.transaction.CMTTransactionFactory</literal>。记得也要设置 <literal>hibernate.transaction.manager_lookup_class</literal>。还有,确认你的 <literal>hibernate.current_session_context_class</literal> 未设置(为了向下兼容),或者设置为 <literal>\"jta\"</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>getCurrentSession()</literal> operation has one downside in a "
-"JTA environment. There is one caveat to the use of <literal>after_statement</"
-"literal> connection release mode, which is then used by default. Due to a "
-"limitation of the JTA spec, it is not possible for Hibernate to "
-"automatically clean up any unclosed <literal>ScrollableResults</literal> or "
-"<literal>Iterator</literal> instances returned by <literal>scroll()</"
-"literal> or <literal>iterate()</literal>. You <emphasis>must</emphasis> "
-"release the underlying database cursor by calling <literal>ScrollableResults."
-"close()</literal> or <literal>Hibernate.close(Iterator)</literal> explicitly "
-"from a <literal>finally</literal> block. Most applications can easily avoid "
-"using <literal>scroll()</literal> or <literal>iterate()</literal> from the "
-"JTA or CMT code.)"
-msgstr ""
-"<literal>getCurrentSession()</literal>在 JTA 环境中有一个弊端。对 "
-"<literal>after_statement</literal> 连接释放方式有一个警告,这是被默认使用的。"
-"因为 JTA 规范的一个很愚蠢的限制,Hibernate 不可能自动清理任何未关闭的 "
-"<literal>ScrollableResults</literal> 或者<literal>Iterator</literal>,它们是"
-"由 <literal>scroll()</literal> 或 <literal>iterate()</literal> 产生的。你 "
-"<emphasis>must</emphasis> 通过在 <literal>finally</literal> 块中,显式调用 "
-"<literal>ScrollableResults.close()</literal> 或者 <literal>Hibernate.close"
-"(Iterator)</literal> 方法来释放底层数据库游标。(当然,大部分程序完全可以很容"
-"易的避免在 JTA 或 CMT 代码中出现 <literal>scroll()</literal> 或 "
-"<literal>iterate()</literal>。) "
+msgid "The <literal>getCurrentSession()</literal> operation has one downside in a JTA environment. There is one caveat to the use of <literal>after_statement</literal> connection release mode, which is then used by default. Due to a limitation of the JTA spec, it is not possible for Hibernate to automatically clean up any unclosed <literal>ScrollableResults</literal> or <literal>Iterator</literal> instances returned by <literal>scroll()</literal> or <literal>iterate()</literal>. You <emphasis>must</emphasis> release the underlying database cursor by calling <literal>ScrollableResults.close()</literal> or <literal>Hibernate.close(Iterator)</literal> explicitly from a <literal>finally</literal> block. Most applications can easily avoid using <literal>scroll()</literal> or <literal>iterate()</literal> from the JTA or CMT code.)"
+msgstr "<literal>getCurrentSession()</literal>在 JTA 环境中有一个弊端。对 <literal>after_statement</literal> 连接释放方式有一个警告,这是被默认使用的。因为 JTA 规范的一个很愚蠢的限制,Hibernate 不可能自动清理任何未关闭的 <literal>ScrollableResults</literal> 或者<literal>Iterator</literal>,它们是由 <literal>scroll()</literal> 或 <literal>iterate()</literal> 产生的。你 <emphasis>must</emphasis> 通过在 <literal>finally</literal> 块中,显式调用 <literal>ScrollableResults.close()</literal> 或者 <literal>Hibernate.close(Iterator)</literal> 方法来释放底层数据库游标。(当然,大部分程序完全可以很容易的避免在 JTA 或 CMT 代码中出现 <literal>scroll()</literal> 或 <literal>iterate()</literal>。) "
 
 #. Tag: title
 #, no-c-format
@@ -897,117 +351,43 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If the <literal>Session</literal> throws an exception, including any "
-"<literal>SQLException</literal>, immediately rollback the database "
-"transaction, call <literal>Session.close()</literal> and discard the "
-"<literal>Session</literal> instance. Certain methods of <literal>Session</"
-"literal> will <emphasis>not</emphasis> leave the session in a consistent "
-"state. No exception thrown by Hibernate can be treated as recoverable. "
-"Ensure that the <literal>Session</literal> will be closed by calling "
-"<literal>close()</literal> in a <literal>finally</literal> block."
-msgstr ""
-"如果 <literal>Session</literal> 抛出异常(包括任何 <literal>SQLException</"
-"literal>),你应该立即回滚数据库事务,调用 <literal>Session.close()</"
-"literal> ,丢弃该  <literal>Session</literal> 实例。<literal>Session</"
-"literal> 的某些方法可能会导致 session 处于不一致的状态。所有由 Hibernate 抛出"
-"的异常都视为不可以恢复的。确保在  <literal>finally</literal> 代码块中调用 "
-"<literal>close()</literal> 方法,以关闭掉  <literal>Session</literal>。"
+msgid "If the <literal>Session</literal> throws an exception, including any <literal>SQLException</literal>, immediately rollback the database transaction, call <literal>Session.close()</literal> and discard the <literal>Session</literal> instance. Certain methods of <literal>Session</literal> will <emphasis>not</emphasis> leave the session in a consistent state. No exception thrown by Hibernate can be treated as recoverable. Ensure that the <literal>Session</literal> will be closed by calling <literal>close()</literal> in a <literal>finally</literal> block."
+msgstr "如果 <literal>Session</literal> 抛出异常(包括任何 <literal>SQLException</literal>),你应该立即回滚数据库事务,调用 <literal>Session.close()</literal> ,丢弃该  <literal>Session</literal> 实例。<literal>Session</literal> 的某些方法可能会导致 session 处于不一致的状态。所有由 Hibernate 抛出的异常都视为不可以恢复的。确保在  <literal>finally</literal> 代码块中调用 <literal>close()</literal> 方法,以关闭掉  <literal>Session</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>HibernateException</literal>, which wraps most of the errors "
-"that can occur in a Hibernate persistence layer, is an unchecked exception. "
-"It was not in older versions of Hibernate. In our opinion, we should not "
-"force the application developer to catch an unrecoverable exception at a low "
-"layer. In most systems, unchecked and fatal exceptions are handled in one of "
-"the first frames of the method call stack (i.e., in higher layers) and "
-"either an error message is presented to the application user or some other "
-"appropriate action is taken. Note that Hibernate might also throw other "
-"unchecked exceptions that are not a <literal>HibernateException</literal>. "
-"These are not recoverable and appropriate action should be taken."
-msgstr ""
-"<literal>HibernateException</literal> 是一个非检查期异常(这不同于 Hibernate "
-"老的版本),它封装了 Hibernate 持久层可能出现的大多数错误。我们的观点是,不应"
-"该强迫应用程序开发人员 在底层捕获无法恢复的异常。在大多数软件系统中,非检查期"
-"异常和致命异常都是在相应方法调用 的堆栈的顶层被处理的(也就是说,在软件上面的"
-"逻辑层),并且提供一个错误信息给应用软件的用户 (或者采取其他某些相应的操"
-"作)。请注意,Hibernate 也有可能抛出其他并不属于 "
-"<literal>HibernateException</literal> 的非检查期异常。这些异常同样也是无法恢"
-"复的,应该 采取某些相应的操作去处理。"
+msgid "The <literal>HibernateException</literal>, which wraps most of the errors that can occur in a Hibernate persistence layer, is an unchecked exception. It was not in older versions of Hibernate. In our opinion, we should not force the application developer to catch an unrecoverable exception at a low layer. In most systems, unchecked and fatal exceptions are handled in one of the first frames of the method call stack (i.e., in higher layers) and either an error message is presented to the application user or some other appropriate action is taken. Note that Hibernate might also throw other unchecked exceptions that are not a <literal>HibernateException</literal>. These are not recoverable and appropriate action should be taken."
+msgstr "<literal>HibernateException</literal> 是一个非检查期异常(这不同于 Hibernate 老的版本),它封装了 Hibernate 持久层可能出现的大多数错误。我们的观点是,不应该强迫应用程序开发人员 在底层捕获无法恢复的异常。在大多数软件系统中,非检查期异常和致命异常都是在相应方法调用 的堆栈的顶层被处理的(也就是说,在软件上面的逻辑层),并且提供一个错误信息给应用软件的用户 (或者采取其他某些相应的操作)。请注意,Hibernate 也有可能抛出其他并不属于 <literal>HibernateException</literal> 的非检查期异常。这些异常同样也是无法恢复的,应该 采取某些相应的操作去处理。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate wraps <literal>SQLException</literal>s thrown while interacting "
-"with the database in a <literal>JDBCException</literal>. In fact, Hibernate "
-"will attempt to convert the exception into a more meaningful subclass of "
-"<literal>JDBCException</literal>. The underlying <literal>SQLException</"
-"literal> is always available via <literal>JDBCException.getCause()</"
-"literal>. Hibernate converts the <literal>SQLException</literal> into an "
-"appropriate <literal>JDBCException</literal> subclass using the "
-"<literal>SQLExceptionConverter</literal> attached to the "
-"<literal>SessionFactory</literal>. By default, the "
-"<literal>SQLExceptionConverter</literal> is defined by the configured "
-"dialect. However, it is also possible to plug in a custom implementation. "
-"See the javadocs for the <literal>SQLExceptionConverterFactory</literal> "
-"class for details. The standard <literal>JDBCException</literal> subtypes "
-"are:"
-msgstr ""
-"在和数据库进行交互时,Hibernate 把捕获的 <literal>SQLException</literal> 封装"
-"为 Hibernate 的  <literal>JDBCException</literal>。事实上,Hibernate 尝试把异"
-"常转换为更有实际含义的 <literal>JDBCException</literal> 异常的子类。底层的 "
-"<literal>SQLException</literal> 可以通过 <literal>JDBCException.getCause()</"
-"literal> 来得到。Hibernate 通过使用关联到  <literal>SessionFactory</literal> "
-"上的 <literal>SQLExceptionConverter</literal> 来把 <literal>SQLException</"
-"literal> 转换为一个对应的 <literal>JDBCException</literal> 异常的子类。默认情"
-"况下,<literal>SQLExceptionConverter</literal> 可以通过配置 dialect 选项指"
-"定;此外,也可以使用用户自定义的实现类(参考 javadocs "
-"<literal>SQLExceptionConverterFactory</literal> 类来了解详情)。标准的 "
-"<literal>JDBCException</literal> 子类型是: "
+msgid "Hibernate wraps <literal>SQLException</literal>s thrown while interacting with the database in a <literal>JDBCException</literal>. In fact, Hibernate will attempt to convert the exception into a more meaningful subclass of <literal>JDBCException</literal>. The underlying <literal>SQLException</literal> is always available via <literal>JDBCException.getCause()</literal>. Hibernate converts the <literal>SQLException</literal> into an appropriate <literal>JDBCException</literal> subclass using the <literal>SQLExceptionConverter</literal> attached to the <literal>SessionFactory</literal>. By default, the <literal>SQLExceptionConverter</literal> is defined by the configured dialect. However, it is also possible to plug in a custom implementation. See the javadocs for the <literal>SQLExceptionConverterFactory</literal> class for details. The standard <literal>JDBCException</literal> subtypes are:"
+msgstr "在和数据库进行交互时,Hibernate 把捕获的 <literal>SQLException</literal> 封装为 Hibernate 的  <literal>JDBCException</literal>。事实上,Hibernate 尝试把异常转换为更有实际含义的 <literal>JDBCException</literal> 异常的子类。底层的 <literal>SQLException</literal> 可以通过 <literal>JDBCException.getCause()</literal> 来得到。Hibernate 通过使用关联到  <literal>SessionFactory</literal> 上的 <literal>SQLExceptionConverter</literal> 来把 <literal>SQLException</literal> 转换为一个对应的 <literal>JDBCException</literal> 异常的子类。默认情况下,<literal>SQLExceptionConverter</literal> 可以通过配置 dialect 选项指定;此外,也可以使用用户自定义的实现类(参考 javadocs <literal>SQLExceptionConverterFactory</literal> 类来了解详情)。标准的 <literal>JDBCException</literal> 子类型是: "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>JDBCConnectionException</literal>: indicates an error with the "
-"underlying JDBC communication."
-msgstr ""
-"<literal>JDBCConnectionException</literal>:指明底层的 JDBC 通讯出现错误。"
+msgid "<literal>JDBCConnectionException</literal>: indicates an error with the underlying JDBC communication."
+msgstr "<literal>JDBCConnectionException</literal>:指明底层的 JDBC 通讯出现错误。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>SQLGrammarException</literal>: indicates a grammar or syntax "
-"problem with the issued SQL."
-msgstr ""
-"<literal>SQLGrammarException</literal>:指明发送的 SQL 语句的语法或者格式错"
-"误。"
+msgid "<literal>SQLGrammarException</literal>: indicates a grammar or syntax problem with the issued SQL."
+msgstr "<literal>SQLGrammarException</literal>:指明发送的 SQL 语句的语法或者格式错误。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>ConstraintViolationException</literal>: indicates some form of "
-"integrity constraint violation."
-msgstr ""
-"<literal>ConstraintViolationException</literal>:指明某种类型的约束违例错误"
+msgid "<literal>ConstraintViolationException</literal>: indicates some form of integrity constraint violation."
+msgstr "<literal>ConstraintViolationException</literal>:指明某种类型的约束违例错误"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>LockAcquisitionException</literal>: indicates an error acquiring a "
-"lock level necessary to perform the requested operation."
-msgstr ""
-"<literal>LockAcquisitionException</literal>:指明了在执行请求操作时,获取所需"
-"的锁级别时出现的错误。"
+msgid "<literal>LockAcquisitionException</literal>: indicates an error acquiring a lock level necessary to perform the requested operation."
+msgstr "<literal>LockAcquisitionException</literal>:指明了在执行请求操作时,获取所需的锁级别时出现的错误。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>GenericJDBCException</literal>: a generic exception which did not "
-"fall into any of the other categories."
-msgstr ""
-"<literal>GenericJDBCException</literal>:不属于任何其他种类的原生异常。"
+msgid "<literal>GenericJDBCException</literal>: a generic exception which did not fall into any of the other categories."
+msgstr "<literal>GenericJDBCException</literal>:不属于任何其他种类的原生异常。"
 
 #. Tag: title
 #, no-c-format
@@ -1016,33 +396,13 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"An important feature provided by a managed environment like EJB, that is "
-"never provided for non-managed code, is transaction timeout. Transaction "
-"timeouts ensure that no misbehaving transaction can indefinitely tie up "
-"resources while returning no response to the user. Outside a managed (JTA) "
-"environment, Hibernate cannot fully provide this functionality. However, "
-"Hibernate can at least control data access operations, ensuring that "
-"database level deadlocks and queries with huge result sets are limited by a "
-"defined timeout. In a managed environment, Hibernate can delegate "
-"transaction timeout to JTA. This functionality is abstracted by the "
-"Hibernate <literal>Transaction</literal> object."
-msgstr ""
-"EJB 这样的托管环境有一项极为重要的特性,而它从未在非托管环境中提供过,那就是"
-"事务超时。在出现错误的事务行为的时候,超时可以确保不会无限挂起资源、对用户没"
-"有交代。在托管(JTA)环境之外,Hibernate 无法完全提供这一功能。但是,"
-"Hiberante 至少可以控制数据访问,确保数据库级别的死锁,和返回巨大结果集的查询"
-"被限定在一个规定的时间内。在托管环境中,Hibernate 会把事务超时转交给 JTA。这"
-"一功能通过 Hibernate <literal>Transaction</literal> 对象进行抽象。 "
+msgid "An important feature provided by a managed environment like EJB, that is never provided for non-managed code, is transaction timeout. Transaction timeouts ensure that no misbehaving transaction can indefinitely tie up resources while returning no response to the user. Outside a managed (JTA) environment, Hibernate cannot fully provide this functionality. However, Hibernate can at least control data access operations, ensuring that database level deadlocks and queries with huge result sets are limited by a defined timeout. In a managed environment, Hibernate can delegate transaction timeout to JTA. This functionality is abstracted by the Hibernate <literal>Transaction</literal> object."
+msgstr "EJB 这样的托管环境有一项极为重要的特性,而它从未在非托管环境中提供过,那就是事务超时。在出现错误的事务行为的时候,超时可以确保不会无限挂起资源、对用户没有交代。在托管(JTA)环境之外,Hibernate 无法完全提供这一功能。但是,Hiberante 至少可以控制数据访问,确保数据库级别的死锁,和返回巨大结果集的查询被限定在一个规定的时间内。在托管环境中,Hibernate 会把事务超时转交给 JTA。这一功能通过 Hibernate <literal>Transaction</literal> 对象进行抽象。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>setTimeout()</literal> cannot be called in a CMT bean, where "
-"transaction timeouts must be defined declaratively."
-msgstr ""
-"注意 <literal>setTimeout()</literal> 不应该在 CMT bean 中调用,此时事务超时值"
-"应该是被声明式定义的。 "
+msgid "<literal>setTimeout()</literal> cannot be called in a CMT bean, where transaction timeouts must be defined declaratively."
+msgstr "注意 <literal>setTimeout()</literal> 不应该在 CMT bean 中调用,此时事务超时值应该是被声明式定义的。 "
 
 #. Tag: title
 #, no-c-format
@@ -1051,20 +411,8 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The only approach that is consistent with high concurrency and high "
-"scalability, is optimistic concurrency control with versioning. Version "
-"checking uses version numbers, or timestamps, to detect conflicting updates "
-"and to prevent lost updates. Hibernate provides three possible approaches to "
-"writing application code that uses optimistic concurrency. The use cases we "
-"discuss are in the context of long conversations, but version checking also "
-"has the benefit of preventing lost updates in single database transactions."
-msgstr ""
-"唯一能够同时保持高并发和高可伸缩性的方法就是使用带版本化的乐观并发控制。版本"
-"检查使用版本号、 或者时间戳来检测更新冲突(并且防止更新丢失)。Hibernate 为使"
-"用乐观并发控制的代码提供了三种可 能的方法,应用程序在编写这些代码时,可以采用"
-"它们。我们已经在前面应用程序对话那部分展示了 乐观并发控制的应用场景,此外,在"
-"单个数据库事务范围内,版本检查也提供了防止更新丢失的好处。 "
+msgid "The only approach that is consistent with high concurrency and high scalability, is optimistic concurrency control with versioning. Version checking uses version numbers, or timestamps, to detect conflicting updates and to prevent lost updates. Hibernate provides three possible approaches to writing application code that uses optimistic concurrency. The use cases we discuss are in the context of long conversations, but version checking also has the benefit of preventing lost updates in single database transactions."
+msgstr "唯一能够同时保持高并发和高可伸缩性的方法就是使用带版本化的乐观并发控制。版本检查使用版本号、 或者时间戳来检测更新冲突(并且防止更新丢失)。Hibernate 为使用乐观并发控制的代码提供了三种可 能的方法,应用程序在编写这些代码时,可以采用它们。我们已经在前面应用程序对话那部分展示了 乐观并发控制的应用场景,此外,在单个数据库事务范围内,版本检查也提供了防止更新丢失的好处。 "
 
 #. Tag: title
 #, no-c-format
@@ -1073,60 +421,23 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"In an implementation without much help from Hibernate, each interaction with "
-"the database occurs in a new <literal>Session</literal> and the developer is "
-"responsible for reloading all persistent instances from the database before "
-"manipulating them. The application is forced to carry out its own version "
-"checking to ensure conversation transaction isolation. This approach is the "
-"least efficient in terms of database access. It is the approach most similar "
-"to entity EJBs."
-msgstr ""
-"未能充分利用 Hibernate 功能的实现代码中,每次和数据库交互都需要一个新的  "
-"<literal>Session</literal>,而且开发人员必须在显示数据之前从数据库中重新载入"
-"所有的持久化对象实例。这种方式迫使应用程序自己实现版本检查来确保对话事务的隔"
-"离,从数据访问的角度来说是最低效的。这种使用方式和 entity EJB 最相似。 "
+msgid "In an implementation without much help from Hibernate, each interaction with the database occurs in a new <literal>Session</literal> and the developer is responsible for reloading all persistent instances from the database before manipulating them. The application is forced to carry out its own version checking to ensure conversation transaction isolation. This approach is the least efficient in terms of database access. It is the approach most similar to entity EJBs."
+msgstr "未能充分利用 Hibernate 功能的实现代码中,每次和数据库交互都需要一个新的  <literal>Session</literal>,而且开发人员必须在显示数据之前从数据库中重新载入所有的持久化对象实例。这种方式迫使应用程序自己实现版本检查来确保对话事务的隔离,从数据访问的角度来说是最低效的。这种使用方式和 entity EJB 最相似。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>version</literal> property is mapped using <literal>&lt;"
-"version&gt;</literal>, and Hibernate will automatically increment it during "
-"flush if the entity is dirty."
-msgstr ""
-"<literal>version</literal> 属性使用 <literal>&lt;version&gt;</literal> 来映"
-"射,如果对象是脏数据,在同步的时候,Hibernate 会自动增加版本号。"
+msgid "The <literal>version</literal> property is mapped using <literal>&lt;version&gt;</literal>, and Hibernate will automatically increment it during flush if the entity is dirty."
+msgstr "<literal>version</literal> 属性使用 <literal>&lt;version&gt;</literal> 来映射,如果对象是脏数据,在同步的时候,Hibernate 会自动增加版本号。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If you are operating in a low-data-concurrency environment, and do not "
-"require version checking, you can use this approach and skip the version "
-"check. In this case, <emphasis>last commit wins</emphasis> is the default "
-"strategy for long conversations. Be aware that this might confuse the users "
-"of the application, as they might experience lost updates without error "
-"messages or a chance to merge conflicting changes."
-msgstr ""
-"当然,如果你的应用是在一个低数据并发环境下,并不需要版本检查的话,你照样可以"
-"使用这种方式,只不过跳过版本检查就是了。在这种情况下,<emphasis>最晚提交生效"
-"</emphasis> (<emphasis>last commit wins</emphasis>)就是你的长对话的默认处理"
-"策略。请记住这种策略可能会让应用软件的用户感到困惑,因为他们有可能会碰上更新"
-"丢失掉却没有出错信息,或者需要合并更改冲突的情况。 "
+msgid "If you are operating in a low-data-concurrency environment, and do not require version checking, you can use this approach and skip the version check. In this case, <emphasis>last commit wins</emphasis> is the default strategy for long conversations. Be aware that this might confuse the users of the application, as they might experience lost updates without error messages or a chance to merge conflicting changes."
+msgstr "当然,如果你的应用是在一个低数据并发环境下,并不需要版本检查的话,你照样可以使用这种方式,只不过跳过版本检查就是了。在这种情况下,<emphasis>最晚提交生效</emphasis> (<emphasis>last commit wins</emphasis>)就是你的长对话的默认处理策略。请记住这种策略可能会让应用软件的用户感到困惑,因为他们有可能会碰上更新丢失掉却没有出错信息,或者需要合并更改冲突的情况。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Manual version checking is only feasible in trivial circumstances and not "
-"practical for most applications. Often not only single instances, but "
-"complete graphs of modified objects, have to be checked. Hibernate offers "
-"automatic version checking with either an extended <literal>Session</"
-"literal> or detached instances as the design paradigm."
-msgstr ""
-"很明显,手工进行版本检查只适合于某些软件规模非常小的应用场景,对于大多数软件"
-"应用场景来说并不现实。通常情况下,不仅是单个对象实例需要进行版本检查,整个被"
-"修改过的关联对象图也都需要进行版本检查。作为标准设计范例,Hibernate 使用扩展"
-"周期的 <literal>Session</literal> 的方式,或者脱管对象实例的方式来提供自动版"
-"本检查。 "
+msgid "Manual version checking is only feasible in trivial circumstances and not practical for most applications. Often not only single instances, but complete graphs of modified objects, have to be checked. Hibernate offers automatic version checking with either an extended <literal>Session</literal> or detached instances as the design paradigm."
+msgstr "很明显,手工进行版本检查只适合于某些软件规模非常小的应用场景,对于大多数软件应用场景来说并不现实。通常情况下,不仅是单个对象实例需要进行版本检查,整个被修改过的关联对象图也都需要进行版本检查。作为标准设计范例,Hibernate 使用扩展周期的 <literal>Session</literal> 的方式,或者脱管对象实例的方式来提供自动版本检查。 "
 
 #. Tag: title
 #, no-c-format
@@ -1135,80 +446,23 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A single <literal>Session</literal> instance and its persistent instances "
-"that are used for the whole conversation are known as <emphasis>session-per-"
-"conversation</emphasis>. Hibernate checks instance versions at flush time, "
-"throwing an exception if concurrent modification is detected. It is up to "
-"the developer to catch and handle this exception. Common options are the "
-"opportunity for the user to merge changes or to restart the business "
-"conversation with non-stale data."
-msgstr ""
-"单个 <literal>Session</literal> 实例和它所关联的所有持久化对象实例都被用于整"
-"个对话,这被称为 <emphasis>session-per-conversation</emphasis>。Hibernate 在"
-"同步的时候进行对象实例的版本检查,如果检测到并发修改则抛出异常。由开发人员来"
-"决定是否需要捕获和处理这个异常(通常的抉择是给用户 提供一个合并更改,或者在无"
-"脏数据情况下重新进行业务对话的机会)。 "
+msgid "A single <literal>Session</literal> instance and its persistent instances that are used for the whole conversation are known as <emphasis>session-per-conversation</emphasis>. Hibernate checks instance versions at flush time, throwing an exception if concurrent modification is detected. It is up to the developer to catch and handle this exception. Common options are the opportunity for the user to merge changes or to restart the business conversation with non-stale data."
+msgstr "单个 <literal>Session</literal> 实例和它所关联的所有持久化对象实例都被用于整个对话,这被称为 <emphasis>session-per-conversation</emphasis>。Hibernate 在同步的时候进行对象实例的版本检查,如果检测到并发修改则抛出异常。由开发人员来决定是否需要捕获和处理这个异常(通常的抉择是给用户 提供一个合并更改,或者在无脏数据情况下重新进行业务对话的机会)。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>Session</literal> is disconnected from any underlying JDBC "
-"connection when waiting for user interaction. This approach is the most "
-"efficient in terms of database access. The application does not version "
-"check or reattach detached instances, nor does it have to reload instances "
-"in every database transaction."
-msgstr ""
-"在等待用户交互的时候, <literal>Session</literal> 断开底层的 JDBC 连接。这种"
-"方式以数据库访问的角度来说是最高效的方式。应用程序不需要关心版本检查或脱管对"
-"象实例的重新关联,在每个数据库事务中,应用程序也不需要载入读取对象实例。 "
+msgid "The <literal>Session</literal> is disconnected from any underlying JDBC connection when waiting for user interaction. This approach is the most efficient in terms of database access. The application does not version check or reattach detached instances, nor does it have to reload instances in every database transaction."
+msgstr "在等待用户交互的时候, <literal>Session</literal> 断开底层的 JDBC 连接。这种方式以数据库访问的角度来说是最高效的方式。应用程序不需要关心版本检查或脱管对象实例的重新关联,在每个数据库事务中,应用程序也不需要载入读取对象实例。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>foo</literal> object knows which <literal>Session</literal> it "
-"was loaded in. Beginning a new database transaction on an old session "
-"obtains a new connection and resumes the session. Committing a database "
-"transaction disconnects a session from the JDBC connection and returns the "
-"connection to the pool. After reconnection, to force a version check on data "
-"you are not updating, you can call <literal>Session.lock()</literal> with "
-"<literal>LockMode.READ</literal> on any objects that might have been updated "
-"by another transaction. You do not need to lock any data that you "
-"<emphasis>are</emphasis> updating. Usually you would set <literal>FlushMode."
-"MANUAL</literal> on an extended <literal>Session</literal>, so that only the "
-"last database transaction cycle is allowed to actually persist all "
-"modifications made in this conversation. Only this last database transaction "
-"will include the <literal>flush()</literal> operation, and then "
-"<literal>close()</literal> the session to end the conversation."
-msgstr ""
-"<literal>foo</literal> 对象知道它是在哪个 <literal>Session</literal> 中被装入"
-"的。在一个旧 session 中开启一个新的数据库事务,会导致 session 获取一个新的连"
-"接,并恢复 session 的功能。将数据库事务提交,使得 session 从 JDBC 连接断开,"
-"并将此连接交还给连接池。在重新连接之后,要强制对你没有更新的数据进行一次版本"
-"检查,你可以对所有可能被其他事务修改过的对象,使用参数 <literal>LockMode."
-"READ</literal> 来调用 <literal>Session.lock()</literal>。你不用 lock 任何你"
-"<emphasis>正在</emphasis>更新的数据。一般你会在扩展的 <literal>Session</"
-"literal> 上设置 <literal>FlushMode.NEVER</literal>,因此只有最后一个数据库事"
-"务循环才会真正的把整个对话中发生的修改发送到数据库。因此,只有这最后一次数据"
-"库事务才会包含 <literal>flush()</literal> 操作,然后在整个对话结束后,还要 "
-"<literal>close()</literal> 这个 session。 "
+msgid "The <literal>foo</literal> object knows which <literal>Session</literal> it was loaded in. Beginning a new database transaction on an old session obtains a new connection and resumes the session. Committing a database transaction disconnects a session from the JDBC connection and returns the connection to the pool. After reconnection, to force a version check on data you are not updating, you can call <literal>Session.lock()</literal> with <literal>LockMode.READ</literal> on any objects that might have been updated by another transaction. You do not need to lock any data that you <emphasis>are</emphasis> updating. Usually you would set <literal>FlushMode.MANUAL</literal> on an extended <literal>Session</literal>, so that only the last database transaction cycle is allowed to actually persist all modifications made in this conversation. Only this last database transaction will include the <literal>flush()</literal> operation, and then <literal>close()</literal> the se!
 ssion to end the conversation."
+msgstr "<literal>foo</literal> 对象知道它是在哪个 <literal>Session</literal> 中被装入的。在一个旧 session 中开启一个新的数据库事务,会导致 session 获取一个新的连接,并恢复 session 的功能。将数据库事务提交,使得 session 从 JDBC 连接断开,并将此连接交还给连接池。在重新连接之后,要强制对你没有更新的数据进行一次版本检查,你可以对所有可能被其他事务修改过的对象,使用参数 <literal>LockMode.READ</literal> 来调用 <literal>Session.lock()</literal>。你不用 lock 任何你<emphasis>正在</emphasis>更新的数据。一般你会在扩展的 <literal>Session</literal> 上设置 <literal>FlushMode.NEVER</literal>,因此只有最后一个数据库事务循环才会真正的把整个对话中发生的修改发送到数据库。因此,只有这最后一次数据库事务才会包含 <literal>flush()</literal> 操作,然后在整个对话结束后ï¼!
 Œè¿˜è¦ <literal>close()</literal> 这个 session。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"This pattern is problematic if the <literal>Session</literal> is too big to "
-"be stored during user think time (for example, an <literal>HttpSession</"
-"literal> should be kept as small as possible). As the <literal>Session</"
-"literal> is also the first-level cache and contains all loaded objects, we "
-"can probably use this strategy only for a few request/response cycles. Use a "
-"<literal>Session</literal> only for a single conversation as it will soon "
-"have stale data."
-msgstr ""
-"如果在用户思考的过程中,<literal>Session</literal> 因为太大了而不能保存,那么"
-"这种模式是有问题的。举例来说,一个 <literal>HttpSession</literal> 应该尽可能"
-"的小。由于  <literal>Session</literal> 是一级缓存,并且保持了所有被载入过的对"
-"象,因此我们只应该在那些少量的 request/response 情况下使用这种策略。你应该只"
-"把一个 <literal>Session</literal> 用于单个对话,因为它很快就会出现脏数据。 "
+msgid "This pattern is problematic if the <literal>Session</literal> is too big to be stored during user think time (for example, an <literal>HttpSession</literal> should be kept as small as possible). As the <literal>Session</literal> is also the first-level cache and contains all loaded objects, we can probably use this strategy only for a few request/response cycles. Use a <literal>Session</literal> only for a single conversation as it will soon have stale data."
+msgstr "如果在用户思考的过程中,<literal>Session</literal> 因为太大了而不能保存,那么这种模式是有问题的。举例来说,一个 <literal>HttpSession</literal> 应该尽可能的小。由于  <literal>Session</literal> 是一级缓存,并且保持了所有被载入过的对象,因此我们只应该在那些少量的 request/response 情况下使用这种策略。你应该只把一个 <literal>Session</literal> 用于单个对话,因为它很快就会出现脏数据。 "
 
 #. Tag: title
 #, no-c-format
@@ -1217,42 +471,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Earlier versions of Hibernate required explicit disconnection and "
-"reconnection of a <literal>Session</literal>. These methods are deprecated, "
-"as beginning and ending a transaction has the same effect."
-msgstr ""
-"注意,早期的 Hibernate 版本需要明确的对 <literal>Session</literal> 进行 "
-"disconnect 和 reconnect。这些方法现在已经过时了,打开事务和关闭事务会起到同样"
-"的效果。"
+msgid "Earlier versions of Hibernate required explicit disconnection and reconnection of a <literal>Session</literal>. These methods are deprecated, as beginning and ending a transaction has the same effect."
+msgstr "注意,早期的 Hibernate 版本需要明确的对 <literal>Session</literal> 进行 disconnect 和 reconnect。这些方法现在已经过时了,打开事务和关闭事务会起到同样的效果。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Keep the disconnected <literal>Session</literal> close to the persistence "
-"layer. Use an EJB stateful session bean to hold the <literal>Session</"
-"literal> in a three-tier environment. Do not transfer it to the web layer, "
-"or even serialize it to a separate tier, to store it in the "
-"<literal>HttpSession</literal>."
-msgstr ""
-"此外,也请注意,你应该让与数据库连接断开的 <literal>Session</literal> 对持久"
-"层保持关闭状态。换句话说,在三层环境中,使用有状态的 EJB session bean 来持 有"
-"<literal>Session</literal>, 而不要把它传递到 web 层(甚至把它序列化到一个单"
-"独的层),保存在 <literal>HttpSession</literal> 中。 "
+msgid "Keep the disconnected <literal>Session</literal> close to the persistence layer. Use an EJB stateful session bean to hold the <literal>Session</literal> in a three-tier environment. Do not transfer it to the web layer, or even serialize it to a separate tier, to store it in the <literal>HttpSession</literal>."
+msgstr "此外,也请注意,你应该让与数据库连接断开的 <literal>Session</literal> 对持久层保持关闭状态。换句话说,在三层环境中,使用有状态的 EJB session bean 来持 有<literal>Session</literal>, 而不要把它传递到 web 层(甚至把它序列化到一个单独的层),保存在 <literal>HttpSession</literal> 中。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The extended session pattern, or <emphasis>session-per-conversation</"
-"emphasis>, is more difficult to implement with automatic current session "
-"context management. You need to supply your own implementation of the "
-"<literal>CurrentSessionContext</literal> for this. See the Hibernate Wiki "
-"for examples."
-msgstr ""
-"扩展 session 模式,或者被称为<emphasis>每次对话一个session(session-per-"
-"conversation)</emphasis>,自动管理当前 session 上下文联用的时候会更困难。你"
-"需要提供你自己的 <literal>CurrentSessionContext</literal> 实现。请参阅 "
-"Hibernate Wiki 以获得示例。 "
+msgid "The extended session pattern, or <emphasis>session-per-conversation</emphasis>, is more difficult to implement with automatic current session context management. You need to supply your own implementation of the <literal>CurrentSessionContext</literal> for this. See the Hibernate Wiki for examples."
+msgstr "扩展 session 模式,或者被称为<emphasis>每次对话一个session(session-per-conversation)</emphasis>,自动管理当前 session 上下文联用的时候会更困难。你需要提供你自己的 <literal>CurrentSessionContext</literal> 实现。请参阅 Hibernate Wiki 以获得示例。 "
 
 #. Tag: title
 #, no-c-format
@@ -1261,42 +491,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Each interaction with the persistent store occurs in a new <literal>Session</"
-"literal>. However, the same persistent instances are reused for each "
-"interaction with the database. The application manipulates the state of "
-"detached instances originally loaded in another <literal>Session</literal> "
-"and then reattaches them using <literal>Session.update()</literal>, "
-"<literal>Session.saveOrUpdate()</literal>, or <literal>Session.merge()</"
-"literal>."
-msgstr ""
-"这种方式下,与持久化存储的每次交互都发生在一个新的 <literal>Session</"
-"literal> 中。然而,同一持久化对象实例可以在多次与数据库的交互中重用。应用程序"
-"操纵脱管对象实例 的状态,这个脱管对象实例最初是在另一个 <literal>Session</"
-"literal> 中载入的,然后调用 <literal>Session.update()</literal>,"
-"<literal>Session.saveOrUpdate()</literal>,或者  <literal>Session.merge()</"
-"literal> 来重新关联该对象实例。"
+msgid "Each interaction with the persistent store occurs in a new <literal>Session</literal>. However, the same persistent instances are reused for each interaction with the database. The application manipulates the state of detached instances originally loaded in another <literal>Session</literal> and then reattaches them using <literal>Session.update()</literal>, <literal>Session.saveOrUpdate()</literal>, or <literal>Session.merge()</literal>."
+msgstr "这种方式下,与持久化存储的每次交互都发生在一个新的 <literal>Session</literal> 中。然而,同一持久化对象实例可以在多次与数据库的交互中重用。应用程序操纵脱管对象实例 的状态,这个脱管对象实例最初是在另一个 <literal>Session</literal> 中载入的,然后调用 <literal>Session.update()</literal>,<literal>Session.saveOrUpdate()</literal>,或者  <literal>Session.merge()</literal> 来重新关联该对象实例。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Again, Hibernate will check instance versions during flush, throwing an "
-"exception if conflicting updates occurred."
-msgstr ""
-"Hibernate 会再一次在同步的时候检查对象实例的版本,如果发生更新冲突,就抛出异"
-"常。 "
+msgid "Again, Hibernate will check instance versions during flush, throwing an exception if conflicting updates occurred."
+msgstr "Hibernate 会再一次在同步的时候检查对象实例的版本,如果发生更新冲突,就抛出异常。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You can also call <literal>lock()</literal> instead of <literal>update()</"
-"literal>, and use <literal>LockMode.READ</literal> (performing a version "
-"check and bypassing all caches) if you are sure that the object has not been "
-"modified."
-msgstr ""
-"如果你确信对象没有被修改过,你也可以调用 <literal>lock()</literal> 来设置  "
-"<literal>LockMode.READ</literal>(绕过所有的缓存,执行版本检查),从而取代  "
-"<literal>update()</literal> 操作。 "
+msgid "You can also call <literal>lock()</literal> instead of <literal>update()</literal>, and use <literal>LockMode.READ</literal> (performing a version check and bypassing all caches) if you are sure that the object has not been modified."
+msgstr "如果你确信对象没有被修改过,你也可以调用 <literal>lock()</literal> 来设置  <literal>LockMode.READ</literal>(绕过所有的缓存,执行版本检查),从而取代  <literal>update()</literal> 操作。 "
 
 #. Tag: title
 #, no-c-format
@@ -1305,77 +511,23 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"You can disable Hibernate's automatic version increment for particular "
-"properties and collections by setting the <literal>optimistic-lock</literal> "
-"mapping attribute to <literal>false</literal>. Hibernate will then no longer "
-"increment versions if the property is dirty."
-msgstr ""
-"对于特定的属性和集合,通过为它们设置映射属性 <literal>optimistic-lock</"
-"literal> 的值为 <literal>false</literal>,来禁止 Hibernate 的版本自动增加。这"
-"样的话,如果该属性脏数据,Hibernate 将不再增加版本号。 "
+msgid "You can disable Hibernate's automatic version increment for particular properties and collections by setting the <literal>optimistic-lock</literal> mapping attribute to <literal>false</literal>. Hibernate will then no longer increment versions if the property is dirty."
+msgstr "对于特定的属性和集合,通过为它们设置映射属性 <literal>optimistic-lock</literal> 的值为 <literal>false</literal>,来禁止 Hibernate 的版本自动增加。这样的话,如果该属性脏数据,Hibernate 将不再增加版本号。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Legacy database schemas are often static and cannot be modified. Or, other "
-"applications might access the same database and will not know how to handle "
-"version numbers or even timestamps. In both cases, versioning cannot rely on "
-"a particular column in a table. To force a version check with a comparison "
-"of the state of all fields in a row but without a version or timestamp "
-"property mapping, turn on <literal>optimistic-lock=\"all\"</literal> in the "
-"<literal>&lt;class&gt;</literal> mapping. This conceptually only works if "
-"Hibernate can compare the old and the new state (i.e., if you use a single "
-"long <literal>Session</literal> and not session-per-request-with-detached-"
-"objects)."
-msgstr ""
-"遗留系统的数据库 Schema 通常是静态的,不可修改的。或者,其他应用程序也可能访"
-"问同一数据库,根本无法得知如何处理版本号,甚至时间戳。在以上的所有场景中,实"
-"现版本化不能依靠数据库表的某个特定列。在 <literal>&lt;class&gt;</literal> 的"
-"映射中设置  <literal>optimistic-lock=\"all\"</literal> 可以在没有版本或者时间"
-"戳属性映射的情况下实现版本检查,此时 Hibernate 将比较一行记录的每个字段的状"
-"态。请注意,只有当 Hibernate 能够比较新旧状态的情况下,这种方式才能生效,也就"
-"是说,你必须使用单个长生命周期 <literal>Session</literal> 模式,而不能使用 "
-"session-per-request-with-detached-objects 模式。 "
+msgid "Legacy database schemas are often static and cannot be modified. Or, other applications might access the same database and will not know how to handle version numbers or even timestamps. In both cases, versioning cannot rely on a particular column in a table. To force a version check with a comparison of the state of all fields in a row but without a version or timestamp property mapping, turn on <literal>optimistic-lock=\"all\"</literal> in the <literal>&lt;class&gt;</literal> mapping. This conceptually only works if Hibernate can compare the old and the new state (i.e., if you use a single long <literal>Session</literal> and not session-per-request-with-detached-objects)."
+msgstr "遗留系统的数据库 Schema 通常是静态的,不可修改的。或者,其他应用程序也可能访问同一数据库,根本无法得知如何处理版本号,甚至时间戳。在以上的所有场景中,实现版本化不能依靠数据库表的某个特定列。在 <literal>&lt;class&gt;</literal> 的映射中设置  <literal>optimistic-lock=\"all\"</literal> 可以在没有版本或者时间戳属性映射的情况下实现版本检查,此时 Hibernate 将比较一行记录的每个字段的状态。请注意,只有当 Hibernate 能够比较新旧状态的情况下,这种方式才能生效,也就是说,你必须使用单个长生命周期 <literal>Session</literal> 模式,而不能使用 session-per-request-with-detached-objects 模式。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Concurrent modification can be permitted in instances where the changes that "
-"have been made do not overlap. If you set <literal>optimistic-lock=\"dirty"
-"\"</literal> when mapping the <literal>&lt;class&gt;</literal>, Hibernate "
-"will only compare dirty fields during flush."
-msgstr ""
-"有些情况下,只要更改不发生交错,并发修改也是允许的。当你在 <literal>&lt;"
-"class&gt;</literal> 的映射中设置 <literal>optimistic-lock=\"dirty\"</"
-"literal>,Hibernate 在同步的时候将只比较有脏数据的字段。 "
+msgid "Concurrent modification can be permitted in instances where the changes that have been made do not overlap. If you set <literal>optimistic-lock=\"dirty\"</literal> when mapping the <literal>&lt;class&gt;</literal>, Hibernate will only compare dirty fields during flush."
+msgstr "有些情况下,只要更改不发生交错,并发修改也是允许的。当你在 <literal>&lt;class&gt;</literal> 的映射中设置 <literal>optimistic-lock=\"dirty\"</literal>,Hibernate 在同步的时候将只比较有脏数据的字段。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"In both cases, with dedicated version/timestamp columns or with a full/dirty "
-"field comparison, Hibernate uses a single <literal>UPDATE</literal> "
-"statement, with an appropriate <literal>WHERE</literal> clause, per entity "
-"to execute the version check and update the information. If you use "
-"transitive persistence to cascade reattachment to associated entities, "
-"Hibernate may execute unnecessary updates. This is usually not a problem, "
-"but <emphasis>on update</emphasis> triggers in the database might be "
-"executed even when no changes have been made to detached instances. You can "
-"customize this behavior by setting <literal>select-before-update=\"true\"</"
-"literal> in the <literal>&lt;class&gt;</literal> mapping, forcing Hibernate "
-"to <literal>SELECT</literal> the instance to ensure that changes did occur "
-"before updating the row."
-msgstr ""
-"在以上所有场景中,不管是专门设置一个版本/时间戳列,还是进行全部字段/脏数据字"
-"段比较,Hibernate 都会针对每个实体对象发送一条 <literal>UPDATE</literal>(带"
-"有相应的 <literal>WHERE</literal> 语句 )的 SQL 语句来执行版本检查和数据更"
-"新。如果你对关联实体 设置级联关系使用传播性持久化(transitive persistence),"
-"那么 Hibernate 可能会执行不必 要的update语句。这通常不是个问题,但是数据库里"
-"面对 <emphasis>on update</emphasis> 点火 的触发器可能在脱管对象没有任何更改的"
-"情况下被触发。因此,你可以在 <literal>&lt;class&gt;</literal> 的映射中,通过"
-"设置<literal>select-before-update=\"true\"</literal> 来定制这一行为,强制 "
-"Hibernate  <literal>SELECT</literal> 这个对象实例,从而保证,在更新记录之前,"
-"对象的确是被修改过。 "
+msgid "In both cases, with dedicated version/timestamp columns or with a full/dirty field comparison, Hibernate uses a single <literal>UPDATE</literal> statement, with an appropriate <literal>WHERE</literal> clause, per entity to execute the version check and update the information. If you use transitive persistence to cascade reattachment to associated entities, Hibernate may execute unnecessary updates. This is usually not a problem, but <emphasis>on update</emphasis> triggers in the database might be executed even when no changes have been made to detached instances. You can customize this behavior by setting <literal>select-before-update=\"true\"</literal> in the <literal>&lt;class&gt;</literal> mapping, forcing Hibernate to <literal>SELECT</literal> the instance to ensure that changes did occur before updating the row."
+msgstr "在以上所有场景中,不管是专门设置一个版本/时间戳列,还是进行全部字段/脏数据字段比较,Hibernate 都会针对每个实体对象发送一条 <literal>UPDATE</literal>(带有相应的 <literal>WHERE</literal> 语句 )的 SQL 语句来执行版本检查和数据更新。如果你对关联实体 设置级联关系使用传播性持久化(transitive persistence),那么 Hibernate 可能会执行不必 要的update语句。这通常不是个问题,但是数据库里面对 <emphasis>on update</emphasis> 点火 的触发器可能在脱管对象没有任何更改的情况下被触发。因此,你可以在 <literal>&lt;class&gt;</literal> 的映射中,通过设置<literal>select-before-update=\"true\"</literal> 来定制这一行为,强制 Hibernate  <literal>SELECT</literal> 这个对象实例,从而保证,在更新记录之前,对象的确是被修改过。 "
 
 #. Tag: title
 #, no-c-format
@@ -1384,103 +536,53 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"It is not intended that users spend much time worrying about locking "
-"strategies. It is usually enough to specify an isolation level for the JDBC "
-"connections and then simply let the database do all the work. However, "
-"advanced users may wish to obtain exclusive pessimistic locks or re-obtain "
-"locks at the start of a new transaction."
-msgstr ""
-"用户其实并不需要花很多精力去担心锁定策略的问题。通常情况下,只要为 JDBC 连接"
-"指定一下隔离级别,然后让数据库去搞定一切就够了。然而,高级用户有时候希望进行"
-"一个排它的悲观锁定,或者在一个新的事务启动的时候,重新进行锁定。 "
+msgid "It is not intended that users spend much time worrying about locking strategies. It is usually enough to specify an isolation level for the JDBC connections and then simply let the database do all the work. However, advanced users may wish to obtain exclusive pessimistic locks or re-obtain locks at the start of a new transaction."
+msgstr "用户其实并不需要花很多精力去担心锁定策略的问题。通常情况下,只要为 JDBC 连接指定一下隔离级别,然后让数据库去搞定一切就够了。然而,高级用户有时候希望进行一个排它的悲观锁定,或者在一个新的事务启动的时候,重新进行锁定。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"Hibernate will always use the locking mechanism of the database; it never "
-"lock objects in memory."
+msgid "Hibernate will always use the locking mechanism of the database; it never lock objects in memory."
 msgstr "Hibernate 总是使用数据库的锁定机制,从不在内存中锁定对象。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The <literal>LockMode</literal> class defines the different lock levels that "
-"can be acquired by Hibernate. A lock is obtained by the following mechanisms:"
-msgstr ""
-"类 <literal>LockMode</literal> 定义了 Hibernate 所需的不同的锁定级别。一个锁"
-"定可以通过以下的机制来设置:"
+msgid "The <literal>LockMode</literal> class defines the different lock levels that can be acquired by Hibernate. A lock is obtained by the following mechanisms:"
+msgstr "类 <literal>LockMode</literal> 定义了 Hibernate 所需的不同的锁定级别。一个锁定可以通过以下的机制来设置:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate "
-"updates or inserts a row."
-msgstr ""
-"当 Hibernate 更新或者插入一行记录的时候,锁定级别自动设置为 "
-"<literal>LockMode.WRITE</literal>。"
+msgid "<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate updates or inserts a row."
+msgstr "当 Hibernate 更新或者插入一行记录的时候,锁定级别自动设置为 <literal>LockMode.WRITE</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>LockMode.UPGRADE</literal> can be acquired upon explicit user "
-"request using <literal>SELECT ... FOR UPDATE</literal> on databases which "
-"support that syntax."
-msgstr ""
-"当用户显式的使用数据库支持的 SQL 格式 <literal>SELECT ... FOR UPDATE</"
-"literal> 发送 SQL 的时候,锁定级别设置为 <literal>LockMode.UPGRADE</"
-"literal>。 "
+msgid "<literal>LockMode.UPGRADE</literal> can be acquired upon explicit user request using <literal>SELECT ... FOR UPDATE</literal> on databases which support that syntax."
+msgstr "当用户显式的使用数据库支持的 SQL 格式 <literal>SELECT ... FOR UPDATE</literal> 发送 SQL 的时候,锁定级别设置为 <literal>LockMode.UPGRADE</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>LockMode.UPGRADE_NOWAIT</literal> can be acquired upon explicit "
-"user request using a <literal>SELECT ... FOR UPDATE NOWAIT</literal> under "
-"Oracle."
-msgstr ""
-"当用户显式的使用 Oracle 数据库的 SQL 语句 <literal>SELECT ... FOR UPDATE "
-"NOWAIT</literal> 的时候,锁定级别设置 <literal>LockMode.UPGRADE_NOWAIT</"
-"literal>。 "
+msgid "<literal>LockMode.UPGRADE_NOWAIT</literal> can be acquired upon explicit user request using a <literal>SELECT ... FOR UPDATE NOWAIT</literal> under Oracle."
+msgstr "当用户显式的使用 Oracle 数据库的 SQL 语句 <literal>SELECT ... FOR UPDATE NOWAIT</literal> 的时候,锁定级别设置 <literal>LockMode.UPGRADE_NOWAIT</literal>。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>LockMode.READ</literal> is acquired automatically when Hibernate "
-"reads data under Repeatable Read or Serializable isolation level. It can be "
-"re-acquired by explicit user request."
-msgstr ""
-"当 Hibernate 在“可重复读”或者是“序列化”数据库隔离级别下读取数据的时候,锁定模"
-"式自动设置为 <literal>LockMode.READ</literal>。这种模式也可以通过用户显式指定"
-"进行设置。 "
+msgid "<literal>LockMode.READ</literal> is acquired automatically when Hibernate reads data under Repeatable Read or Serializable isolation level. It can be re-acquired by explicit user request."
+msgstr "当 Hibernate 在“可重复读”或者是“序列化”数据库隔离级别下读取数据的时候,锁定模式自动设置为 <literal>LockMode.READ</literal>。这种模式也可以通过用户显式指定进行设置。 "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>LockMode.NONE</literal> represents the absence of a lock. All "
-"objects switch to this lock mode at the end of a <literal>Transaction</"
-"literal>. Objects associated with the session via a call to <literal>update()"
-"</literal> or <literal>saveOrUpdate()</literal> also start out in this lock "
-"mode."
-msgstr ""
-"<literal>LockMode.NONE</literal> 代表无需锁定。在 <literal>Transaction</"
-"literal> 结束时, 所有的对象都切换到该模式上来。与 session 相关联的对象通过调"
-"用 <literal>update()</literal> 或者 <literal>saveOrUpdate()</literal> 脱离该"
-"模式。"
+msgid "<literal>LockMode.NONE</literal> represents the absence of a lock. All objects switch to this lock mode at the end of a <literal>Transaction</literal>. Objects associated with the session via a call to <literal>update()</literal> or <literal>saveOrUpdate()</literal> also start out in this lock mode."
+msgstr "<literal>LockMode.NONE</literal> 代表无需锁定。在 <literal>Transaction</literal> 结束时, 所有的对象都切换到该模式上来。与 session 相关联的对象通过调用 <literal>update()</literal> 或者 <literal>saveOrUpdate()</literal> 脱离该模式。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The \"explicit user request\" is expressed in one of the following ways:"
+msgid "The \"explicit user request\" is expressed in one of the following ways:"
 msgstr "\"显式的用户指定\"可以通过以下几种方式之一来表示:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"A call to <literal>Session.load()</literal>, specifying a <literal>LockMode</"
-"literal>."
-msgstr ""
-"调用 <literal>Session.load()</literal> 的时候指定<literal>锁定模式"
-"(LockMode)</literal>。"
+msgid "A call to <literal>Session.load()</literal>, specifying a <literal>LockMode</literal>."
+msgstr "调用 <literal>Session.load()</literal> 的时候指定<literal>锁定模式(LockMode)</literal>。"
 
 #. Tag: para
 #, no-c-format
@@ -1494,46 +596,18 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If <literal>Session.load()</literal> is called with <literal>UPGRADE</"
-"literal> or <literal>UPGRADE_NOWAIT</literal>, and the requested object was "
-"not yet loaded by the session, the object is loaded using "
-"<literal>SELECT ... FOR UPDATE</literal>. If <literal>load()</literal> is "
-"called for an object that is already loaded with a less restrictive lock "
-"than the one requested, Hibernate calls <literal>lock()</literal> for that "
-"object."
-msgstr ""
-"如果在 <literal>UPGRADE</literal> 或者 <literal>UPGRADE_NOWAIT</literal> 锁定"
-"模式下调用 <literal>Session.load()</literal>,并且要读取的对象尚未被 session "
-"载入过,那么对象通过 <literal>SELECT ... FOR UPDATE</literal> 这样的 SQL 语句"
-"被载入。如果为一个对象调用  <literal>load()</literal> 方法时,该对象已经在另"
-"一个较少限制的锁定模式下被载入了,那么  Hibernate 就对该对象调用 "
-"<literal>lock()</literal> 方法。"
+msgid "If <literal>Session.load()</literal> is called with <literal>UPGRADE</literal> or <literal>UPGRADE_NOWAIT</literal>, and the requested object was not yet loaded by the session, the object is loaded using <literal>SELECT ... FOR UPDATE</literal>. If <literal>load()</literal> is called for an object that is already loaded with a less restrictive lock than the one requested, Hibernate calls <literal>lock()</literal> for that object."
+msgstr "如果在 <literal>UPGRADE</literal> 或者 <literal>UPGRADE_NOWAIT</literal> 锁定模式下调用 <literal>Session.load()</literal>,并且要读取的对象尚未被 session 载入过,那么对象通过 <literal>SELECT ... FOR UPDATE</literal> 这样的 SQL 语句被载入。如果为一个对象调用  <literal>load()</literal> 方法时,该对象已经在另一个较少限制的锁定模式下被载入了,那么  Hibernate 就对该对象调用 <literal>lock()</literal> 方法。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>Session.lock()</literal> performs a version number check if the "
-"specified lock mode is <literal>READ</literal>, <literal>UPGRADE</literal> "
-"or <literal>UPGRADE_NOWAIT</literal>. In the case of <literal>UPGRADE</"
-"literal> or <literal>UPGRADE_NOWAIT</literal>, <literal>SELECT ... FOR "
-"UPDATE</literal> is used."
-msgstr ""
-"如果指定的锁定模式是 <literal>READ</literal>,<literal>UPGRADE</literal> 或  "
-"<literal>UPGRADE_NOWAIT</literal>,那么 <literal>Session.lock()</literal> 就"
-"执行版本号检查。(在 <literal>UPGRADE</literal> 或者 "
-"<literal>UPGRADE_NOWAIT</literal> 锁定模式下,执行 <literal>SELECT ... FOR "
-"UPDATE</literal>这样的SQL语句。)"
+msgid "<literal>Session.lock()</literal> performs a version number check if the specified lock mode is <literal>READ</literal>, <literal>UPGRADE</literal> or <literal>UPGRADE_NOWAIT</literal>. In the case of <literal>UPGRADE</literal> or <literal>UPGRADE_NOWAIT</literal>, <literal>SELECT ... FOR UPDATE</literal> is used."
+msgstr "如果指定的锁定模式是 <literal>READ</literal>,<literal>UPGRADE</literal> 或  <literal>UPGRADE_NOWAIT</literal>,那么 <literal>Session.lock()</literal> 就执行版本号检查。(在 <literal>UPGRADE</literal> 或者 <literal>UPGRADE_NOWAIT</literal> 锁定模式下,执行 <literal>SELECT ... FOR UPDATE</literal>这样的SQL语句。)"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"If the requested lock mode is not supported by the database, Hibernate uses "
-"an appropriate alternate mode instead of throwing an exception. This ensures "
-"that applications are portable."
-msgstr ""
-"如果数据库不支持用户设置的锁定模式,Hibernate 将使用适当的替代模式(而不是扔"
-"出异常)。这一点可以确保应用程序的可移植性。 "
+msgid "If the requested lock mode is not supported by the database, Hibernate uses an appropriate alternate mode instead of throwing an exception. This ensures that applications are portable."
+msgstr "如果数据库不支持用户设置的锁定模式,Hibernate 将使用适当的替代模式(而不是扔出异常)。这一点可以确保应用程序的可移植性。 "
 
 #. Tag: title
 #, no-c-format
@@ -1542,133 +616,51 @@
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"One of the legacies of Hibernate 2.x JDBC connection management meant that a "
-"<literal>Session</literal> would obtain a connection when it was first "
-"required and then maintain that connection until the session was closed. "
-"Hibernate 3.x introduced the notion of connection release modes that would "
-"instruct a session how to handle its JDBC connections. The following "
-"discussion is pertinent only to connections provided through a configured "
-"<literal>ConnectionProvider</literal>. User-supplied connections are outside "
-"the breadth of this discussion. The different release modes are identified "
-"by the enumerated values of <literal>org.hibernate.ConnectionReleaseMode</"
-"literal>:"
-msgstr ""
-"Hibernate 关于 JDBC 连接管理的旧(2.x)行为是,<literal>Session</literal> 在"
-"第一次需要的时候获取一个连接,在 session 关闭之前一直会持有这个连接。"
-"Hibernate 引入了连接释放的概念,来告诉 session 如何处理它的 JDBC 连接。注意,"
-"下面的讨论只适用于采用配置 <literal>ConnectionProvider</literal> 来提供连接的"
-"情况,用户自己提供的连接与这里的讨论无关。通过 <literal>org.hibernate."
-"ConnectionReleaseMode</literal> 的不同枚举值来使用不用的释放模式:"
+msgid "One of the legacies of Hibernate 2.x JDBC connection management meant that a <literal>Session</literal> would obtain a connection when it was first required and then maintain that connection until the session was closed. Hibernate 3.x introduced the notion of connection release modes that would instruct a session how to handle its JDBC connections. The following discussion is pertinent only to connections provided through a configured <literal>ConnectionProvider</literal>. User-supplied connections are outside the breadth of this discussion. The different release modes are identified by the enumerated values of <literal>org.hibernate.ConnectionReleaseMode</literal>:"
+msgstr "Hibernate 关于 JDBC 连接管理的旧(2.x)行为是,<literal>Session</literal> 在第一次需要的时候获取一个连接,在 session 关闭之前一直会持有这个连接。Hibernate 引入了连接释放的概念,来告诉 session 如何处理它的 JDBC 连接。注意,下面的讨论只适用于采用配置 <literal>ConnectionProvider</literal> 来提供连接的情况,用户自己提供的连接与这里的讨论无关。通过 <literal>org.hibernate.ConnectionReleaseMode</literal> 的不同枚举值来使用不用的释放模式:"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>ON_CLOSE</literal>: is the legacy behavior described above. The "
-"Hibernate session obtains a connection when it first needs to perform some "
-"JDBC access and maintains that connection until the session is closed."
-msgstr ""
-"<literal>ON_CLOSE</literal>:基本上就是上面提到的老式行为。Hibernate session "
-"在第一次需要进行 JDBC 操作的时候获取连接,然后持有它,直到 session 关闭。"
+msgid "<literal>ON_CLOSE</literal>: is the legacy behavior described above. The Hibernate session obtains a connection when it first needs to perform some JDBC access and maintains that connection until the session is closed."
+msgstr "<literal>ON_CLOSE</literal>:基本上就是上面提到的老式行为。Hibernate session 在第一次需要进行 JDBC 操作的时候获取连接,然后持有它,直到 session 关闭。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>AFTER_TRANSACTION</literal>: releases connections after a "
-"<literal>org.hibernate.Transaction</literal> has been completed."
-msgstr ""
-"<literal>AFTER_TRANSACTION</literal>:在 <literal>org.hibernate.Transaction</"
-"literal> 结束后释放连接。"
+msgid "<literal>AFTER_TRANSACTION</literal>: releases connections after a <literal>org.hibernate.Transaction</literal> has been completed."
+msgstr "<literal>AFTER_TRANSACTION</literal>:在 <literal>org.hibernate.Transaction</literal> 结束后释放连接。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>AFTER_STATEMENT</literal> (also referred to as aggressive release): "
-"releases connections after every statement execution. This aggressive "
-"releasing is skipped if that statement leaves open resources associated with "
-"the given session. Currently the only situation where this occurs is through "
-"the use of <literal>org.hibernate.ScrollableResults</literal>."
-msgstr ""
-"<literal>AFTER_STATEMENT</literal>(也被称做积极释放):在每一条语句被执行后"
-"就释放连接。但假若语句留下了与 session 相关的资源,那就不会被释放。目前唯一的"
-"这种情形就是使用 <literal>org.hibernate.ScrollableResults</literal>。"
+msgid "<literal>AFTER_STATEMENT</literal> (also referred to as aggressive release): releases connections after every statement execution. This aggressive releasing is skipped if that statement leaves open resources associated with the given session. Currently the only situation where this occurs is through the use of <literal>org.hibernate.ScrollableResults</literal>."
+msgstr "<literal>AFTER_STATEMENT</literal>(也被称做积极释放):在每一条语句被执行后就释放连接。但假若语句留下了与 session 相关的资源,那就不会被释放。目前唯一的这种情形就是使用 <literal>org.hibernate.ScrollableResults</literal>。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"The configuration parameter <literal>hibernate.connection.release_mode</"
-"literal> is used to specify which release mode to use. The possible values "
-"are as follows:"
-msgstr ""
-"<literal>hibernate.connection.release_mode</literal> 配置参数用来指定使用哪一"
-"种释放模式。可能的值有: "
+msgid "The configuration parameter <literal>hibernate.connection.release_mode</literal> is used to specify which release mode to use. The possible values are as follows:"
+msgstr "<literal>hibernate.connection.release_mode</literal> 配置参数用来指定使用哪一种释放模式。可能的值有: "
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>auto</literal> (the default): this choice delegates to the release "
-"mode returned by the <literal>org.hibernate.transaction.TransactionFactory."
-"getDefaultReleaseMode()</literal> method. For JTATransactionFactory, this "
-"returns ConnectionReleaseMode.AFTER_STATEMENT; for JDBCTransactionFactory, "
-"this returns ConnectionReleaseMode.AFTER_TRANSACTION. Do not change this "
-"default behavior as failures due to the value of this setting tend to "
-"indicate bugs and/or invalid assumptions in user code."
-msgstr ""
-"<literal>auto</literal>(默认):这一选择把释放模式委派给 <literal>org."
-"hibernate.transaction.TransactionFactory.getDefaultReleaseMode()</literal> æ–¹"
-"法。对 JTATransactionFactory 来说,它会返回 ConnectionReleaseMode."
-"AFTER_STATEMENT;对 JDBCTransactionFactory 来说,则是ConnectionReleaseMode."
-"AFTER_TRANSACTION。很少需要修改这一默认行为,因为假若设置不当,就会带来 bug,"
-"或者给用户代码带来误导。"
+msgid "<literal>auto</literal> (the default): this choice delegates to the release mode returned by the <literal>org.hibernate.transaction.TransactionFactory.getDefaultReleaseMode()</literal> method. For JTATransactionFactory, this returns ConnectionReleaseMode.AFTER_STATEMENT; for JDBCTransactionFactory, this returns ConnectionReleaseMode.AFTER_TRANSACTION. Do not change this default behavior as failures due to the value of this setting tend to indicate bugs and/or invalid assumptions in user code."
+msgstr "<literal>auto</literal>(默认):这一选择把释放模式委派给 <literal>org.hibernate.transaction.TransactionFactory.getDefaultReleaseMode()</literal> 方法。对 JTATransactionFactory 来说,它会返回 ConnectionReleaseMode.AFTER_STATEMENT;对 JDBCTransactionFactory 来说,则是ConnectionReleaseMode.AFTER_TRANSACTION。很少需要修改这一默认行为,因为假若设置不当,就会带来 bug,或者给用户代码带来误导。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>on_close</literal>: uses ConnectionReleaseMode.ON_CLOSE. This "
-"setting is left for backwards compatibility, but its use is discouraged."
-msgstr ""
-"<literal>on_close</literal>:使用 ConnectionReleaseMode.ON_CLOSE。这种方式是"
-"为了向下兼容的,但是已经完全不被鼓励使用了。"
+msgid "<literal>on_close</literal>: uses ConnectionReleaseMode.ON_CLOSE. This setting is left for backwards compatibility, but its use is discouraged."
+msgstr "<literal>on_close</literal>:使用 ConnectionReleaseMode.ON_CLOSE。这种方式是为了向下兼容的,但是已经完全不被鼓励使用了。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>after_transaction</literal>: uses ConnectionReleaseMode."
-"AFTER_TRANSACTION. This setting should not be used in JTA environments. Also "
-"note that with ConnectionReleaseMode.AFTER_TRANSACTION, if a session is "
-"considered to be in auto-commit mode, connections will be released as if the "
-"release mode were AFTER_STATEMENT."
-msgstr ""
-"<literal>after_transaction</literal>:使用 ConnectionReleaseMode."
-"AFTER_TRANSACTION。这一设置不应该在 JTA 环境下使用。也要注意,使用 "
-"ConnectionReleaseMode.AFTER_TRANSACTION 的时候,假若session 处于 auto-commit "
-"状态,连接会像 AFTER_STATEMENT 那样被释放。"
+msgid "<literal>after_transaction</literal>: uses ConnectionReleaseMode.AFTER_TRANSACTION. This setting should not be used in JTA environments. Also note that with ConnectionReleaseMode.AFTER_TRANSACTION, if a session is considered to be in auto-commit mode, connections will be released as if the release mode were AFTER_STATEMENT."
+msgstr "<literal>after_transaction</literal>:使用 ConnectionReleaseMode.AFTER_TRANSACTION。这一设置不应该在 JTA 环境下使用。也要注意,使用 ConnectionReleaseMode.AFTER_TRANSACTION 的时候,假若session 处于 auto-commit 状态,连接会像 AFTER_STATEMENT 那样被释放。"
 
 #. Tag: para
 #, no-c-format
-msgid ""
-"<literal>after_statement</literal>: uses ConnectionReleaseMode."
-"AFTER_STATEMENT. Additionally, the configured <literal>ConnectionProvider</"
-"literal> is consulted to see if it supports this setting "
-"(<literal>supportsAggressiveRelease()</literal>). If not, the release mode "
-"is reset to ConnectionReleaseMode.AFTER_TRANSACTION. This setting is only "
-"safe in environments where we can either re-acquire the same underlying JDBC "
-"connection each time you make a call into <literal>ConnectionProvider."
-"getConnection()</literal> or in auto-commit environments where it does not "
-"matter if we re-establish the same connection."
-msgstr ""
-"<literal>after_statement</literal>:使用 ConnectionReleaseMode."
-"AFTER_STATEMENT。除此之外,会查询配置的 <literal>ConnectionProvider</"
-"literal>,是否它支持这一设置(<literal>supportsAggressiveRelease()</"
-"literal>)。假若不支持,释放模式会被设置为  ConnectionReleaseMode."
-"AFTER_TRANSACTION。只有在你每次调用  <literal>ConnectionProvider."
-"getConnection()</literal> 获取底层 JDBC 连接的时候,都可以确信获得同一个连接"
-"的时候,这一设置才是安全的;或者在 auto-commit 环境中,你可以不管是否每次都获"
-"得同一个连接的时候,这才是安全的。"
+msgid "<literal>after_statement</literal>: uses ConnectionReleaseMode.AFTER_STATEMENT. Additionally, the configured <literal>ConnectionProvider</literal> is consulted to see if it supports this setting (<literal>supportsAggressiveRelease()</literal>). If not, the release mode is reset to ConnectionReleaseMode.AFTER_TRANSACTION. This setting is only safe in environments where we can either re-acquire the same underlying JDBC connection each time you make a call into <literal>ConnectionProvider.getConnection()</literal> or in auto-commit environments where it does not matter if we re-establish the same connection."
+msgstr "<literal>after_statement</literal>:使用 ConnectionReleaseMode.AFTER_STATEMENT。除此之外,会查询配置的 <literal>ConnectionProvider</literal>,是否它支持这一设置(<literal>supportsAggressiveRelease()</literal>)。假若不支持,释放模式会被设置为  ConnectionReleaseMode.AFTER_TRANSACTION。只有在你每次调用  <literal>ConnectionProvider.getConnection()</literal> 获取底层 JDBC 连接的时候,都可以确信获得同一个连接的时候,这一设置才是安全的;或者在 auto-commit 环境中,你可以不管是否每次都获得同一个连接的时候,这才是安全的。"
 
 #~ msgid "foo==bar"
 #~ msgstr "foo==bar"
-
 #~ msgid ""
 #~ "<![CDATA[// Non-managed environment idiom\n"
 #~ "Session sess = factory.openSession();\n"
@@ -1707,7 +699,6 @@
 #~ "finally {\n"
 #~ "    sess.close();\n"
 #~ "}]]>"
-
 #~ msgid ""
 #~ "<![CDATA[// Non-managed environment idiom with getCurrentSession()\n"
 #~ "try {\n"
@@ -1736,7 +727,6 @@
 #~ "    factory.getCurrentSession().getTransaction().rollback();\n"
 #~ "    throw e; // or display error message\n"
 #~ "}]]>"
-
 #~ msgid ""
 #~ "<![CDATA[// BMT idiom\n"
 #~ "Session sess = factory.openSession();\n"
@@ -1775,7 +765,6 @@
 #~ "finally {\n"
 #~ "    sess.close();\n"
 #~ "}]]>"
-
 #~ msgid ""
 #~ "<![CDATA[// BMT idiom with getCurrentSession()\n"
 #~ "try {\n"
@@ -1812,7 +801,6 @@
 #~ "    tx.rollback();\n"
 #~ "    throw e; // or display error message\n"
 #~ "}]]>"
-
 #~ msgid ""
 #~ "<![CDATA[// CMT idiom\n"
 #~ " Session sess = factory.getCurrentSession();\n"
@@ -1827,7 +815,6 @@
 #~ " // do some work\n"
 #~ " ...\n"
 #~ "]]>"
-
 #~ msgid ""
 #~ "<![CDATA[\n"
 #~ "Session sess = factory.openSession();\n"
@@ -1868,7 +855,6 @@
 #~ "finally {\n"
 #~ "    sess.close();\n"
 #~ "}]]>"
-
 #~ msgid ""
 #~ "<![CDATA[// foo is an instance loaded by a previous Session\n"
 #~ "session = factory.openSession();\n"
@@ -1895,7 +881,6 @@
 #~ "\n"
 #~ "t.commit();\n"
 #~ "session.close();]]>"
-
 #~ msgid ""
 #~ "<![CDATA[// foo is an instance loaded earlier by the old session\n"
 #~ "Transaction t = session.beginTransaction(); // Obtain a new JDBC "
@@ -1916,7 +901,6 @@
 #~ "session.flush();    // Only for last transaction in conversation\n"
 #~ "t.commit();         // Also return JDBC connection\n"
 #~ "session.close();    // Only for last transaction in conversation]]>"
-
 #~ msgid ""
 #~ "<![CDATA[// foo is an instance loaded by a previous Session\n"
 #~ "foo.setProperty(\"bar\");\n"
@@ -1935,3 +919,4 @@
 #~ "loaded already\n"
 #~ "t.commit();\n"
 #~ "session.close();]]>"
+

Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/tutorial.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/tutorial.po	2009-12-10 21:31:45 UTC (rev 97707)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Core/zh-CN/tutorial.po	2009-12-11 00:50:05 UTC (rev 97708)
@@ -7,7 +7,7 @@
 "Project-Id-Version: tutorial\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2009-12-03T00:15:27\n"
-"PO-Revision-Date: 2009-12-07 21:51+1000\n"
+"PO-Revision-Date: 2009-12-11 10:12+1000\n"
 "Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
 "Language-Team:  <en at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -328,7 +328,7 @@
 #. Tag: para
 #, no-c-format
 msgid "Hibernate offers three methods of current session tracking. The \"thread\" based method is not intended for production use; it is merely useful for prototyping and tutorials such as this one. Current session tracking is discussed in more detail later on."
-msgstr ""
+msgstr "Hibernate 提供三种跟踪当前会话的方法。基于“线程”的方法不适合于产品环境,它仅用于 prototyping 和教学用途。后面将更详细地讨论会话跟踪。"
 
 #. Tag: para
 #, no-c-format
@@ -348,12 +348,12 @@
 #. Tag: para
 #, no-c-format
 msgid "To run this, we will make use of the Maven exec plugin to call our class with the necessary classpath setup: <command>mvn exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"store\"</command>"
-msgstr ""
+msgstr "要运行它,我们将使用 Maven exec 插件以及必要的 classpath 设置来进行调用:<command>mvn exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"store\"</command>。"
 
 #. Tag: para
 #, no-c-format
 msgid "You may need to perform <command>mvn compile</command> first."
-msgstr ""
+msgstr "你可能需要先执行 <command>mvn compile</command>。"
 
 #. Tag: para
 #, no-c-format
@@ -383,7 +383,7 @@
 #. Tag: para
 #, no-c-format
 msgid "Now we can call our new functionality, again using the Maven exec plugin: <command>mvn exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"list\"</command>"
-msgstr ""
+msgstr "现在我们可以再次用 Maven exec plugin - <command>mvn exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"list\"</command> 调用新的功能了。"
 
 #. Tag: title
 #, no-c-format
@@ -408,12 +408,12 @@
 #. Tag: para
 #, no-c-format
 msgid "Save this to a file named <filename>src/main/java/org/hibernate/tutorial/domain/Person.java</filename>"
-msgstr ""
+msgstr "把它保存为文件 <filename>src/main/java/org/hibernate/tutorial/domain/Person.java</filename>。"
 
 #. Tag: para
 #, no-c-format
 msgid "Next, create the new mapping file as <filename>src/main/resources/org/hibernate/tutorial/domain/Person.hbm.xml</filename>"
-msgstr ""
+msgstr "然后,创建新的映射文件 <filename>src/main/resources/org/hibernate/tutorial/domain/Person.hbm.xml</filename>。"
 
 #. Tag: para
 #, no-c-format
@@ -498,7 +498,7 @@
 #. Tag: para
 #, no-c-format
 msgid "Let's add a collection of email addresses to the <literal>Person</literal> entity. This will be represented as a <interfacename>java.util.Set</interfacename> of <classname>java.lang.String</classname> instances:"
-msgstr ""
+msgstr "让我们在 <literal>Person</literal> 实体里添加一个电子邮件的集合。这将以 <classname>java.lang.String</classname> 实例的 <interfacename>java.util.Set</interfacename> 出现:"
 
 #. Tag: para
 #, no-c-format
@@ -543,7 +543,7 @@
 #. Tag: para
 #, no-c-format
 msgid "A relational database is more flexible than a network programming language, in that it does not need a navigation direction; data can be viewed and retrieved in any possible way."
-msgstr ""
+msgstr "关系型数据库比网络编程语言更为灵活,因为它不需要方向导航,其数据可以用任何可能的方式进行查看和提取。"
 
 #. Tag: para
 #, no-c-format
@@ -613,7 +613,7 @@
 #. Tag: para
 #, no-c-format
 msgid "Save this servlet as <filename>src/main/java/org/hibernate/tutorial/web/EventManagerServlet.java</filename>"
-msgstr ""
+msgstr "把这个 servlet 保存为 <filename>src/main/java/org/hibernate/tutorial/web/EventManagerServlet.java</filename>。"
 
 #. Tag: para
 #, no-c-format
@@ -673,7 +673,7 @@
 #. Tag: para
 #, no-c-format
 msgid "To deploy this application for testing we must create a Web ARchive (WAR). First we must define the WAR descriptor as <filename>src/main/webapp/WEB-INF/web.xml</filename>"
-msgstr ""
+msgstr "要部署这个应用程序以进行测试,我们必须出具一个 Web ARchive (WAR)。首先我们必须定义 WAR 描述符为 <filename>src/main/webapp/WEB-INF/web.xml</filename>。"
 
 #. Tag: para
 #, no-c-format
@@ -683,7 +683,7 @@
 #. Tag: para
 #, no-c-format
 msgid "If you do not have Tomcat installed, download it from <ulink url=\"http://tomcat.apache.org/\" /> and follow the installation instructions. Our application requires no changes to the standard Tomcat configuration."
-msgstr ""
+msgstr "如果你还没有安装 Tomcat,请从 <ulink url=\"http://tomcat.apache.org/\" /> 下载并按照安装说明进行安装。我们的应用程序不需要对标准的 Tomcat 配置进行修改。"
 
 #. Tag: para
 #, no-c-format




More information about the jboss-cvs-commits mailing list