[hibernate-commits] Hibernate SVN: r20164 - in validator/trunk/hibernate-validator/src/main/docbook/zh-CN: modules and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Aug 18 13:54:29 EDT 2010


Author: stliu
Date: 2010-08-18 13:54:28 -0400 (Wed, 18 Aug 2010)
New Revision: 20164

Modified:
   validator/trunk/hibernate-validator/src/main/docbook/zh-CN/master.po
   validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/annotationprocessor.po
   validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/furtherreading.po
   validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/integration.po
   validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/usingvalidator.po
Log:
HV-351 translations

Modified: validator/trunk/hibernate-validator/src/main/docbook/zh-CN/master.po
===================================================================
--- validator/trunk/hibernate-validator/src/main/docbook/zh-CN/master.po	2010-08-18 17:27:40 UTC (rev 20163)
+++ validator/trunk/hibernate-validator/src/main/docbook/zh-CN/master.po	2010-08-18 17:54:28 UTC (rev 20164)
@@ -6,8 +6,8 @@
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2010-07-06 14:46+0000\n"
-"PO-Revision-Date: 2010-07-06 14:46+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2010-08-14 14:38+0830\n"
+"Last-Translator: Strong Liu <stliu at hibernate.org>\n"
 "Language-Team: none\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -17,34 +17,35 @@
 #: master.xml:26
 #, no-c-format
 msgid "Hibernate Validator"
-msgstr ""
+msgstr "Hibernate Validator"
 
 #. Tag: subtitle
 #: master.xml:27
 #, no-c-format
 msgid "JSR 303 Reference Implementation"
-msgstr ""
+msgstr "JSR 303 的参考实现"
 
 #. Tag: subtitle
 #: master.xml:28
 #, no-c-format
 msgid "Reference Guide"
-msgstr ""
+msgstr "使用指南"
 
 #. Tag: holder
 #: master.xml:34
 #, no-c-format
 msgid "&copyrightHolder;"
-msgstr ""
+msgstr "&copyrightHolder;"
 
 #. Tag: author
 #: master.xml:37
 #, no-c-format
 msgid "<firstname>Hardy</firstname> <surname>Ferentschik</surname>"
-msgstr ""
+msgstr "<firstname>Hardy</firstname> <surname>Ferentschik</surname>"
 
 #. Tag: author
 #: master.xml:41
 #, no-c-format
 msgid "<firstname>Gunnar</firstname> <surname>Morling</surname>"
-msgstr ""
+msgstr "<firstname>Gunnar</firstname> <surname>Morling</surname>"
+

Modified: validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/annotationprocessor.po
===================================================================
--- validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/annotationprocessor.po	2010-08-18 17:27:40 UTC (rev 20163)
+++ validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/annotationprocessor.po	2010-08-18 17:54:28 UTC (rev 20164)
@@ -6,8 +6,8 @@
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2010-07-06 14:46+0000\n"
-"PO-Revision-Date: 2010-07-06 14:46+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2010-08-14 14:42+0830\n"
+"Last-Translator: Strong Liu <stliu at hibernate.org>\n"
 "Language-Team: none\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -28,49 +28,31 @@
 #. Tag: para
 #: annotationprocessor.xml:32
 #, no-c-format
-msgid ""
-"annotating Strings with @Min to specify a minimum length (instead of using "
-"@Size)"
+msgid "annotating Strings with @Min to specify a minimum length (instead of using @Size)"
 msgstr ""
 
 #. Tag: para
 #: annotationprocessor.xml:37
 #, no-c-format
-msgid ""
-"annotating the setter of a JavaBean property (instead of the getter method)"
+msgid "annotating the setter of a JavaBean property (instead of the getter method)"
 msgstr ""
 
 #. Tag: para
 #: annotationprocessor.xml:42
 #, no-c-format
-msgid ""
-"annotating static fields/methods with constraint annotations (which is not "
-"supported)?"
+msgid "annotating static fields/methods with constraint annotations (which is not supported)?"
 msgstr ""
 
 #. Tag: para
 #: annotationprocessor.xml:47
 #, no-c-format
-msgid ""
-"Then the Hibernate Validator Annotation Processor is the right thing for "
-"you. It helps preventing such mistakes by plugging into the build process "
-"and raising compilation errors whenever constraint annotations are "
-"incorrectly used."
+msgid "Then the Hibernate Validator Annotation Processor is the right thing for you. It helps preventing such mistakes by plugging into the build process and raising compilation errors whenever constraint annotations are incorrectly used."
 msgstr ""
 
 #. Tag: para
 #: annotationprocessor.xml:53
 #, no-c-format
-msgid ""
-"A first version of the Hibernate Validator Annotation Processor is part of "
-"Hibernate Validator since release 4.1. It is currently still under "
-"development and should therefore be considered as an experimental feature. "
-"Some <link linkend=\"section-known-issues\">known issues</link> can be found "
-"at the end of this chapter. In case any problems arise when using the "
-"processor feel free to ask for help at the <ulink url=\"https://forum."
-"hibernate.org/viewforum.php?f=9\">forum</ulink> or create an issue "
-"within<ulink url=\"http://opensource.atlassian.com/projects/hibernate/browse/"
-"HV/component/10356\"> JIRA</ulink>."
+msgid "A first version of the Hibernate Validator Annotation Processor is part of Hibernate Validator since release 4.1. It is currently still under development and should therefore be considered as an experimental feature. Some <link linkend=\"section-known-issues\">known issues</link> can be found at the end of this chapter. In case any problems arise when using the processor feel free to ask for help at the <ulink url=\"https://forum.hibernate.org/viewforum.php?f=9\">forum</ulink> or create an issue within<ulink url=\"http://opensource.atlassian.com/projects/hibernate/browse/HV/component/10356\"> JIRA</ulink>."
 msgstr ""
 
 #. Tag: title
@@ -82,11 +64,7 @@
 #. Tag: para
 #: annotationprocessor.xml:68
 #, no-c-format
-msgid ""
-"The Hibernate Validator Annotation Processor is based on the \"Pluggable "
-"Annotation Processing API\" as defined by <ulink url=\"http://jcp.org/en/jsr/"
-"detail?id=269\">JSR 269</ulink>. This API is part of the Java Platform since "
-"Java 6. So be sure to use this or a later version."
+msgid "The Hibernate Validator Annotation Processor is based on the \"Pluggable Annotation Processing API\" as defined by <ulink url=\"http://jcp.org/en/jsr/detail?id=269\">JSR 269</ulink>. This API is part of the Java Platform since Java 6. So be sure to use this or a later version."
 msgstr ""
 
 #. Tag: title
@@ -98,16 +76,13 @@
 #. Tag: para
 #: annotationprocessor.xml:78
 #, no-c-format
-msgid ""
-"As of Hibernate Validator 4.1 the Hibernate Validator Annotation Processor "
-"checks that:"
+msgid "As of Hibernate Validator 4.1 the Hibernate Validator Annotation Processor checks that:"
 msgstr ""
 
 #. Tag: para
 #: annotationprocessor.xml:83
 #, no-c-format
-msgid ""
-"constraint annotations are allowed for the type of the annotated element"
+msgid "constraint annotations are allowed for the type of the annotated element"
 msgstr ""
 
 #. Tag: para
@@ -119,9 +94,7 @@
 #. Tag: para
 #: annotationprocessor.xml:93
 #, no-c-format
-msgid ""
-"only non-static fields or properties are annotated with constraint "
-"annotations"
+msgid "only non-static fields or properties are annotated with constraint annotations"
 msgstr ""
 
 #. Tag: para
@@ -133,9 +106,7 @@
 #. Tag: para
 #: annotationprocessor.xml:103
 #, no-c-format
-msgid ""
-"only such annotation types are annotated with constraint annotations which "
-"are constraint annotations themselves"
+msgid "only such annotation types are annotated with constraint annotations which are constraint annotations themselves"
 msgstr ""
 
 #. Tag: title
@@ -147,11 +118,7 @@
 #. Tag: para
 #: annotationprocessor.xml:112
 #, no-c-format
-msgid ""
-"The behavior of the Hibernate Validator Annotation Processor can be "
-"controlled using the <ulink url=\"http://java.sun.com/javase/6/docs/"
-"technotes/tools/windows/javac.html#options\">processor options</ulink> "
-"listed in table<xref linkend=\"table_processor_options\"/>:"
+msgid "The behavior of the Hibernate Validator Annotation Processor can be controlled using the <ulink url=\"http://java.sun.com/javase/6/docs/technotes/tools/windows/javac.html#options\">processor options</ulink> listed in table<xref linkend=\"table_processor_options\"/>:"
 msgstr ""
 
 #. Tag: title
@@ -181,12 +148,7 @@
 #. Tag: entry
 #: annotationprocessor.xml:134
 #, no-c-format
-msgid ""
-"Controls how constraint problems are reported. Must be the string "
-"representation of one of the values from the enum <classname>javax.tools."
-"Diagnostic.Kind</classname>, e.g. <classname>WARNING</classname>. A value of "
-"<classname>ERROR</classname> will cause compilation to halt whenever the AP "
-"detects a constraint problem. Defaults to <classname>ERROR</classname>."
+msgid "Controls how constraint problems are reported. Must be the string representation of one of the values from the enum <classname>javax.tools.Diagnostic.Kind</classname>, e.g. <classname>WARNING</classname>. A value of <classname>ERROR</classname> will cause compilation to halt whenever the AP detects a constraint problem. Defaults to <classname>ERROR</classname>."
 msgstr ""
 
 #. Tag: varname
@@ -198,10 +160,7 @@
 #. Tag: entry
 #: annotationprocessor.xml:146
 #, no-c-format
-msgid ""
-"Controls whether detailed processing information shall be displayed or not, "
-"useful for debugging purposes. Must be either <varname>true</varname> "
-"or<varname>false</varname>. Defaults to <varname>false</varname>."
+msgid "Controls whether detailed processing information shall be displayed or not, useful for debugging purposes. Must be either <varname>true</varname> or<varname>false</varname>. Defaults to <varname>false</varname>."
 msgstr ""
 
 #. Tag: title
@@ -213,10 +172,7 @@
 #. Tag: para
 #: annotationprocessor.xml:159
 #, no-c-format
-msgid ""
-"This section shows in detail how to integrate the Hibernate Validator "
-"Annotation Processor into command line builds (javac, Ant, Maven) as well as "
-"IDE-based builds (Eclipse, IntelliJ IDEA, NetBeans)."
+msgid "This section shows in detail how to integrate the Hibernate Validator Annotation Processor into command line builds (javac, Ant, Maven) as well as IDE-based builds (Eclipse, IntelliJ IDEA, NetBeans)."
 msgstr ""
 
 #. Tag: title
@@ -234,21 +190,20 @@
 #. Tag: para
 #: annotationprocessor.xml:170
 #, no-c-format
-msgid ""
-"When compiling on the command line using <ulink url=\"http://java.sun.com/"
-"javase/6/docs/technotes/guides/javac/index.html\">javac</ulink>, specify the "
-"following JARs using the \"processorpath\" option:"
+msgid "When compiling on the command line using <ulink url=\"http://java.sun.com/javase/6/docs/technotes/guides/javac/index.html\">javac</ulink>, specify the following JARs using the \"processorpath\" option:"
 msgstr ""
 
 #. Tag: para
-#: annotationprocessor.xml:176 annotationprocessor.xml:287
+#: annotationprocessor.xml:176
+#: annotationprocessor.xml:287
 #: annotationprocessor.xml:377
 #, no-c-format
 msgid "validation-api-&bvVersion;.jar"
 msgstr ""
 
 #. Tag: para
-#: annotationprocessor.xml:180 annotationprocessor.xml:291
+#: annotationprocessor.xml:180
+#: annotationprocessor.xml:291
 #: annotationprocessor.xml:381
 #, no-c-format
 msgid "hibernate-validator-annotation-processor-&version;.jar"
@@ -257,9 +212,7 @@
 #. Tag: para
 #: annotationprocessor.xml:184
 #, no-c-format
-msgid ""
-"The following listing shows an example. The processor will be detected "
-"automatically by the compiler and invoked during compilation."
+msgid "The following listing shows an example. The processor will be detected automatically by the compiler and invoked during compilation."
 msgstr ""
 
 #. Tag: title
@@ -274,8 +227,7 @@
 msgid ""
 "javac src/main/java/org/hibernate/validator/ap/demo/Car.java \\\n"
 "   -cp /path/to/validation-api-&bvVersion;.jar \\ \n"
-"   -processorpath /path/to/validation-api-&bvVersion;.jar:/path/to/hibernate-"
-"validator-annotation-processor-&version;.jar"
+"   -processorpath /path/to/validation-api-&bvVersion;.jar:/path/to/hibernate-validator-annotation-processor-&version;.jar"
 msgstr ""
 
 #. Tag: title
@@ -287,11 +239,7 @@
 #. Tag: para
 #: annotationprocessor.xml:198
 #, no-c-format
-msgid ""
-"Similar to directly working with javac, the annotation processor can be "
-"added as as compiler argument when invoking the <ulink url=\"http://ant."
-"apache.org/manual/CoreTasks/javac.html\">javac task</ulink> for <ulink url="
-"\"http://ant.apache.org/\">Apache Ant</ulink>:"
+msgid "Similar to directly working with javac, the annotation processor can be added as as compiler argument when invoking the <ulink url=\"http://ant.apache.org/manual/CoreTasks/javac.html\">javac task</ulink> for <ulink url=\"http://ant.apache.org/\">Apache Ant</ulink>:"
 msgstr ""
 
 #. Tag: title
@@ -308,8 +256,7 @@
 "       destdir=\"build/classes\"\n"
 "       classpath=\"/path/to/validation-api-&bvVersion;.jar\"&gt;\n"
 "       &lt;compilerarg value=\"-processorpath\" /&gt;\n"
-"       &lt;compilerarg value=\"/path/to/validation-api-&bvVersion;.jar:/path/"
-"to/hibernate-validator-annotation-processor-&version;.jar\"/&gt;\n"
+"       &lt;compilerarg value=\"/path/to/validation-api-&bvVersion;.jar:/path/to/hibernate-validator-annotation-processor-&version;.jar\"/&gt;\n"
 "&lt;/javac&gt;"
 msgstr ""
 
@@ -322,11 +269,7 @@
 #. Tag: para
 #: annotationprocessor.xml:214
 #, no-c-format
-msgid ""
-"There are several options for integrating the annotation processor with "
-"<ulink url=\"http://maven.apache.org/\">Apache Maven</ulink>. Generally it "
-"is sufficient to add the Hibernate Validator Annotation Processor as "
-"dependency to your project:"
+msgid "There are several options for integrating the annotation processor with <ulink url=\"http://maven.apache.org/\">Apache Maven</ulink>. Generally it is sufficient to add the Hibernate Validator Annotation Processor as dependency to your project:"
 msgstr ""
 
 #. Tag: title
@@ -342,8 +285,7 @@
 "...\n"
 "&lt;dependency&gt;\n"
 "    &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
-"    &lt;artifactId&gt;hibernate-validator-annotation-processor&lt;/"
-"artifactId&gt;\n"
+"    &lt;artifactId&gt;hibernate-validator-annotation-processor&lt;/artifactId&gt;\n"
 "    &lt;version&gt;&version;&lt;/version&gt;\n"
 "    &lt;scope&gt;compile&lt;/scope&gt;\n"
 "&lt;/dependency&gt;\n"
@@ -353,22 +295,13 @@
 #. Tag: para
 #: annotationprocessor.xml:225
 #, no-c-format
-msgid ""
-"The processor will then be executed automatically by the compiler. This "
-"basically works, but comes with the disadavantage that in some cases "
-"messages from the annotation processor are not displayed (see <ulink url="
-"\"http://jira.codehaus.org/browse/MCOMPILER-66\">MCOMPILER-66</ulink>)."
+msgid "The processor will then be executed automatically by the compiler. This basically works, but comes with the disadavantage that in some cases messages from the annotation processor are not displayed (see <ulink url=\"http://jira.codehaus.org/browse/MCOMPILER-66\">MCOMPILER-66</ulink>)."
 msgstr ""
 
 #. Tag: para
 #: annotationprocessor.xml:231
 #, no-c-format
-msgid ""
-"Another option is using the <ulink url=\"http://code.google.com/p/maven-"
-"annotation-plugin/\">Maven Annotation Plugin</ulink>. At the time of this "
-"writing the plugin is not yet available in any of the well-known "
-"repositories. Therefore you have to add the project's own repository to your "
-"settings.xml or pom.xml:"
+msgid "Another option is using the <ulink url=\"http://code.google.com/p/maven-annotation-plugin/\">Maven Annotation Plugin</ulink>. At the time of this writing the plugin is not yet available in any of the well-known repositories. Therefore you have to add the project's own repository to your settings.xml or pom.xml:"
 msgstr ""
 
 #. Tag: title
@@ -385,8 +318,7 @@
 "&lt;pluginRepositories&gt;\n"
 "    &lt;pluginRepository&gt;\n"
 "        &lt;id&gt;maven-annotation-plugin-repo&lt;/id&gt;\n"
-"        &lt;url&gt;http://maven-annotation-plugin.googlecode.com/svn/trunk/"
-"mavenrepo&lt;/url&gt;\n"
+"        &lt;url&gt;http://maven-annotation-plugin.googlecode.com/svn/trunk/mavenrepo&lt;/url&gt;\n"
 "    &lt;/pluginRepository&gt;\n"
 "&lt;/pluginRepositories&gt;\n"
 "..."
@@ -395,11 +327,7 @@
 #. Tag: para
 #: annotationprocessor.xml:242
 #, no-c-format
-msgid ""
-"Now disable the standard annotation processing performed by the compiler "
-"plugin and configure the annotation plugin by specifying an execution and "
-"adding the Hibernate Validator Annotation Processor as plugin dependency "
-"(that way the AP is not visible on the project's actual classpath):"
+msgid "Now disable the standard annotation processing performed by the compiler plugin and configure the annotation plugin by specifying an execution and adding the Hibernate Validator Annotation Processor as plugin dependency (that way the AP is not visible on the project's actual classpath):"
 msgstr ""
 
 #. Tag: title
@@ -437,8 +365,7 @@
 "    &lt;dependencies&gt;\n"
 "        &lt;dependency&gt;\n"
 "            &lt;groupId&gt;org.hibernate&lt;/groupId&gt;\n"
-"            &lt;artifactId&gt;hibernate-validator-annotation-processor&lt;/"
-"artifactId&gt;\n"
+"            &lt;artifactId&gt;hibernate-validator-annotation-processor&lt;/artifactId&gt;\n"
 "            &lt;version&gt;&version;&lt;/version&gt;\n"
 "            &lt;scope&gt;compile&lt;/scope&gt;\n"
 "        &lt;/dependency&gt;\n"
@@ -462,13 +389,12 @@
 #. Tag: para
 #: annotationprocessor.xml:262
 #, no-c-format
-msgid ""
-"Do the following to use the annotation processor within the <ulink url="
-"\"http://www.eclipse.org/\">Eclipse</ulink> IDE:"
+msgid "Do the following to use the annotation processor within the <ulink url=\"http://www.eclipse.org/\">Eclipse</ulink> IDE:"
 msgstr ""
 
 #. Tag: para
-#: annotationprocessor.xml:267 annotationprocessor.xml:368
+#: annotationprocessor.xml:267
+#: annotationprocessor.xml:368
 #, no-c-format
 msgid "Right-click your project, choose \"Properties\""
 msgstr ""
@@ -476,25 +402,19 @@
 #. Tag: para
 #: annotationprocessor.xml:271
 #, no-c-format
-msgid ""
-"Go to \"Java Compiler\" and make sure, that \"Compiler compliance level\" is "
-"set to \"1.6\". Otherwise the processor won't be activated"
+msgid "Go to \"Java Compiler\" and make sure, that \"Compiler compliance level\" is set to \"1.6\". Otherwise the processor won't be activated"
 msgstr ""
 
 #. Tag: para
 #: annotationprocessor.xml:277
 #, no-c-format
-msgid ""
-"Go to \"Java Compiler - Annotation Processing\" and choose \"Enable "
-"annotation processing\""
+msgid "Go to \"Java Compiler - Annotation Processing\" and choose \"Enable annotation processing\""
 msgstr ""
 
 #. Tag: para
 #: annotationprocessor.xml:282
 #, no-c-format
-msgid ""
-"Go to \"Java Compiler - Annotation Processing - Factory Path\" and add the "
-"following JARs:"
+msgid "Go to \"Java Compiler - Annotation Processing - Factory Path\" and add the following JARs:"
 msgstr ""
 
 #. Tag: para
@@ -506,9 +426,7 @@
 #. Tag: para
 #: annotationprocessor.xml:301
 #, no-c-format
-msgid ""
-"You now should see any annotation problems as regular error markers within "
-"the editor and in the \"Problem\" view:"
+msgid "You now should see any annotation problems as regular error markers within the editor and in the \"Problem\" view:"
 msgstr ""
 
 #. Tag: title
@@ -520,10 +438,7 @@
 #. Tag: para
 #: annotationprocessor.xml:315
 #, no-c-format
-msgid ""
-"The following steps must be followed to use the annotation processor within "
-"<ulink url=\"http://www.jetbrains.com/idea/\">IntelliJ IDEA</ulink> (version "
-"9 and above):"
+msgid "The following steps must be followed to use the annotation processor within <ulink url=\"http://www.jetbrains.com/idea/\">IntelliJ IDEA</ulink> (version 9 and above):"
 msgstr ""
 
 #. Tag: para
@@ -541,19 +456,13 @@
 #. Tag: para
 #: annotationprocessor.xml:330
 #, no-c-format
-msgid ""
-"Choose \"Enable annotation processing\" and enter the following as "
-"\"Processor path\": /path/to/validation-api-&bvVersion;.jar:/path/to/"
-"hibernate-validator-annotation-processor-&version;.jar"
+msgid "Choose \"Enable annotation processing\" and enter the following as \"Processor path\": /path/to/validation-api-&bvVersion;.jar:/path/to/hibernate-validator-annotation-processor-&version;.jar"
 msgstr ""
 
 #. Tag: para
 #: annotationprocessor.xml:336
 #, no-c-format
-msgid ""
-"Add the processor's fully qualified name <classname>org.hibernate.validator."
-"ap.ConstraintValidationProcessor</classname> to the \"Annotation Processors"
-"\" list"
+msgid "Add the processor's fully qualified name <classname>org.hibernate.validator.ap.ConstraintValidationProcessor</classname> to the \"Annotation Processors\" list"
 msgstr ""
 
 #. Tag: para
@@ -565,8 +474,7 @@
 #. Tag: para
 #: annotationprocessor.xml:347
 #, no-c-format
-msgid ""
-"Rebuilding your project then should show any erronous constraint annotations:"
+msgid "Rebuilding your project then should show any erronous constraint annotations:"
 msgstr ""
 
 #. Tag: title
@@ -578,10 +486,7 @@
 #. Tag: para
 #: annotationprocessor.xml:361
 #, no-c-format
-msgid ""
-"Starting with version 6.9, also the <ulink url=\"http://www.netbeans.org/"
-"\">NetBeans</ulink> IDE supports using annotation processors within the IDE "
-"build. To do so, do the following:"
+msgid "Starting with version 6.9, also the <ulink url=\"http://www.netbeans.org/\">NetBeans</ulink> IDE supports using annotation processors within the IDE build. To do so, do the following:"
 msgstr ""
 
 #. Tag: para
@@ -593,51 +498,36 @@
 #. Tag: para
 #: annotationprocessor.xml:387
 #, no-c-format
-msgid ""
-"Go to \"Build - Compiling\", select \"Enable Annotation Processing\" and "
-"\"Enable Annotation Processing in Editor\". Add the annotation processor by "
-"specifying its fully qualified name <classname>org.hibernate.validator.ap."
-"ConstraintValidationProcessor</classname>"
+msgid "Go to \"Build - Compiling\", select \"Enable Annotation Processing\" and \"Enable Annotation Processing in Editor\". Add the annotation processor by specifying its fully qualified name <classname>org.hibernate.validator.ap.ConstraintValidationProcessor</classname>"
 msgstr ""
 
 #. Tag: para
 #: annotationprocessor.xml:394
 #, no-c-format
-msgid ""
-"Any constraint annotation problems will then be marked directly within the "
-"editor:"
+msgid "Any constraint annotation problems will then be marked directly within the editor:"
 msgstr ""
 
 #. Tag: title
 #: annotationprocessor.xml:408
 #, no-c-format
 msgid "Known issues"
-msgstr ""
+msgstr "已知问题"
 
 #. Tag: para
 #: annotationprocessor.xml:410
 #, no-c-format
 msgid "The following known issues exist as of May 2010:"
-msgstr ""
+msgstr "以下是截止到2010年五月我们发现(但尚未解决)的问题:"
 
 #. Tag: para
 #: annotationprocessor.xml:414
 #, no-c-format
-msgid ""
-"<ulink url=\"http://opensource.atlassian.com/projects/hibernate/browse/HV-308"
-"\">HV-308</ulink>: Additional validators registered for a constraint <ulink "
-"url=\"http://docs.jboss.org/hibernate/stable/validator/reference/en/"
-"html_single/#d0e1957\">using XML</ulink> are not evaluated by the annotation "
-"processor."
+msgid "<ulink url=\"http://opensource.atlassian.com/projects/hibernate/browse/HV-308\">HV-308</ulink>: Additional validators registered for a constraint <ulink url=\"http://docs.jboss.org/hibernate/stable/validator/reference/en/html_single/#d0e1957\">using XML</ulink> are not evaluated by the annotation processor."
 msgstr ""
 
 #. Tag: para
 #: annotationprocessor.xml:422
 #, no-c-format
-msgid ""
-"Sometimes custom constraints can't be <ulink url=\"http://opensource."
-"atlassian.com/projects/hibernate/browse/HV-293\">properly evaluated</ulink> "
-"when using the processor within Eclipse. Cleaning the project can help in "
-"these situations. This seems to be an issue with the Eclipse JSR 269 API "
-"implementation, but further investigation is required here."
+msgid "Sometimes custom constraints can't be <ulink url=\"http://opensource.atlassian.com/projects/hibernate/browse/HV-293\">properly evaluated</ulink> when using the processor within Eclipse. Cleaning the project can help in these situations. This seems to be an issue with the Eclipse JSR 269 API implementation, but further investigation is required here."
 msgstr ""
+

Modified: validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/furtherreading.po
===================================================================
--- validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/furtherreading.po	2010-08-18 17:27:40 UTC (rev 20163)
+++ validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/furtherreading.po	2010-08-18 17:54:28 UTC (rev 20164)
@@ -6,8 +6,8 @@
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2010-07-06 14:46+0000\n"
-"PO-Revision-Date: 2010-07-06 14:46+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2010-08-14 14:25+0830\n"
+"Last-Translator: Strong Liu <stliu at hibernate.org>\n"
 "Language-Team: none\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -17,40 +17,23 @@
 #: furtherreading.xml:25
 #, no-c-format
 msgid "Further reading"
-msgstr ""
+msgstr "进一步阅读"
 
 #. Tag: para
 #: furtherreading.xml:27
 #, no-c-format
-msgid ""
-"Last but not least, a few pointers to further information. A great source "
-"for examples is the Bean Validation TCK which can is available for anonymous "
-"access in the Hibernate <ulink url=\"http://anonsvn.jboss.org/repos/"
-"hibernate/validator/trunk\">SVN repository</ulink>. Alternatively you can "
-"view the tests using <ulink url=\"http://fisheye.jboss.org/browse/Hibernate/"
-"beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/"
-"tests\">Hibernate's fisheye</ulink> installation. <ulink url=\"http://jcp."
-"org/en/jsr/detail?id=303\">The JSR 303</ulink> specification itself is also "
-"a great way to deepen your understanding of Bean Validation resp. Hibernate "
-"Validator."
-msgstr ""
+msgid "Last but not least, a few pointers to further information. A great source for examples is the Bean Validation TCK which can is available for anonymous access in the Hibernate <ulink url=\"http://anonsvn.jboss.org/repos/hibernate/validator/trunk\">SVN repository</ulink>. Alternatively you can view the tests using <ulink url=\"http://fisheye.jboss.org/browse/Hibernate/beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests\">Hibernate's fisheye</ulink> installation. <ulink url=\"http://jcp.org/en/jsr/detail?id=303\">The JSR 303</ulink> specification itself is also a great way to deepen your understanding of Bean Validation resp. Hibernate Validator."
+msgstr "最后,还有一些东东可供进一步参考. Bean Validation TCK 是一份非常好的示例,你可以从Hibernate <ulink url=\"http://anonsvn.jboss.org/repos/hibernate/validator/trunk\">SVN repository</ulink>匿名访问得到. 或者, 你也可以通过<ulink url=\"http://fisheye.jboss.org/browse/Hibernate/beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests\">Hibernate's fisheye</ulink>来查看我们的测试用例代码. 另外阅读<ulink url=\"http://jcp.org/en/jsr/detail?id=303\">The JSR 303</ulink>规范也是很好的方法来加深你对Bean Validation 和 Hibernate Validator的理解."
 
 #. Tag: para
 #: furtherreading.xml:38
 #, no-c-format
-msgid ""
-"If you have any further questions to Hibernate Validator or want to share "
-"some of your use cases have a look at the <ulink url=\"http://community."
-"jboss.org/en/hibernate/validator\">Hibernate Validator Wiki</ulink> and the "
-"<ulink url=\"https://forum.hibernate.org/viewforum.php?f=9\">Hibernate "
-"Validator Forum</ulink>."
-msgstr ""
+msgid "If you have any further questions to Hibernate Validator or want to share some of your use cases have a look at the <ulink url=\"http://community.jboss.org/en/hibernate/validator\">Hibernate Validator Wiki</ulink> and the <ulink url=\"https://forum.hibernate.org/viewforum.php?f=9\">Hibernate Validator Forum</ulink>."
+msgstr "如果你还有什么关于Hibernate Validator的问题或者想和我们分享你的使用经验,请使用<ulink url=\"http://community.jboss.org/en/hibernate/validator\">Hibernate Validator Wiki</ulink>或者去<ulink url=\"https://forum.hibernate.org/viewforum.php?f=9\">Hibernate Validator Forum</ulink>发帖子(译注:但是不要灌水:-D)."
 
 #. Tag: para
 #: furtherreading.xml:45
 #, no-c-format
-msgid ""
-"In case you would like to report a bug use <ulink url=\"http://opensource."
-"atlassian.com/projects/hibernate/browse/HV\">Hibernate's Jira</ulink> "
-"instance. Feedback is always welcome!"
-msgstr ""
+msgid "In case you would like to report a bug use <ulink url=\"http://opensource.atlassian.com/projects/hibernate/browse/HV\">Hibernate's Jira</ulink> instance. Feedback is always welcome!"
+msgstr "如果你发现了Hibernate Validator的bug,请在<ulink url=\"http://opensource.atlassian.com/projects/hibernate/browse/HV\">Hibernate's Jira</ulink>中报告, 我们非常欢迎您的反馈!"
+

Modified: validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/integration.po
===================================================================
--- validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/integration.po	2010-08-18 17:27:40 UTC (rev 20163)
+++ validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/integration.po	2010-08-18 17:54:28 UTC (rev 20164)
@@ -6,8 +6,8 @@
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2010-07-06 14:46+0000\n"
-"PO-Revision-Date: 2010-07-06 14:46+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2010-08-14 14:36+0830\n"
+"Last-Translator: Strong Liu <stliu at hibernate.org>\n"
 "Language-Team: none\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -17,35 +17,25 @@
 #: integration.xml:25
 #, no-c-format
 msgid "Integration with other frameworks"
-msgstr ""
+msgstr "与其他框架集成"
 
 #. Tag: para
 #: integration.xml:27
 #, no-c-format
-msgid ""
-"Hibernate Validator is intended to be used to implement multi-layered data "
-"validation, where constraints are expressed in a single place (the annotated "
-"domain model) and checked in various different layers of the application."
-msgstr ""
+msgid "Hibernate Validator is intended to be used to implement multi-layered data validation, where constraints are expressed in a single place (the annotated domain model) and checked in various different layers of the application."
+msgstr "Hibernate Validator 的设计初衷是在一个分层的应用程序中, 约束信息只需要被定义一次( 通过在领域模型上标注), 然后在不同的层中进行数据校验."
 
 #. Tag: title
 #: integration.xml:33
 #, no-c-format
 msgid "OSGi"
-msgstr ""
+msgstr "OSGi"
 
 #. Tag: para
 #: integration.xml:35
 #, no-c-format
-msgid ""
-"The Hibernate Validator jar file is conform to the OSGi specification and "
-"can be used within any OSGi container. The classes in the following packages "
-"are exported by Hibernate Validator and are considered part of the public "
-"API - <package>org.hibernate.validator</package>, <package>org.hibernate."
-"validator.constraints</package>, <package>org.hibernate.validator."
-"messageinterpolation</package> and <package>org.hibernate.validator."
-"resourceloading</package>."
-msgstr ""
+msgid "The Hibernate Validator jar file is conform to the OSGi specification and can be used within any OSGi container. The classes in the following packages are exported by Hibernate Validator and are considered part of the public API - <package>org.hibernate.validator</package>, <package>org.hibernate.validator.constraints</package>, <package>org.hibernate.validator.messageinterpolation</package> and <package>org.hibernate.validator.resourceloading</package>."
+msgstr "Hibernate Validator 的jar文件符合OSGi的规范,所以能够被用在任何OSGi的容器当中. 以下的包是Hibernate Validator 暴露出来的API:<package>org.hibernate.validator</package>, <package>org.hibernate.validator.constraints</package>, <package>org.hibernate.validator.messageinterpolation</package> and <package>org.hibernate.validator.resourceloading</package>."
 
 #. Tag: title
 #: integration.xml:46
@@ -56,32 +46,19 @@
 #. Tag: para
 #: integration.xml:48
 #, no-c-format
-msgid ""
-"Out of the box, Hibernate Annotations (as of Hibernate 3.5.x) will translate "
-"the constraints you have defined for your entities into mapping metadata. "
-"For example, if a property of your entity is annotated <literal>@NotNull</"
-"literal>, its columns will be declared as <literal>not null</literal> in the "
-"DDL schema generated by Hibernate."
+msgid "Out of the box, Hibernate Annotations (as of Hibernate 3.5.x) will translate the constraints you have defined for your entities into mapping metadata. For example, if a property of your entity is annotated <literal>@NotNull</literal>, its columns will be declared as <literal>not null</literal> in the DDL schema generated by Hibernate."
 msgstr ""
 
 #. Tag: para
 #: integration.xml:54
 #, no-c-format
-msgid ""
-"If, for some reason, the feature needs to be disabled, set "
-"<literal>hibernate.validator.apply_to_ddl</literal> to <literal>false</"
-"literal>. See also <xref linkend=\"table-builtin-constraints\"/>."
+msgid "If, for some reason, the feature needs to be disabled, set <literal>hibernate.validator.apply_to_ddl</literal> to <literal>false</literal>. See also <xref linkend=\"table-builtin-constraints\"/>."
 msgstr ""
 
 #. Tag: para
 #: integration.xml:59
 #, no-c-format
-msgid ""
-"You can also limit the DDL constraint generation to a subset of the defined "
-"constraints by setting the property <property>org.hibernate.validator.group."
-"ddl</property>. The property specifies the comma-separated, fully specified "
-"class names of the groups a constraint has to be part of in order to be "
-"considered for DDL schema generation."
+msgid "You can also limit the DDL constraint generation to a subset of the defined constraints by setting the property <property>org.hibernate.validator.group.ddl</property>. The property specifies the comma-separated, fully specified class names of the groups a constraint has to be part of in order to be considered for DDL schema generation."
 msgstr ""
 
 #. Tag: title
@@ -93,9 +70,7 @@
 #. Tag: para
 #: integration.xml:70
 #, no-c-format
-msgid ""
-"Hibernate Validator integrates with both Hibernate and all pure Java "
-"Persistence providers."
+msgid "Hibernate Validator integrates with both Hibernate and all pure Java Persistence providers."
 msgstr ""
 
 #. Tag: title
@@ -107,68 +82,37 @@
 #. Tag: para
 #: integration.xml:76
 #, no-c-format
-msgid ""
-"Hibernate Validator has a built-in Hibernate event listener - <ulink url="
-"\"http://fisheye.jboss.org/browse/Hibernate/core/trunk/annotations/src/main/"
-"java/org/hibernate/cfg/beanvalidation/BeanValidationEventListener.java"
-"\"><classname>org.hibernate.cfg.beanvalidation.BeanValidationEventListener</"
-"classname></ulink> - which is part of Hibernate Annotations (as of Hibernate "
-"3.5.x). Whenever a <literal>PreInsertEvent</literal>, "
-"<literal>PreUpdateEvent</literal> or <classname>PreDeleteEvent</classname> "
-"occurs, the listener will verify all constraints of the entity instance and "
-"throw an exception if any constraint is violated. Per default objects will "
-"be checked before any inserts or updates are made by Hibernate. Pre deletion "
-"events will per default not trigger a validation. You can configure the "
-"groups to be validated per event type using the properties <property>javax."
-"persistence.validation.group.pre-persist</property>, <property>javax."
-"persistence.validation.group.pre-update</property> and <property>javax."
-"persistence.validation.group.pre-remove</property>. The values of these "
-"properties are the comma-separated, fully specified class names of the "
-"groups to validate. <xref linkend=\"example-beanvalidationeventlistener-"
-"config\"/> shows the default values for these properties. In this case they "
-"could also be omitted."
+msgid "Hibernate Validator has a built-in Hibernate event listener - <ulink url=\"http://fisheye.jboss.org/browse/Hibernate/core/trunk/annotations/src/main/java/org/hibernate/cfg/beanvalidation/BeanValidationEventListener.java\"><classname>org.hibernate.cfg.beanvalidation.BeanValidationEventListener</classname></ulink> - which is part of Hibernate Annotations (as of Hibernate 3.5.x). Whenever a <literal>PreInsertEvent</literal>, <literal>PreUpdateEvent</literal> or <classname>PreDeleteEvent</classname> occurs, the listener will verify all constraints of the entity instance and throw an exception if any constraint is violated. Per default objects will be checked before any inserts or updates are made by Hibernate. Pre deletion events will per default not trigger a validation. You can configure the groups to be validated per event type using the properties <property>javax.persistence.validation.group.pre-persist</property>, <property>javax.persistence.validation.group.pre-upd!
 ate</property> and <property>javax.persistence.validation.group.pre-remove</property>. The values of these properties are the comma-separated, fully specified class names of the groups to validate. <xref linkend=\"example-beanvalidationeventlistener-config\"/> shows the default values for these properties. In this case they could also be omitted."
 msgstr ""
 
 #. Tag: para
 #: integration.xml:97
 #, no-c-format
-msgid ""
-"On constraint violation, the event will raise a runtime "
-"<classname>ConstraintViolationException</classname> which contains a set of "
-"<literal>ConstraintViolation</literal>s describing each failure."
+msgid "On constraint violation, the event will raise a runtime <classname>ConstraintViolationException</classname> which contains a set of <literal>ConstraintViolation</literal>s describing each failure."
 msgstr ""
 
 #. Tag: para
 #: integration.xml:102
 #, no-c-format
-msgid ""
-"If Hibernate Validator is present in the classpath, Hibernate Annotations "
-"(or Hibernate EntityManager) will use it transparently. To avoid validation "
-"even though Hibernate Validator is in the classpath set <property>javax."
-"persistence.validation.mode</property> to <constant>none</constant>."
+msgid "If Hibernate Validator is present in the classpath, Hibernate Annotations (or Hibernate EntityManager) will use it transparently. To avoid validation even though Hibernate Validator is in the classpath set <property>javax.persistence.validation.mode</property> to <constant>none</constant>."
 msgstr ""
 
 #. Tag: para
 #: integration.xml:109
 #, no-c-format
-msgid ""
-"If the beans are not annotated with validation annotations, there is no "
-"runtime performance cost."
+msgid "If the beans are not annotated with validation annotations, there is no runtime performance cost."
 msgstr ""
 
 #. Tag: para
 #: integration.xml:113
 #, no-c-format
-msgid ""
-"In case you need to manually set the event listeners for Hibernate Core, use "
-"the following configuration in <literal>hibernate.cfg.xml</literal>:"
+msgid "In case you need to manually set the event listeners for Hibernate Core, use the following configuration in <literal>hibernate.cfg.xml</literal>:"
 msgstr ""
 
 #. Tag: title
 #: integration.xml:118
 #, no-c-format
-msgid ""
-"Manual configuration of <classname>BeanValidationEvenListener</classname>"
+msgid "Manual configuration of <classname>BeanValidationEvenListener</classname>"
 msgstr ""
 
 #. Tag: programlisting
@@ -178,24 +122,18 @@
 "&lt;hibernate-configuration&gt;\n"
 "    &lt;session-factory&gt;\n"
 "       ...\n"
-"       &lt;property name=\"javax.persistence.validation.group.pre-persist"
-"\"&gt;javax.validation.groups.Default&lt;/property&gt;\n"
-"       &lt;property name=\"javax.persistence.validation.group.pre-update"
-"\"&gt;javax.validation.groups.Default&lt;/property&gt;\n"
-"       &lt;property name=\"javax.persistence.validation.group.pre-remove"
-"\"&gt;&lt;/property&gt;\n"
+"       &lt;property name=\"javax.persistence.validation.group.pre-persist\"&gt;javax.validation.groups.Default&lt;/property&gt;\n"
+"       &lt;property name=\"javax.persistence.validation.group.pre-update\"&gt;javax.validation.groups.Default&lt;/property&gt;\n"
+"       &lt;property name=\"javax.persistence.validation.group.pre-remove\"&gt;&lt;/property&gt;\n"
 "       ...\n"
 "       &lt;event type=\"pre-update\"&gt;\n"
-"         &lt;listener class=\"org.hibernate.cfg.beanvalidation."
-"BeanValidationEventListener\"/&gt;\n"
+"         &lt;listener class=\"org.hibernate.cfg.beanvalidation.BeanValidationEventListener\"/&gt;\n"
 "       &lt;/event&gt;\n"
 "       &lt;event type=\"pre-insert\"&gt;\n"
-"         &lt;listener class=\"org.hibernate.cfg.beanvalidation."
-"BeanValidationEventListener\"/&gt;\n"
+"         &lt;listener class=\"org.hibernate.cfg.beanvalidation.BeanValidationEventListener\"/&gt;\n"
 "       &lt;/event&gt;\n"
 "       &lt;event type=\"pre-delete\"&gt;\n"
-"         &lt;listener class=\"org.hibernate.cfg.beanvalidation."
-"BeanValidationEventListener\"/&gt;\n"
+"         &lt;listener class=\"org.hibernate.cfg.beanvalidation.BeanValidationEventListener\"/&gt;\n"
 "       &lt;/event&gt;\n"
 "    &lt;/session-factory&gt;\n"
 "&lt;/hibernate-configuration&gt;"
@@ -210,29 +148,13 @@
 #. Tag: para
 #: integration.xml:128
 #, no-c-format
-msgid ""
-"If you are using JPA 2 and Hibernate Validator is in the classpath the JPA2 "
-"specification requires that Bean Validation gets enabled. The properties "
-"<property>javax.persistence.validation.group.pre-persist</property>, "
-"<property>javax.persistence.validation.group.pre-update</property> and "
-"<property>javax.persistence.validation.group.pre-remove</property> as "
-"described in <xref linkend=\"validator-checkconstraints-orm-hibernateevent\"/"
-"> can in this case be configured in <filename>persistence.xml</filename>. "
-"<filename>persistence.xml</filename> also defines a node validation-mode "
-"while can be set to <constant>AUTO</constant>, <constant>CALLBACK</"
-"constant>, <constant>NONE</constant>. The default is <constant>AUTO</"
-"constant>."
+msgid "If you are using JPA 2 and Hibernate Validator is in the classpath the JPA2 specification requires that Bean Validation gets enabled. The properties <property>javax.persistence.validation.group.pre-persist</property>, <property>javax.persistence.validation.group.pre-update</property> and <property>javax.persistence.validation.group.pre-remove</property> as described in <xref linkend=\"validator-checkconstraints-orm-hibernateevent\"/> can in this case be configured in <filename>persistence.xml</filename>. <filename>persistence.xml</filename> also defines a node validation-mode while can be set to <constant>AUTO</constant>, <constant>CALLBACK</constant>, <constant>NONE</constant>. The default is <constant>AUTO</constant>."
 msgstr ""
 
 #. Tag: para
 #: integration.xml:142
 #, no-c-format
-msgid ""
-"In a JPA 1 you will have to create and register Hibernate Validator "
-"yourself. In case you are using Hibernate EntityManager you can add a "
-"customized version of the <classname>BeanValidationEventListener</classname> "
-"described in <xref linkend=\"validator-checkconstraints-orm-hibernateevent\"/"
-"> to your project and register it manually."
+msgid "In a JPA 1 you will have to create and register Hibernate Validator yourself. In case you are using Hibernate EntityManager you can add a customized version of the <classname>BeanValidationEventListener</classname> described in <xref linkend=\"validator-checkconstraints-orm-hibernateevent\"/> to your project and register it manually."
 msgstr ""
 
 #. Tag: title
@@ -244,13 +166,7 @@
 #. Tag: para
 #: integration.xml:154
 #, no-c-format
-msgid ""
-"When working with JSF2 or <productname>JBoss Seam</productname> and "
-"Hibernate Validator (Bean Validation) is present in the runtime environment "
-"validation is triggered for every field in the application. <xref linkend="
-"\"example-jsf2\"/> shows an example of the f:validateBean tag in a JSF page. "
-"For more information refer to the Seam documentation or the JSF 2 "
-"specification."
+msgid "When working with JSF2 or <productname>JBoss Seam</productname> and Hibernate Validator (Bean Validation) is present in the runtime environment validation is triggered for every field in the application. <xref linkend=\"example-jsf2\"/> shows an example of the f:validateBean tag in a JSF page. For more information refer to the Seam documentation or the JSF 2 specification."
 msgstr ""
 
 #. Tag: title
@@ -266,9 +182,9 @@
 "&lt;h:form&gt;\n"
 "  <emphasis role=\"bold\">&lt;f:validateBean&gt;</emphasis>\n"
 "    &lt;h:inputText value=”#{model.property}” /&gt;\n"
-"    &lt;h:selectOneRadio value=”#{model.radioProperty}” &gt; ... &lt;/h:"
-"selectOneRadio&gt;\n"
+"    &lt;h:selectOneRadio value=”#{model.radioProperty}” &gt; ... &lt;/h:selectOneRadio&gt;\n"
 "    &lt;!-- other input components here --&gt;\n"
 "  <emphasis role=\"bold\">&lt;/f:validateBean&gt;</emphasis>\n"
 "&lt;/h:form&gt;"
 msgstr ""
+

Modified: validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/usingvalidator.po
===================================================================
--- validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/usingvalidator.po	2010-08-18 17:27:40 UTC (rev 20163)
+++ validator/trunk/hibernate-validator/src/main/docbook/zh-CN/modules/usingvalidator.po	2010-08-18 17:54:28 UTC (rev 20164)
@@ -6,8 +6,8 @@
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2010-07-06 14:46+0000\n"
-"PO-Revision-Date: 2010-07-06 14:46+0000\n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2010-08-19 01:49+0830\n"
+"Last-Translator: Strong Liu <stliu at hibernate.org>\n"
 "Language-Team: none\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -17,66 +17,49 @@
 #: usingvalidator.xml:25
 #, no-c-format
 msgid "Validation step by step"
-msgstr ""
+msgstr "Validation step by step"
 
 #. Tag: para
 #: usingvalidator.xml:27
 #, no-c-format
-msgid ""
-"In this chapter we will see in more detail how to use Hibernate Validator to "
-"validate constraints for a given entity model. We will also learn which "
-"default constraints the Bean Validation specification provides and which "
-"additional constraints are only provided by Hibernate Validator. Let's start "
-"with how to add constraints to an entity."
-msgstr ""
+msgid "In this chapter we will see in more detail how to use Hibernate Validator to validate constraints for a given entity model. We will also learn which default constraints the Bean Validation specification provides and which additional constraints are only provided by Hibernate Validator. Let's start with how to add constraints to an entity."
+msgstr "在本章中,我们会详细的介绍如何使用Hibernate Validator 来对一个给定的实体模型进行验证. 还会介绍Bean Validation规范提供了哪些默认的约束条件和Hibernate Validator提供了哪些额外的. 让我们先从如何给一个实体添加约束开始."
 
 #. Tag: title
 #: usingvalidator.xml:34
 #, no-c-format
 msgid "Defining constraints"
-msgstr ""
+msgstr "定义约束"
 
 #. Tag: para
 #: usingvalidator.xml:36
 #, no-c-format
-msgid ""
-"Constraints in Bean Validation are expressed via Java annotations. In this "
-"section we show how to annotate an object model with these annotations. We "
-"have to differentiate between three different type of constraint annotations "
-"- field-, property-, and class-level annotations."
-msgstr ""
+msgid "Constraints in Bean Validation are expressed via Java annotations. In this section we show how to annotate an object model with these annotations. We have to differentiate between three different type of constraint annotations - field-, property-, and class-level annotations."
+msgstr "Bean Validation 的约束是通过Java 注解(annotations)来标注的. 在本节中,我们会介绍如何使用这些注解(annotations)来标注一个实体模型.  并且,我们会区分三种不通的注解(annotations) 类型."
 
 #. Tag: para
 #: usingvalidator.xml:43
 #, no-c-format
-msgid ""
-"Not all constraints can be placed on all of these levels. In fact, none of "
-"the default constraints defined by Bean Validation can be placed at class "
-"level. The <classname>java.lang.annotation.Target</classname> annotation in "
-"the constraint annotation itself determines on which elements a constraint "
-"can be placed. See <xref linkend=\"validator-customconstraints\"/> for more "
-"information."
-msgstr ""
+msgid "Not all constraints can be placed on all of these levels. In fact, none of the default constraints defined by Bean Validation can be placed at class level. The <classname>java.lang.annotation.Target</classname> annotation in the constraint annotation itself determines on which elements a constraint can be placed. See <xref linkend=\"validator-customconstraints\"/> for more information."
+msgstr "不是所有的约束都能够被用在所有的类结构上. 事实上, 没有任何定义在Bean Validation规范中的约束可以被用在class上. 约束定义中的<classname>java.lang.annotation.Target</classname>属性定义了这个约束能够被使用在哪个层次结构上. 详细信息请参考<xref linkend=\"validator-customconstraints\"/>."
 
 #. Tag: title
 #: usingvalidator.xml:52
 #, no-c-format
 msgid "Field-level constraints"
-msgstr ""
+msgstr "字段级(field level) 约束"
 
 #. Tag: para
 #: usingvalidator.xml:54
 #, no-c-format
-msgid ""
-"Constraints can be expressed by annotating a field of a class. <xref linkend="
-"\"example-field-level\"/> shows a field level configuration example:"
-msgstr ""
+msgid "Constraints can be expressed by annotating a field of a class. <xref linkend=\"example-field-level\"/> shows a field level configuration example:"
+msgstr "约束条件能够被标注在类的字段上面, 请参考示例<xref linkend=\"example-field-level\"/>"
 
 #. Tag: title
 #: usingvalidator.xml:59
 #, no-c-format
 msgid "Field level constraint"
-msgstr ""
+msgstr "字段级(field level) 约束"
 
 #. Tag: programlisting
 #: usingvalidator.xml:61
@@ -101,58 +84,66 @@
 "    }\n"
 "}"
 msgstr ""
+"package com.mycompany;\n"
+"\n"
+"import javax.validation.constraints.NotNull;\n"
+"\n"
+"public class Car {\n"
+"\n"
+"    @NotNull\n"
+"    private String manufacturer;\n"
+"\n"
+"    @AssertTrue\n"
+"    private boolean isRegistered;\n"
+"\n"
+"    public Car(String manufacturer, boolean isRegistered) {\n"
+"        super();\n"
+"        this.manufacturer = manufacturer;\n"
+"        this.isRegistered = isRegistered;\n"
+"    }\n"
+"}"
 
 #. Tag: para
 #: usingvalidator.xml:64
 #, no-c-format
-msgid ""
-"When using field level constraints field access strategy is used to access "
-"the value to be validated. This means the bean validation provider directly "
-"accesses the instance variable and does not invoke the property accessor "
-"method also if such a method exists."
-msgstr ""
+msgid "When using field level constraints field access strategy is used to access the value to be validated. This means the bean validation provider directly accesses the instance variable and does not invoke the property accessor method also if such a method exists."
+msgstr "当约束被定义在字段上的时候, 这个字段的值是通过字段访问策略来获取并验证的. 也就是说Bean Validation的实现者会直接访问这个实例变量而不会调用属性的访问器(getter) 即使这个方法存在."
 
 #. Tag: para
 #: usingvalidator.xml:70
 #, no-c-format
 msgid "The access type (private, protected or public) does not matter."
-msgstr ""
+msgstr "这个字段的访问级别( private, protected 或者 public) 对此没有影响."
 
 #. Tag: para
 #: usingvalidator.xml:75
 #, no-c-format
 msgid "Static fields and properties cannot be validated."
-msgstr ""
+msgstr "静态字段或者属性是不会被校验的."
 
 #. Tag: title
 #: usingvalidator.xml:80
 #, no-c-format
 msgid "Property-level constraints"
-msgstr ""
+msgstr "属性级别约束"
 
 #. Tag: para
 #: usingvalidator.xml:82
 #, no-c-format
-msgid ""
-"If your model class adheres to the <ulink type=\"\" url=\"http://java.sun."
-"com/javase/technologies/desktop/javabeans/index.jsp\">JavaBeans</ulink> "
-"standard, it is also possible to annotate the properties of a bean class "
-"instead of its fields. <xref linkend=\"example-property-level\"/> uses the "
-"same entity as in <xref linkend=\"example-field-level\"/>, however, property "
-"level constraints are used."
-msgstr ""
+msgid "If your model class adheres to the <ulink type=\"\" url=\"http://java.sun.com/javase/technologies/desktop/javabeans/index.jsp\">JavaBeans</ulink> standard, it is also possible to annotate the properties of a bean class instead of its fields. <xref linkend=\"example-property-level\"/> uses the same entity as in <xref linkend=\"example-field-level\"/>, however, property level constraints are used."
+msgstr "如果你的模型遵循<ulink type=\"\" url=\"http://java.sun.com/javase/technologies/desktop/javabeans/index.jsp\">JavaBeans</ulink>规范的话, 你还可以把约束标注在属性上. <xref linkend=\"example-property-level\"/>和<xref linkend=\"example-field-level\"/>的唯一不同就是它的约束是定义在属性级别上的."
 
 #. Tag: para
 #: usingvalidator.xml:88
 #, no-c-format
 msgid "The property's getter method has to be annotated, not its setter."
-msgstr ""
+msgstr "如果要定义约束在属性级别上的话,那么只能定义在访问器(getter)上面,不能定义在修改器(setter)上."
 
 #. Tag: title
 #: usingvalidator.xml:93
 #, no-c-format
 msgid "Property level constraint"
-msgstr ""
+msgstr "属性级约束"
 
 #. Tag: programlisting
 #: usingvalidator.xml:95
@@ -194,56 +185,71 @@
 "    }\n"
 "}"
 msgstr ""
+"package com.mycompany;\n"
+"\n"
+"import javax.validation.constraints.AssertTrue;\n"
+"import javax.validation.constraints.NotNull;\n"
+"\n"
+"public class Car {\n"
+"\n"
+"    private String manufacturer;\n"
+"\n"
+"    private boolean isRegistered;\n"
+"      \n"
+"    public Car(String manufacturer, boolean isRegistered) {\n"
+"        super();\n"
+"        this.manufacturer = manufacturer;\n"
+"        this.isRegistered = isRegistered;\n"
+"    }\n"
+"\n"
+"    @NotNull\n"
+"    public String getManufacturer() {\n"
+"        return manufacturer;\n"
+"    }\n"
+"\n"
+"    public void setManufacturer(String manufacturer) {\n"
+"        this.manufacturer = manufacturer;\n"
+"    }\n"
+"\n"
+"    @AssertTrue\n"
+"    public boolean isRegistered() {\n"
+"        return isRegistered;\n"
+"    }\n"
+"\n"
+"    public void setRegistered(boolean isRegistered) {\n"
+"        this.isRegistered = isRegistered;\n"
+"    }\n"
+"}"
 
 #. Tag: para
 #: usingvalidator.xml:98
 #, no-c-format
-msgid ""
-"When using property level constraints property access strategy is used to "
-"access the value to be validated. This means the bean validation provider "
-"accesses the state via the property accessor method."
-msgstr ""
+msgid "When using property level constraints property access strategy is used to access the value to be validated. This means the bean validation provider accesses the state via the property accessor method."
+msgstr "当约束被定义在属性上的时候, 这个属性的值是通过属性访问策略来获取并验证的. 也就是说Bean Validation的实现者会通过该属性的访问器来获取该属性的值并验证."
 
 #. Tag: para
 #: usingvalidator.xml:103
 #, no-c-format
-msgid ""
-"It is recommended to stick either to field <emphasis>or</emphasis> property "
-"annotation within one class. It is not recommended to annotate a field "
-"<emphasis>and</emphasis> the accompanying getter method as this would cause "
-"the field to be validated twice."
-msgstr ""
+msgid "It is recommended to stick either to field <emphasis>or</emphasis> property annotation within one class. It is not recommended to annotate a field <emphasis>and</emphasis> the accompanying getter method as this would cause the field to be validated twice."
+msgstr "我们不推荐在一个类里面混合使用字段级约束和属性级约束!因为这样会导致字段被校验两次."
 
 #. Tag: title
 #: usingvalidator.xml:112
 #, no-c-format
 msgid "Class-level constraints"
-msgstr ""
+msgstr "类级别约束"
 
 #. Tag: para
 #: usingvalidator.xml:115
 #, no-c-format
-msgid ""
-"Last but not least, a constraint can also be placed on class level. When a "
-"constraint annotation is placed on this level the class instance itself "
-"passed to the <classname>ConstraintValidator</classname>. Class level "
-"constraints are useful if it is necessary to inspect more than a single "
-"property of the class to validate it or if a correlation between different "
-"state variables has to be evaluated. In <xref linkend=\"example-class-level"
-"\"/> we add the property <property>passengers</property> to the class "
-"<classname>Car</classname>. We also add the constraint "
-"<classname>PassengerCount</classname> on the class level. We will later see "
-"how we can actually create this custom constraint (see <xref linkend="
-"\"validator-customconstraints\"/>). For now we it is enough to know that "
-"<classname>PassengerCount</classname> will ensure that there cannot be more "
-"passengers in a car than there are seats."
-msgstr ""
+msgid "Last but not least, a constraint can also be placed on class level. When a constraint annotation is placed on this level the class instance itself passed to the <classname>ConstraintValidator</classname>. Class level constraints are useful if it is necessary to inspect more than a single property of the class to validate it or if a correlation between different state variables has to be evaluated. In <xref linkend=\"example-class-level\"/> we add the property <property>passengers</property> to the class <classname>Car</classname>. We also add the constraint <classname>PassengerCount</classname> on the class level. We will later see how we can actually create this custom constraint (see <xref linkend=\"validator-customconstraints\"/>). For now we it is enough to know that <classname>PassengerCount</classname> will ensure that there cannot be more passengers in a car than there are seats."
+msgstr "最后, 一个约束也能够被放在类级别上. 当一个约束被标注在一个类上的时候,这个类的实例对象被传递给<classname>ConstraintValidator</classname>. 当需要同时校验多个属性来验证一个对象或者一个属性在验证的时候需要另外的属性的信息的时候, 类级别的约束会很有用. 在<xref linkend=\"example-class-level\"/>中, 我们给类<classname>Car</classname>添加了一个<property>passengers</property>的属性. 并且我们还标注了一个<classname>PassengerCount</classname>约束在类级别上. 稍后会看到我们是如何创建这个自定义的约束的(<xref linkend=\"validator-customconstraints\"/>). 现在,我们可以知道,<classname>PassengerCount</classname>会保证这个车里乘客的数量不会超过它的座位数."
 
 #. Tag: title
 #: usingvalidator.xml:131
 #, no-c-format
 msgid "Class level constraint"
-msgstr ""
+msgstr "类级别约束"
 
 #. Tag: programlisting
 #: usingvalidator.xml:133
@@ -279,29 +285,53 @@
 "    //getters and setters ...\n"
 "}"
 msgstr ""
+"package com.mycompany;\n"
+"\n"
+"import javax.validation.constraints.Min;\n"
+"import javax.validation.constraints.NotNull;\n"
+"import javax.validation.constraints.Size;\n"
+"\n"
+"@PassengerCount\n"
+"public class Car {\n"
+"\n"
+"    @NotNull\n"
+"    private String manufacturer;\n"
+"\n"
+"    @NotNull\n"
+"    @Size(min = 2, max = 14)\n"
+"    private String licensePlate;\n"
+"\n"
+"    @Min(2)\n"
+"    private int seatCount;\n"
+"    \n"
+"    private List&lt;Person&gt; passengers;\n"
+"    \n"
+"    public Car(String manufacturer, String licencePlate, int seatCount) {\n"
+"        this.manufacturer = manufacturer;\n"
+"        this.licensePlate = licencePlate;\n"
+"        this.seatCount = seatCount;\n"
+"    }\n"
+"\n"
+"    //getters and setters ...\n"
+"}"
 
 #. Tag: title
 #: usingvalidator.xml:138
 #, no-c-format
 msgid "Constraint inheritance"
-msgstr ""
+msgstr "约束继承"
 
 #. Tag: para
 #: usingvalidator.xml:140
 #, no-c-format
-msgid ""
-"When validating an object that implements an interface or extends another "
-"class, all constraint annotations on the implemented interface and parent "
-"class apply in the same manner as the constraints specified on the validated "
-"object itself. To make things clearer let's have a look at the following "
-"example:"
-msgstr ""
+msgid "When validating an object that implements an interface or extends another class, all constraint annotations on the implemented interface and parent class apply in the same manner as the constraints specified on the validated object itself. To make things clearer let's have a look at the following example:"
+msgstr "如果要验证的对象继承于某个父类或者实现了某个接口,那么定义在父类或者接口中的约束会在验证这个对象的时候被自动加载,如同这些约束定义在这个对象所在的类中一样. 让我们来看看下面的示例:"
 
 #. Tag: title
 #: usingvalidator.xml:147
 #, no-c-format
 msgid "Constraint inheritance using RentalCar"
-msgstr ""
+msgstr "约束继承"
 
 #. Tag: programlisting
 #: usingvalidator.xml:149
@@ -330,63 +360,64 @@
 "    }\n"
 "}"
 msgstr ""
+"package com.mycompany;\n"
+"\n"
+"import javax.validation.constraints.NotNull;\n"
+"\n"
+"public class RentalCar extends Car {\n"
+"\n"
+"    private String rentalStation;\n"
+"    \n"
+"    public RentalCar(String manufacturer, String rentalStation) {\n"
+"        super(manufacturer);\n"
+"        this.rentalStation = rentalStation;\n"
+"    }\n"
+"    \n"
+"    @NotNull\n"
+"    public String getRentalStation() {\n"
+"        return rentalStation;\n"
+"    }\n"
+"\n"
+"    public void setRentalStation(String rentalStation) {\n"
+"        this.rentalStation = rentalStation;\n"
+"    }\n"
+"}"
 
 #. Tag: para
 #: usingvalidator.xml:152
 #, no-c-format
-msgid ""
-"Our well-known class <classname>Car</classname> is now extended by "
-"<classname>RentalCar</classname> with the additional property "
-"<property>rentalStation</property>. If an instance of <classname>RentalCar</"
-"classname> is validated, not only the <classname>@NotNull</classname> "
-"constraint on <property>rentalStation</property> is validated, but also the "
-"constraint on <property>manufacturer</property> from the parent class."
-msgstr ""
+msgid "Our well-known class <classname>Car</classname> is now extended by <classname>RentalCar</classname> with the additional property <property>rentalStation</property>. If an instance of <classname>RentalCar</classname> is validated, not only the <classname>@NotNull</classname> constraint on <property>rentalStation</property> is validated, but also the constraint on <property>manufacturer</property> from the parent class."
+msgstr "我们有了一个新的<classname>RentalCar</classname>类继承自前面我们已经见到的<classname>Car</classname>, 这个子类中增加了一个<property>rentalStation</property>属性. 如果校验一个<classname>RentalCar</classname>的实例对象, 那么不仅会验证属性<property>rentalStation</property>上的 <classname>@NotNull</classname>约束是否合法,还会校验父类中的<property>manufacturer</property>属性."
 
 #. Tag: para
 #: usingvalidator.xml:160
 #, no-c-format
-msgid ""
-"The same would hold true, if <classname>Car</classname> were an interface "
-"implemented by <classname>RentalCar</classname>."
-msgstr ""
+msgid "The same would hold true, if <classname>Car</classname> were an interface implemented by <classname>RentalCar</classname>."
+msgstr "如果类<classname>Car</classname>是一个接口类型的话也是一样的效果."
 
 #. Tag: para
 #: usingvalidator.xml:163
 #, no-c-format
-msgid ""
-"Constraint annotations are aggregated if methods are overridden. If "
-"<classname>RentalCar</classname> would override the "
-"<methodname>getManufacturer()</methodname> method from <classname>Car</"
-"classname> any constraints annotated at the overriding method would be "
-"evaluated in addition to the <classname>@NotNull</classname> constraint from "
-"the super-class."
-msgstr ""
+msgid "Constraint annotations are aggregated if methods are overridden. If <classname>RentalCar</classname> would override the <methodname>getManufacturer()</methodname> method from <classname>Car</classname> any constraints annotated at the overriding method would be evaluated in addition to the <classname>@NotNull</classname> constraint from the super-class."
+msgstr "如果类<classname>RentalCar</classname> 重写了父类<classname>Car</classname>的<methodname>getManufacturer()</methodname>方法, 那么定义在父类的这个方法上的约束和子类这个方法上定义的约束都会被校验."
 
 #. Tag: title
 #: usingvalidator.xml:172
 #, no-c-format
 msgid "Object graphs"
-msgstr ""
+msgstr "对象图"
 
 #. Tag: para
 #: usingvalidator.xml:174
 #, no-c-format
-msgid ""
-"The Bean Validation API does not only allow to validate single class "
-"instances but also complete object graphs. To do so, just annotate a field "
-"or property representing a reference to another object with "
-"<classname>@Valid</classname>. If the parent object is validated, all "
-"referenced objects annotated with <classname>@Valid</classname> will be "
-"validated as well (as will be their children etc.). See <xref linkend="
-"\"example-car-with-driver\"/>."
-msgstr ""
+msgid "The Bean Validation API does not only allow to validate single class instances but also complete object graphs. To do so, just annotate a field or property representing a reference to another object with <classname>@Valid</classname>. If the parent object is validated, all referenced objects annotated with <classname>@Valid</classname> will be validated as well (as will be their children etc.). See <xref linkend=\"example-car-with-driver\"/>."
+msgstr "Bean Validation API不仅能够用来校验单个的实例对象,还能够用来校验完整的对象图.要使用这个功能,只需要在一个有关联关系的字段或者属性上标注<classname>@Valid</classname>. 这样,如果一个对象被校验,那么它的所有的标注了<classname>@Valid</classname>的关联对象都会被校验. 请看<xref linkend=\"example-car-with-driver\"/>."
 
 #. Tag: title
 #: usingvalidator.xml:183
 #, no-c-format
 msgid "Class Person"
-msgstr ""
+msgstr "Class Person"
 
 #. Tag: programlisting
 #: usingvalidator.xml:185
@@ -415,12 +446,34 @@
 "    }\n"
 "}"
 msgstr ""
+"package com.mycompany;\n"
+"\n"
+"import javax.validation.constraints.NotNull;\n"
+"\n"
+"public class Person {\n"
+"\n"
+"    @NotNull\n"
+"    private String name;\n"
+"    \n"
+"    public Person(String name) {\n"
+"        super();\n"
+"        this.name = name;\n"
+"    }\n"
+"\n"
+"    public String getName() {\n"
+"        return name;\n"
+"    }\n"
+"\n"
+"    public void setName(String name) {\n"
+"        this.name = name;\n"
+"    }\n"
+"}"
 
 #. Tag: title
 #: usingvalidator.xml:189
 #, no-c-format
 msgid "Adding a driver to the car"
-msgstr ""
+msgstr "Adding a driver to the car"
 
 #. Tag: programlisting
 #: usingvalidator.xml:191
@@ -444,61 +497,65 @@
 "    //getters and setters ...\n"
 "}"
 msgstr ""
+"package com.mycompany;\n"
+"\n"
+"import javax.validation.Valid;\n"
+"import javax.validation.constraints.NotNull;\n"
+"\n"
+"public class Car {\n"
+"\n"
+"    @NotNull\n"
+"    @Valid\n"
+"    private Person driver;\n"
+"    \n"
+"    public Car(Person driver) {\n"
+"        this.driver = driver;\n"
+"    }\n"
+"\n"
+"    //getters and setters ...\n"
+"}"
 
 #. Tag: para
 #: usingvalidator.xml:194
 #, no-c-format
-msgid ""
-"If an instance of <classname>Car</classname> is validated, the referenced "
-"<classname>Person</classname> object will be validated as well, as the "
-"<property>driver</property> field is annotated with <classname>@Valid</"
-"classname>. Therefore the validation of a <classname>Car</classname> will "
-"fail if the <property>name</property> field of the referenced "
-"<classname>Person</classname> instance is <code>null</code>."
-msgstr ""
+msgid "If an instance of <classname>Car</classname> is validated, the referenced <classname>Person</classname> object will be validated as well, as the <property>driver</property> field is annotated with <classname>@Valid</classname>. Therefore the validation of a <classname>Car</classname> will fail if the <property>name</property> field of the referenced <classname>Person</classname> instance is <code>null</code>."
+msgstr "如果校验<classname>Car</classname>的实例对象的话,因为它的<property>driver</property>属性标注了<classname>@Valid</classname>, 那么关联的<classname>Person</classname>也会被校验. 所以,如果对象<classname>Person</classname>的<property>name</property>属性如果是<code>null</code>的话,那么校验会失败."
 
 #. Tag: para
 #: usingvalidator.xml:202
 #, no-c-format
-msgid ""
-"Object graph validation also works for collection-typed fields. That means "
-"any attributes that"
-msgstr ""
+msgid "Object graph validation also works for collection-typed fields. That means any attributes that"
+msgstr "关联校验也适用于集合类型的字段, 也就是说,任何下列的类型:"
 
 #. Tag: para
 #: usingvalidator.xml:207
 #, no-c-format
 msgid "are arrays"
-msgstr ""
+msgstr "数组"
 
 #. Tag: para
 #: usingvalidator.xml:211
 #, no-c-format
-msgid ""
-"implement <classname>java.lang.Iterable</classname> (especially "
-"<classname>Collection</classname>, <classname>List</classname> and "
-"<classname>Set</classname>)"
-msgstr ""
+msgid "implement <classname>java.lang.Iterable</classname> (especially <classname>Collection</classname>, <classname>List</classname> and <classname>Set</classname>)"
+msgstr "实现了<classname>java.lang.Iterable</classname>接口( 例如<classname>Collection</classname>, <classname>List</classname> 和 <classname>Set</classname>)"
 
 #. Tag: para
 #: usingvalidator.xml:217
 #, no-c-format
 msgid "implement <classname>java.util.Map</classname>"
-msgstr ""
+msgstr "实现了<classname>java.util.Map</classname>接口"
 
 #. Tag: para
 #: usingvalidator.xml:221
 #, no-c-format
-msgid ""
-"can be annotated with <classname>@Valid</classname>, which will cause each "
-"contained element to be validated, when the parent object is validated."
-msgstr ""
+msgid "can be annotated with <classname>@Valid</classname>, which will cause each contained element to be validated, when the parent object is validated."
+msgstr "如果标注了<classname>@Valid</classname>, 那么当主对象被校验的时候,这些集合对象中的元素都会被校验."
 
 #. Tag: title
 #: usingvalidator.xml:226
 #, no-c-format
 msgid "Car with a list of passengers"
-msgstr ""
+msgstr "Car with a list of passengers"
 
 #. Tag: programlisting
 #: usingvalidator.xml:228
@@ -525,65 +582,68 @@
 "    //getters and setters ...\n"
 "}"
 msgstr ""
+"package com.mycompany;\n"
+"\n"
+"import java.util.ArrayList;\n"
+"import java.util.List;\n"
+"\n"
+"import javax.validation.Valid;\n"
+"import javax.validation.constraints.NotNull;\n"
+"\n"
+"public class Car {\n"
+"\n"
+"    @NotNull\n"
+"    @Valid\n"
+"    private List&lt;Person&gt; passengers = new ArrayList&lt;Person&gt;();\n"
+"\n"
+"    public Car(List&lt;Person&gt; passengers) {\n"
+"        this.passengers = passengers;\n"
+"    }\n"
+"\n"
+"    //getters and setters ...\n"
+"}"
 
 #. Tag: para
 #: usingvalidator.xml:231
 #, no-c-format
-msgid ""
-"If a <classname>Car</classname> instance is validated, a "
-"<classname>ConstraintValidation</classname> will be created, if any of the "
-"<classname>Person</classname> objects contained in the <property>passengers</"
-"property> list has a <code>null</code> name."
-msgstr ""
+msgid "If a <classname>Car</classname> instance is validated, a <classname>ConstraintValidation</classname> will be created, if any of the <classname>Person</classname> objects contained in the <property>passengers</property> list has a <code>null</code> name."
+msgstr "当校验一个<classname>Car</classname>的实例的时候,如果<property>passengers</property> list中包含的任何一个<classname>Person</classname>对象没有名字的话,都会导致校验失败(a <classname>ConstraintValidation</classname> will be created)."
 
 #. Tag: para
 #: usingvalidator.xml:235
 #, no-c-format
-msgid ""
-"<classname>null</classname> values are getting ignored when validating "
-"object graphs."
-msgstr ""
+msgid "<classname>null</classname> values are getting ignored when validating object graphs."
+msgstr "对象图校验的时候是会被忽略<classname>null</classname>值的."
 
 #. Tag: title
 #: usingvalidator.xml:242
 #, no-c-format
 msgid "Validating constraints"
-msgstr ""
+msgstr "校验约束"
 
 #. Tag: para
 #: usingvalidator.xml:244
 #, no-c-format
-msgid ""
-"The <classname>Validator</classname> interface is the main entry point to "
-"Bean Validation. In <xref linkend=\"section-validator-instance\"/> we will "
-"first show how to obtain an <classname>Validator</classname> instance. "
-"Afterwards we will learn how to use the different methods of the "
-"<classname>Validator</classname> interface."
-msgstr ""
+msgid "The <classname>Validator</classname> interface is the main entry point to Bean Validation. In <xref linkend=\"section-validator-instance\"/> we will first show how to obtain an <classname>Validator</classname> instance. Afterwards we will learn how to use the different methods of the <classname>Validator</classname> interface."
+msgstr "<classname>Validator</classname> 是Bean Validation中最主要的接口, 我们会在<xref linkend=\"section-validator-instance\"/>中详细介绍如何获取一个<classname>Validator</classname>的实例, 现在先让我们来看看如何使用<classname>Validator</classname>接口中的各个方法. "
 
 #. Tag: title
 #: usingvalidator.xml:251
 #, no-c-format
 msgid "Obtaining a <classname>Validator</classname> instance"
-msgstr ""
+msgstr "获取一个<classname>Validator</classname>的实例"
 
 #. Tag: para
 #: usingvalidator.xml:253
 #, no-c-format
-msgid ""
-"The first step towards validating an entity instance is to get hold of a "
-"<classname>Validator</classname> instance. The road to this instance leads "
-"via the <classname>Validation</classname> class and a "
-"<classname>ValidatorFactory</classname>. The easiest way is to use the "
-"static <methodname>Validation.buildDefaultValidatorFactory()</methodname> "
-"method:"
-msgstr ""
+msgid "The first step towards validating an entity instance is to get hold of a <classname>Validator</classname> instance. The road to this instance leads via the <classname>Validation</classname> class and a <classname>ValidatorFactory</classname>. The easiest way is to use the static <methodname>Validation.buildDefaultValidatorFactory()</methodname> method:"
+msgstr "对一个实体对象验证之前首先需要有个<classname>Validator</classname>对象, 而这个对象是需要通过<classname>Validation</classname> 类和 <classname>ValidatorFactory</classname>来创建的. 最简单的方法是调用<methodname>Validation.buildDefaultValidatorFactory()</methodname> 这个静态方法. "
 
 #. Tag: title
 #: usingvalidator.xml:262
 #, no-c-format
 msgid "Validation.buildDefaultValidatorFactory()"
-msgstr ""
+msgstr "Validation.buildDefaultValidatorFactory()"
 
 #. Tag: programlisting
 #: usingvalidator.xml:264
@@ -592,72 +652,56 @@
 "ValidatorFactory factory = Validation.buildDefaultValidatorFactory();\n"
 "Validator validator = factory.getValidator();"
 msgstr ""
+"ValidatorFactory factory = Validation.buildDefaultValidatorFactory();\n"
+"Validator validator = factory.getValidator();"
 
 #. Tag: para
 #: usingvalidator.xml:267
 #, no-c-format
-msgid ""
-"For other ways of obtaining a Validator instance see <xref linkend="
-"\"validator-bootstrapping\"/>. For now we just want to see how we can use "
-"the <classname>Validator</classname> instance to validate entity instances."
-msgstr ""
+msgid "For other ways of obtaining a Validator instance see <xref linkend=\"validator-bootstrapping\"/>. For now we just want to see how we can use the <classname>Validator</classname> instance to validate entity instances."
+msgstr "<xref linkend=\"validator-bootstrapping\"/>介绍了其他的获取Validator实例的方法. 现在我们的目标是学习如何使用<classname>Validator</classname> 来校验实体对象."
 
 #. Tag: title
 #: usingvalidator.xml:274
 #, no-c-format
 msgid "Validator methods"
-msgstr ""
+msgstr "Validator中的方法"
 
 #. Tag: para
 #: usingvalidator.xml:276
 #, no-c-format
-msgid ""
-"The <classname>Validator</classname> interface contains three methods that "
-"can be used to either validate entire entities or just a single properties "
-"of the entity."
-msgstr ""
+msgid "The <classname>Validator</classname> interface contains three methods that can be used to either validate entire entities or just a single properties of the entity."
+msgstr "<classname>Validator</classname>中有三个方法能够被用来校验整个实体对象或者实体对象中的属性."
 
 #. Tag: para
 #: usingvalidator.xml:280
 #, no-c-format
-msgid ""
-"All three methods return a <classname>Set&lt;ConstraintViolation&gt;</"
-"classname>. The set is empty, if the validation succeeds. Otherwise a "
-"<classname>ConstraintViolation</classname> instance is added for each "
-"violated constraint."
-msgstr ""
+msgid "All three methods return a <classname>Set&lt;ConstraintViolation&gt;</classname>. The set is empty, if the validation succeeds. Otherwise a <classname>ConstraintViolation</classname> instance is added for each violated constraint."
+msgstr "这三个方法都会返回一个<classname>Set&lt;ConstraintViolation&gt;</classname>对象, 如果整个验证过程没有发现问题的话,那么这个set是空的, 否则, 每个违反约束的地方都会被包装成一个<classname>ConstraintViolation</classname>的实例然后添加到set当中. "
 
 #. Tag: para
 #: usingvalidator.xml:286
 #, no-c-format
-msgid ""
-"All the validation methods have a var-args parameter which can be used to "
-"specify, which validation groups shall be considered when performing the "
-"validation. If the parameter is not specified the default validation group "
-"(<classname>javax.validation.groups.Default</classname>) will be used. We "
-"will go into more detail on the topic of validation groups in"
-msgstr ""
+msgid "All the validation methods have a var-args parameter which can be used to specify, which validation groups shall be considered when performing the validation. If the parameter is not specified the default validation group (<classname>javax.validation.groups.Default</classname>) will be used. We will go into more detail on the topic of validation groups in"
+msgstr "所有的校验方法都接收零个或多个用来定义此次校验是基于哪个校验组的参数. 如果没有给出这个参数的话, 那么此次校验将会基于默认的校验组 (<classname>javax.validation.groups.Default</classname>). "
 
 #. Tag: methodname
 #: usingvalidator.xml:295
 #, no-c-format
 msgid "validate"
-msgstr ""
+msgstr "validate"
 
 #. Tag: para
 #: usingvalidator.xml:297
 #, no-c-format
-msgid ""
-"Use the <methodname>validate()</methodname> method to perform validation of "
-"all constraints of a given entity instance (see <xref linkend=\"example-"
-"validator-validate\"/> )."
-msgstr ""
+msgid "Use the <methodname>validate()</methodname> method to perform validation of all constraints of a given entity instance (see <xref linkend=\"example-validator-validate\"/> )."
+msgstr "使用<methodname>validate()</methodname>方法对一个给定的实体对象中定义的所有约束条件进行校验 (<xref linkend=\"example-validator-validate\"/> )."
 
 #. Tag: title
 #: usingvalidator.xml:302
 #, no-c-format
 msgid "Usage of <methodname>Validator.validate()</methodname>"
-msgstr ""
+msgstr "<methodname>Validator.validate()</methodname> 使用方法"
 
 #. Tag: programlisting
 #: usingvalidator.xml:305
@@ -668,381 +712,337 @@
 "\n"
 "Car car = new Car(null);\n"
 "\n"
-"Set&lt;ConstraintViolation&lt;Car&gt;&gt; constraintViolations = validator."
-"validate(car);\n"
+"Set&lt;ConstraintViolation&lt;Car&gt;&gt; constraintViolations = validator.validate(car);\n"
 "\n"
 "assertEquals(1, constraintViolations.size());\n"
-"assertEquals(\"may not be null\", constraintViolations.iterator().next()."
-"getMessage());"
+"assertEquals(\"may not be null\", constraintViolations.iterator().next().getMessage());"
 msgstr ""
+"ValidatorFactory factory = Validation.buildDefaultValidatorFactory();\n"
+"Validator validator = factory.getValidator();\n"
+"\n"
+"Car car = new Car(null);\n"
+"\n"
+"Set&lt;ConstraintViolation&lt;Car&gt;&gt; constraintViolations = validator.validate(car);\n"
+"\n"
+"assertEquals(1, constraintViolations.size());\n"
+"assertEquals(\"may not be null\", constraintViolations.iterator().next().getMessage());"
 
 #. Tag: methodname
 #: usingvalidator.xml:310
 #, no-c-format
 msgid "validateProperty"
-msgstr ""
+msgstr "validateProperty"
 
 #. Tag: para
 #: usingvalidator.xml:312
 #, no-c-format
-msgid ""
-"With help of the <methodname>validateProperty()</methodname> a single named "
-"property of a given object can be validated. The property name is the "
-"JavaBeans property name."
-msgstr ""
+msgid "With help of the <methodname>validateProperty()</methodname> a single named property of a given object can be validated. The property name is the JavaBeans property name."
+msgstr "通过<methodname>validateProperty()</methodname>可以对一个给定实体对象的单个属性进行校验. 其中属性名称需要符合JavaBean规范中定义的属性名称."
 
 #. Tag: title
 #: usingvalidator.xml:317
 #, no-c-format
 msgid "Usage of <methodname>Validator.validateProperty()</methodname>"
-msgstr ""
+msgstr "<methodname>Validator.validateProperty()</methodname>使用方法"
 
 #. Tag: programlisting
 #: usingvalidator.xml:320
 #, no-c-format
 msgid ""
-"Validator validator = Validation.buildDefaultValidatorFactory().getValidator"
-"();\n"
+"Validator validator = Validation.buildDefaultValidatorFactory().getValidator();\n"
 "\n"
 "Car car = new Car(null);\n"
 "\n"
-"Set&lt;ConstraintViolation&lt;Car&gt;&gt; constraintViolations = validator."
-"validateProperty(car, \"manufacturer\");\n"
+"Set&lt;ConstraintViolation&lt;Car&gt;&gt; constraintViolations = validator.validateProperty(car, \"manufacturer\");\n"
 "\n"
 "assertEquals(1, constraintViolations.size());\n"
-"assertEquals(\"may not be null\", constraintViolations.iterator().next()."
-"getMessage());"
+"assertEquals(\"may not be null\", constraintViolations.iterator().next().getMessage());"
 msgstr ""
+"Validator validator = Validation.buildDefaultValidatorFactory().getValidator();\n"
+"\n"
+"Car car = new Car(null);\n"
+"\n"
+"Set&lt;ConstraintViolation&lt;Car&gt;&gt; constraintViolations = validator.validateProperty(car, \"manufacturer\");\n"
+"\n"
+"assertEquals(1, constraintViolations.size());\n"
+"assertEquals(\"may not be null\", constraintViolations.iterator().next().getMessage());"
 
 #. Tag: para
 #: usingvalidator.xml:323
 #, no-c-format
-msgid ""
-"<methodname>Validator.validateProperty</methodname> is for example used in "
-"the integration of Bean Validation into JSF 2 (see <xref linkend=\"section-"
-"presentation-layer\"/>)."
-msgstr ""
+msgid "<methodname>Validator.validateProperty</methodname> is for example used in the integration of Bean Validation into JSF 2 (see <xref linkend=\"section-presentation-layer\"/>)."
+msgstr "例如, <methodname>Validator.validateProperty</methodname>可以被用在把Bean Validation集成进JSF 2中的时候使用 (请参考 <xref linkend=\"section-presentation-layer\"/>)."
 
 #. Tag: methodname
 #: usingvalidator.xml:329
 #, no-c-format
 msgid "validateValue"
-msgstr ""
+msgstr "validateValue"
 
 #. Tag: para
 #: usingvalidator.xml:331
 #, no-c-format
-msgid ""
-"Using the <methodname>validateValue() </methodname>method you can check, "
-"whether a single property of a given class can be validated successfully, if "
-"the property had the specified value:"
-msgstr ""
+msgid "Using the <methodname>validateValue() </methodname>method you can check, whether a single property of a given class can be validated successfully, if the property had the specified value:"
+msgstr "通过<methodname>validateValue() </methodname>方法,你能够校验如果把一个特定的值赋给一个类的某一个属性的话,是否会违反此类中定义的约束条件."
 
 #. Tag: title
 #: usingvalidator.xml:336
 #, no-c-format
 msgid "Usage of <methodname>Validator.validateValue()</methodname>"
-msgstr ""
+msgstr "<methodname>Validator.validateValue()</methodname> 使用方法"
 
 #. Tag: programlisting
 #: usingvalidator.xml:339
 #, no-c-format
 msgid ""
-"Validator validator = Validation.buildDefaultValidatorFactory().getValidator"
-"();\n"
+"Validator validator = Validation.buildDefaultValidatorFactory().getValidator();\n"
 "\n"
-"Set&lt;ConstraintViolation&lt;Car&gt;&gt; constraintViolations = validator."
-"validateValue(Car.class, \"manufacturer\", null);\n"
+"Set&lt;ConstraintViolation&lt;Car&gt;&gt; constraintViolations = validator.validateValue(Car.class, \"manufacturer\", null);\n"
 "\n"
 "assertEquals(1, constraintViolations.size());\n"
-"assertEquals(\"may not be null\", constraintViolations.iterator().next()."
-"getMessage());"
+"assertEquals(\"may not be null\", constraintViolations.iterator().next().getMessage());"
 msgstr ""
+"Validator validator = Validation.buildDefaultValidatorFactory().getValidator();\n"
+"\n"
+"Set&lt;ConstraintViolation&lt;Car&gt;&gt; constraintViolations = validator.validateValue(Car.class, \"manufacturer\", null);\n"
+"\n"
+"assertEquals(1, constraintViolations.size());\n"
+"assertEquals(\"may not be null\", constraintViolations.iterator().next().getMessage());"
 
 #. Tag: para
 #: usingvalidator.xml:343
 #, no-c-format
-msgid ""
-"<classname>@Valid</classname> is not honored by <methodname>validateProperty"
-"()</methodname> or <methodname>validateValue()</methodname>."
-msgstr ""
+msgid "<classname>@Valid</classname> is not honored by <methodname>validateProperty()</methodname> or <methodname>validateValue()</methodname>."
+msgstr "<methodname>validateProperty()</methodname> 和 <methodname>validateValue()</methodname> 会忽略被验证属性上定义的<classname>@Valid</classname>."
 
 #. Tag: title
 #: usingvalidator.xml:351
 #, no-c-format
 msgid "<classname>ConstraintViolation</classname> methods"
-msgstr ""
+msgstr "<classname>ConstraintViolation</classname> 中的方法"
 
 #. Tag: para
 #: usingvalidator.xml:353
 #, no-c-format
-msgid ""
-"Now it is time to have a closer look at what a "
-"<classname>ConstraintViolation</classname>. Using the different methods of "
-"<classname>ConstraintViolation</classname> a lot of useful information about "
-"the cause of the validation failure can be determined. <xref linkend=\"table-"
-"constraint-violation\"/> gives an overview of these methods:"
-msgstr ""
+msgid "Now it is time to have a closer look at what a <classname>ConstraintViolation</classname>. Using the different methods of <classname>ConstraintViolation</classname> a lot of useful information about the cause of the validation failure can be determined. <xref linkend=\"table-constraint-violation\"/> gives an overview of these methods:"
+msgstr "现在是时候看看究竟<classname>ConstraintViolation</classname>是什么了. <classname>ConstraintViolation</classname>中包含了很多方法能够帮你快速定位究竟是什么导致了校验失败.<xref linkend=\"table-constraint-violation\"/> 列出了这些方法:"
 
 #. Tag: title
 #: usingvalidator.xml:361
 #, no-c-format
 msgid "The various <classname>ConstraintViolation</classname> methods"
-msgstr ""
+msgstr "<classname>ConstraintViolation</classname> 中的方法"
 
 #. Tag: entry
 #: usingvalidator.xml:367
 #, no-c-format
 msgid "Method"
-msgstr ""
+msgstr "方法名"
 
 #. Tag: entry
 #: usingvalidator.xml:369
 #, no-c-format
 msgid "Usage"
-msgstr ""
+msgstr "作用"
 
 #. Tag: entry
 #: usingvalidator.xml:371
 #, no-c-format
 msgid "Example (referring to <xref linkend=\"example-validator-validate\"/>)"
-msgstr ""
+msgstr "示例 (请参考<xref linkend=\"example-validator-validate\"/>)"
 
 #. Tag: methodname
 #: usingvalidator.xml:378
 #, no-c-format
 msgid "getMessage()"
-msgstr ""
+msgstr "getMessage()"
 
 #. Tag: entry
 #: usingvalidator.xml:380
 #, no-c-format
 msgid "The interpolated error message."
-msgstr ""
+msgstr "获取(经过翻译的)校验错误信息"
 
 #. Tag: entry
 #: usingvalidator.xml:382
 #, no-c-format
 msgid "may not be null"
-msgstr ""
+msgstr "may not be null"
 
 #. Tag: methodname
 #: usingvalidator.xml:386
 #, no-c-format
 msgid "getMessageTemplate()"
-msgstr ""
+msgstr "getMessageTemplate()"
 
 #. Tag: entry
 #: usingvalidator.xml:388
 #, no-c-format
 msgid "The non-interpolated error message."
-msgstr ""
+msgstr "获取错误信息模版"
 
 #. Tag: entry
 #: usingvalidator.xml:390
 #, no-c-format
 msgid "{javax.validation.constraints.NotNull.message}"
-msgstr ""
+msgstr "{javax.validation.constraints.NotNull.message}"
 
 #. Tag: methodname
 #: usingvalidator.xml:394
 #, no-c-format
 msgid "getRootBean()"
-msgstr ""
+msgstr "getRootBean()"
 
 #. Tag: entry
 #: usingvalidator.xml:396
 #, no-c-format
 msgid "The root bean being validated."
-msgstr ""
+msgstr "获取被校验的根实体对象"
 
 #. Tag: entry
-#: usingvalidator.xml:398 usingvalidator.xml:416
+#: usingvalidator.xml:398
+#: usingvalidator.xml:416
 #, no-c-format
 msgid "<entry>car</entry>"
-msgstr ""
+msgstr "<entry>car</entry>"
 
 #. Tag: methodname
 #: usingvalidator.xml:402
 #, no-c-format
 msgid "getRootBeanClass()"
-msgstr ""
+msgstr "getRootBeanClass()"
 
 #. Tag: entry
 #: usingvalidator.xml:404
 #, no-c-format
 msgid "The class of the root bean being validated."
-msgstr ""
+msgstr "获取被校验的根实体类."
 
 #. Tag: entry
 #: usingvalidator.xml:406
 #, no-c-format
 msgid "Car.class"
-msgstr ""
+msgstr "Car.class"
 
 #. Tag: methodname
 #: usingvalidator.xml:410
 #, no-c-format
 msgid "getLeafBean()"
-msgstr ""
+msgstr "getLeafBean()"
 
 #. Tag: entry
 #: usingvalidator.xml:412
 #, no-c-format
-msgid ""
-"If a bean constraint, the bean instance the constraint is applied on. If a "
-"property constraint, the bean instance hosting the property the constraint "
-"is applied on."
-msgstr ""
+msgid "If a bean constraint, the bean instance the constraint is applied on. If a property constraint, the bean instance hosting the property the constraint is applied on."
+msgstr "如果约束是添加在一个bean(实体对象)上的,那么则返回这个bean的实例, 如果是约束是定义在一个属性上的, 则返回这个属性所属的bean的实例对象. "
 
 #. Tag: methodname
 #: usingvalidator.xml:420
 #, no-c-format
 msgid "getPropertyPath()"
-msgstr ""
+msgstr "getPropertyPath()"
 
 #. Tag: entry
 #: usingvalidator.xml:422
 #, no-c-format
 msgid "The property path to the value from root bean."
-msgstr ""
+msgstr "从被验证的根对象到被验证的属性的路径."
 
 #. Tag: methodname
 #: usingvalidator.xml:428
 #, no-c-format
 msgid "getInvalidValue()"
-msgstr ""
+msgstr "getInvalidValue()"
 
 #. Tag: entry
 #: usingvalidator.xml:430
 #, no-c-format
 msgid "The value failing to pass the constraint."
-msgstr ""
+msgstr "倒是校验失败的值."
 
 #. Tag: entry
 #: usingvalidator.xml:432
 #, no-c-format
 msgid "passengers"
-msgstr ""
+msgstr "passengers"
 
 #. Tag: methodname
 #: usingvalidator.xml:436
 #, no-c-format
 msgid "getConstraintDescriptor()"
-msgstr ""
+msgstr "getConstraintDescriptor()"
 
 #. Tag: entry
 #: usingvalidator.xml:438
 #, no-c-format
 msgid "Constraint metadata reported to fail."
-msgstr ""
+msgstr "导致校验失败的约束定义."
 
 #. Tag: title
 #: usingvalidator.xml:448
 #, no-c-format
 msgid "Message interpolation"
-msgstr ""
+msgstr "验证失败提示信息解析"
 
 #. Tag: para
 #: usingvalidator.xml:450
 #, no-c-format
-msgid ""
-"As we will see in <xref linkend=\"validator-customconstraints\"/> each "
-"constraint definition must define a default message descriptor. This message "
-"can be overridden at declaration time using the <methodname>message</"
-"methodname> attribute of the constraint. You can see this in <xref linkend="
-"\"example-driver\"/>. This message descriptors get interpolated when a "
-"constraint validation fails using the configured "
-"<classname>MessageInterpolator</classname>. The interpolator will try to "
-"resolve any message parameters, meaning string literals enclosed in braces. "
-"In order to resolve these parameters Hibernate Validator's default "
-"<classname>MessageInterpolator</classname> first recursively resolves "
-"parameters against a custom <classname>ResourceBundle</classname> called "
-"<filename>ValidationMessages.properties</filename> at the root of the "
-"classpath (It is up to you to create this file). If no further replacements "
-"are possible against the custom bundle the default "
-"<classname>ResourceBundle</classname> under <filename>/org/hibernate/"
-"validator/ValidationMessages.properties</filename> gets evaluated. If a "
-"replacement occurs against the default bundle the algorithm looks again at "
-"the custom bundle (and so on). Once no further replacements against these "
-"two resource bundles are possible remaining parameters are getting resolved "
-"against the attributes of the constraint to be validated."
-msgstr ""
+msgid "As we will see in <xref linkend=\"validator-customconstraints\"/> each constraint definition must define a default message descriptor. This message can be overridden at declaration time using the <methodname>message</methodname> attribute of the constraint. You can see this in <xref linkend=\"example-driver\"/>. This message descriptors get interpolated when a constraint validation fails using the configured <classname>MessageInterpolator</classname>. The interpolator will try to resolve any message parameters, meaning string literals enclosed in braces. In order to resolve these parameters Hibernate Validator's default <classname>MessageInterpolator</classname> first recursively resolves parameters against a custom <classname>ResourceBundle</classname> called <filename>ValidationMessages.properties</filename> at the root of the classpath (It is up to you to create this file). If no further replacements are possible against the custom bundle the default <classname>Re!
 sourceBundle</classname> under <filename>/org/hibernate/validator/ValidationMessages.properties</filename> gets evaluated. If a replacement occurs against the default bundle the algorithm looks again at the custom bundle (and so on). Once no further replacements against these two resource bundles are possible remaining parameters are getting resolved against the attributes of the constraint to be validated."
+msgstr "在<xref linkend=\"validator-customconstraints\"/>中,我们会看到,每个约束定义中都包含有一个用于提示验证结果的消息模版, 并且在声明一个约束条件的时候,你可以通过这个约束中的<methodname>message</methodname>属性来重写默认的消息模版, 可以参考<xref linkend=\"example-driver\"/>. 如果在校验的时候,这个约束条件没有通过,那么你配置的<classname>MessageInterpolator</classname>会被用来当成解析器来解析这个约束中定义的消息模版, 从而得到最终的验证失败提示信息. 这个解析器会尝试解析模版中的占位符( 大括号括起来的字符串 ). 其中, Hibernate Validator中默认的解析器 (<classname>MessageInterpolator</classname>) 会先在类路径下找名称为<filename>ValidationMessages.properties</filename>的<classname>ResourceBundle</classname>, 然后将占位符和这个文件中定义的resource进行匹配,如果匹配不成功的话!
 ,那么它会继续匹配Hibernate Validator自带的位于<filename>/org/hibernate/validator/ValidationMessages.properties</filename>的<classname>ResourceBundle</classname>, 依次类推,递归的匹配所有的占位符."
 
 #. Tag: para
 #: usingvalidator.xml:473
 #, no-c-format
-msgid ""
-"Since the braces { and } have special meaning in the messages they need to "
-"be escaped if they are used literally. The following The following rules "
-"apply:"
-msgstr ""
+msgid "Since the braces { and } have special meaning in the messages they need to be escaped if they are used literally. The following The following rules apply:"
+msgstr "因为大括号{ 在这里是特殊字符,所以,你可以通过使用反斜线来对其进行转义, 例如:"
 
 #. Tag: para
 #: usingvalidator.xml:477
 #, no-c-format
 msgid "\\{ is considered as the literal {"
-msgstr ""
+msgstr "\\{ 被转义成 {"
 
 #. Tag: para
 #: usingvalidator.xml:481
 #, no-c-format
 msgid "\\} is considered as the literal }"
-msgstr ""
+msgstr "\\} 被转义成 }"
 
 #. Tag: para
 #: usingvalidator.xml:485
 #, no-c-format
 msgid "\\\\ is considered as the literal \\"
-msgstr ""
+msgstr "\\\\ 被转义成 \\"
 
 #. Tag: para
 #: usingvalidator.xml:489
 #, no-c-format
-msgid ""
-"If the default message interpolator does not fit your requirements it is "
-"possible to plug a custom <classname>MessageInterpolator</classname> when "
-"the <classname>ValidatorFactory</classname> gets created. This can be seen "
-"in <xref linkend=\"validator-bootstrapping\"/>."
-msgstr ""
+msgid "If the default message interpolator does not fit your requirements it is possible to plug a custom <classname>MessageInterpolator</classname> when the <classname>ValidatorFactory</classname> gets created. This can be seen in <xref linkend=\"validator-bootstrapping\"/>."
+msgstr "如果默认的消息解析器不能够满足你的需求,那么你也可以在创建<classname>ValidatorFactory</classname>的时候, 将其替换为一个你自定义的<classname>MessageInterpolator</classname>, 具体请参考 <xref linkend=\"validator-bootstrapping\"/>."
 
 #. Tag: title
 #: usingvalidator.xml:498
 #, no-c-format
 msgid "Validating groups"
-msgstr ""
+msgstr "验证组"
 
 #. Tag: para
 #: usingvalidator.xml:500
 #, no-c-format
-msgid ""
-"Groups allow you to restrict the set of constraints applied during "
-"validation. This makes for example wizard like validation possible where in "
-"each step only a specified subset of constraints get validated. The groups "
-"targeted are passed as var-args parameters to <methodname>validate</"
-"methodname>, <methodname>validateProperty</methodname> and "
-"<methodname>validateValue</methodname>. Let's have a look at an extended "
-"<classname>Car</classname> with <classname>Driver</classname> example. First "
-"we have the class <classname>Person</classname> (<xref linkend=\"example-"
-"person\"/>) which has a <classname>@NotNull </classname>constraint on "
-"<property>name</property>. Since no group is specified for this annotation "
-"its default group is <classname>javax.validation.groups.Default</classname>."
-msgstr ""
+msgid "Groups allow you to restrict the set of constraints applied during validation. This makes for example wizard like validation possible where in each step only a specified subset of constraints get validated. The groups targeted are passed as var-args parameters to <methodname>validate</methodname>, <methodname>validateProperty</methodname> and <methodname>validateValue</methodname>. Let's have a look at an extended <classname>Car</classname> with <classname>Driver</classname> example. First we have the class <classname>Person</classname> (<xref linkend=\"example-person\"/>) which has a <classname>@NotNull </classname>constraint on <property>name</property>. Since no group is specified for this annotation its default group is <classname>javax.validation.groups.Default</classname>."
+msgstr "验证组能够让你在验证的时候选择应用哪些约束条件. 这样在某些情况下( 例如向导 ) 就可以对每一步进行校验的时候, 选取对应这步的那些约束条件进行验证了. 校验组是通过可变参数传递给<methodname>validate</methodname>, <methodname>validateProperty</methodname> 和 <methodname>validateValue</methodname>的. 让我们来看个例子, 这个实例扩展了上面的<classname>Car</classname>类,又为其添加了一个新的<classname>Driver</classname>. 首先, 类<classname>Person</classname> (<xref linkend=\"example-person\"/>) 的<property>name</property>属性上定义了一个<classname>@NotNull </classname>的约束条件. 因为没有明确指定这个约束条件属于哪个组,所以它被归类到默认组 (<classname>javax.validation.groups.Default</classname>)."
 
 #. Tag: para
 #: usingvalidator.xml:515
 #, no-c-format
-msgid ""
-"When more than one group is requested, the order in which the groups are "
-"evaluated is not deterministic. If no group is specified the default group "
-"<classname>javax.validation.groups.Default</classname> is assumed."
-msgstr ""
+msgid "When more than one group is requested, the order in which the groups are evaluated is not deterministic. If no group is specified the default group <classname>javax.validation.groups.Default</classname> is assumed."
+msgstr "如果某个约束条件属于多个组,那么各个组在校验时候的顺序是不可预知的. 如果一个约束条件没有被指明属于哪个组,那么它就会被归类到默认组(<classname>javax.validation.groups.Default</classname>)."
 
 #. Tag: title
 #: usingvalidator.xml:522
 #, no-c-format
 msgid "Person"
-msgstr ""
+msgstr "Person"
 
 #. Tag: programlisting
 #: usingvalidator.xml:524
@@ -1058,51 +1058,43 @@
 "    // getters and setters ...\n"
 "}"
 msgstr ""
+"public class Person {\n"
+"    @NotNull\n"
+"    private String name;\n"
+"\n"
+"    public Person(String name) {\n"
+"        this.name = name;\n"
+"    }\n"
+"    // getters and setters ...\n"
+"}"
 
 #. Tag: para
 #: usingvalidator.xml:527
 #, no-c-format
-msgid ""
-"Next we have the class <classname>Driver</classname> (<xref linkend="
-"\"example-driver\"/>) extending <classname>Person</classname>. Here we are "
-"adding the properties <property>age</property> and "
-"<property>hasDrivingLicense</property>. In order to drive you must be at "
-"least 18 (<classname>@Min(18)</classname>) and you must have a driving "
-"license (<classname>@AssertTrue</classname>). Both constraints defined on "
-"these properties belong to the group <classname>DriverChecks</classname>. As "
-"you can see in <xref linkend=\"example-group-interfaces\"/> the group "
-"<classname>DriverChecks</classname> is just a simple tagging interface. "
-"Using interfaces makes the usage of groups type safe and allows for easy "
-"refactoring. It also means that groups can inherit from each other via class "
-"inheritance."
-msgstr ""
+msgid "Next we have the class <classname>Driver</classname> (<xref linkend=\"example-driver\"/>) extending <classname>Person</classname>. Here we are adding the properties <property>age</property> and <property>hasDrivingLicense</property>. In order to drive you must be at least 18 (<classname>@Min(18)</classname>) and you must have a driving license (<classname>@AssertTrue</classname>). Both constraints defined on these properties belong to the group <classname>DriverChecks</classname>. As you can see in <xref linkend=\"example-group-interfaces\"/> the group <classname>DriverChecks</classname> is just a simple tagging interface. Using interfaces makes the usage of groups type safe and allows for easy refactoring. It also means that groups can inherit from each other via class inheritance."
+msgstr "接下来, 我们让类<classname>Driver</classname> (<xref linkend=\"example-driver\"/>) 继承自类<classname>Person</classname>. 然后添加两个属性,分别是<property>age</property> 和 <property>hasDrivingLicense</property>. 对于一个司机来说, 要开车的话, 必须满足两个条件, 年满18周岁 (<classname>@Min(18)</classname>) 和你的有驾照(<classname>@AssertTrue</classname>). 这两个约束条件分别定义在那两个属性上, 并且把他们都归于<classname>DriverChecks</classname>组. 通过<xref linkend=\"example-group-interfaces\"/>, 你可以看到, \"<classname>DriverChecks</classname>组\" 就是一个简单的标记接口. 使用接口( 而不是字符串) 可以做到类型安全,并且接口比字符串更加对重构友好, 另外, 接口还意味着一个组可以继承别的组."
 
 #. Tag: para
 #: usingvalidator.xml:541
 #, no-c-format
-msgid ""
-"The Bean Validation specification does not enforce that groups have to be "
-"interfaces. Non interface classes could be used as well, but we recommend to "
-"stick to interfaces."
-msgstr ""
+msgid "The Bean Validation specification does not enforce that groups have to be interfaces. Non interface classes could be used as well, but we recommend to stick to interfaces."
+msgstr "Bean Validation并没有规定组必须是用接口来定义, 所以非接口的类也是被接收的,但是我们推荐使用接口."
 
 #. Tag: title
 #: usingvalidator.xml:547
 #, no-c-format
 msgid "Driver"
-msgstr ""
+msgstr "Driver"
 
 #. Tag: programlisting
 #: usingvalidator.xml:549
 #, no-c-format
 msgid ""
 "public class Driver extends Person {\n"
-"    @Min(value = 18, message = \"You have to be 18 to drive a car\", groups "
-"= DriverChecks.class)\n"
+"    @Min(value = 18, message = \"You have to be 18 to drive a car\", groups = DriverChecks.class)\n"
 "    public int age;\n"
 "\n"
-"    @AssertTrue(message = \"You first have to pass the driving test\", "
-"groups = DriverChecks.class)\n"
+"    @AssertTrue(message = \"You first have to pass the driving test\", groups = DriverChecks.class)\n"
 "    public boolean hasDrivingLicense;\n"
 "\n"
 "    public Driver(String name) {\n"
@@ -1122,12 +1114,35 @@
 "    }\n"
 "}"
 msgstr ""
+"public class Driver extends Person {\n"
+"    @Min(value = 18, message = \"You have to be 18 to drive a car\", groups = DriverChecks.class)\n"
+"    public int age;\n"
+"\n"
+"    @AssertTrue(message = \"You first have to pass the driving test\", groups = DriverChecks.class)\n"
+"    public boolean hasDrivingLicense;\n"
+"\n"
+"    public Driver(String name) {\n"
+"        super( name );\n"
+"    }\n"
+"\n"
+"    public void passedDrivingTest(boolean b) {\n"
+"        hasDrivingLicense = b;\n"
+"    }\n"
+"\n"
+"    public int getAge() {\n"
+"        return age;\n"
+"    }\n"
+"\n"
+"    public void setAge(int age) {\n"
+"        this.age = age;\n"
+"    }\n"
+"}"
 
 #. Tag: title
 #: usingvalidator.xml:553
 #, no-c-format
 msgid "Group interfaces"
-msgstr ""
+msgstr "Group interfaces"
 
 #. Tag: programlisting
 #: usingvalidator.xml:555
@@ -1139,21 +1154,23 @@
 "public interface CarChecks {\n"
 "}"
 msgstr ""
+"public interface DriverChecks {\n"
+"}\n"
+"\n"
+"public interface CarChecks {\n"
+"}"
 
 #. Tag: para
 #: usingvalidator.xml:558
 #, no-c-format
-msgid ""
-"Last but not least we add the property <property>passedVehicleInspection</"
-"property> to the <classname>Car</classname> class (<xref linkend=\"example-"
-"car\"/>) indicating whether a car passed the road worthy tests."
-msgstr ""
+msgid "Last but not least we add the property <property>passedVehicleInspection</property> to the <classname>Car</classname> class (<xref linkend=\"example-car\"/>) indicating whether a car passed the road worthy tests."
+msgstr "最后, 我们给<classname>Car</classname> class (<xref linkend=\"example-car\"/>) 添加一个<property>passedVehicleInspection</property>的属性,来表示这个车是否通过了上路检查."
 
 #. Tag: title
 #: usingvalidator.xml:564
 #, no-c-format
 msgid "<title>Car</title>"
-msgstr ""
+msgstr "<title>Car</title>"
 
 #. Tag: programlisting
 #: usingvalidator.xml:566
@@ -1170,8 +1187,7 @@
 "    @Min(2)\n"
 "    private int seatCount;\n"
 "\n"
-"    @AssertTrue(message = \"The car has to pass the vehicle inspection first"
-"\", groups = CarChecks.class)\n"
+"    @AssertTrue(message = \"The car has to pass the vehicle inspection first\", groups = CarChecks.class)\n"
 "    private boolean passedVehicleInspection;\n"
 "\n"
 "    @Valid\n"
@@ -1184,28 +1200,41 @@
 "    }\n"
 "}"
 msgstr ""
+"public class Car {\n"
+"    @NotNull\n"
+"    private String manufacturer;\n"
+"\n"
+"    @NotNull\n"
+"    @Size(min = 2, max = 14)\n"
+"    private String licensePlate;\n"
+"\n"
+"    @Min(2)\n"
+"    private int seatCount;\n"
+"\n"
+"    @AssertTrue(message = \"The car has to pass the vehicle inspection first\", groups = CarChecks.class)\n"
+"    private boolean passedVehicleInspection;\n"
+"\n"
+"    @Valid\n"
+"    private Driver driver;\n"
+"\n"
+"    public Car(String manufacturer, String licencePlate, int seatCount) {\n"
+"        this.manufacturer = manufacturer;\n"
+"        this.licensePlate = licencePlate;\n"
+"        this.seatCount = seatCount;\n"
+"    }\n"
+"}"
 
 #. Tag: para
 #: usingvalidator.xml:569
 #, no-c-format
-msgid ""
-"Overall three different groups are used in our example. <property>Person."
-"name</property>, <property>Car.manufacturer</property>, <property>Car."
-"licensePlate</property> and <property>Car.seatCount</property> all belong to "
-"the <classname>Default</classname> group. <property>Driver.age</property> "
-"and <property>Driver.hasDrivingLicense</property> belong to "
-"<classname>DriverChecks</classname> and last but not least <property>Car."
-"passedVehicleInspection</property> belongs to the group "
-"<classname>CarChecks</classname>. <xref linkend=\"example-drive-away\"/> "
-"shows how passing different group combinations to the <methodname>Validator."
-"validate</methodname> method result in different validation results."
-msgstr ""
+msgid "Overall three different groups are used in our example. <property>Person.name</property>, <property>Car.manufacturer</property>, <property>Car.licensePlate</property> and <property>Car.seatCount</property> all belong to the <classname>Default</classname> group. <property>Driver.age</property> and <property>Driver.hasDrivingLicense</property> belong to <classname>DriverChecks</classname> and last but not least <property>Car.passedVehicleInspection</property> belongs to the group <classname>CarChecks</classname>. <xref linkend=\"example-drive-away\"/> shows how passing different group combinations to the <methodname>Validator.validate</methodname> method result in different validation results."
+msgstr "现在, 在我们的例子中有三个不同的校验组, <property>Person.name</property>, <property>Car.manufacturer</property>, <property>Car.licensePlate</property> 和 <property>Car.seatCount</property>都属于默认(<classname>Default</classname>) 组, <property>Driver.age</property> 和 <property>Driver.hasDrivingLicense</property> 从属于 <classname>DriverChecks</classname>组, 而<property>Car.passedVehicleInspection</property> 在<classname>CarChecks</classname>组中. <xref linkend=\"example-drive-away\"/>演示了如何让<methodname>Validator.validate</methodname>验证不同的组来得到不同的校验结果."
 
 #. Tag: title
 #: usingvalidator.xml:583
 #, no-c-format
 msgid "Drive away"
-msgstr ""
+msgstr "Drive away"
 
 #. Tag: programlisting
 #: usingvalidator.xml:585
@@ -1217,8 +1246,7 @@
 "\n"
 "    @BeforeClass\n"
 "    public static void setUp() {\n"
-"        ValidatorFactory factory = Validation.buildDefaultValidatorFactory"
-"();\n"
+"        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();\n"
 "        validator = factory.getValidator();\n"
 "    }\n"
 "\n"
@@ -1226,67 +1254,89 @@
 "    public void driveAway() {\n"
 "        // create a car and check that everything is ok with it.\n"
 "        Car car = new Car( \"Morris\", \"DD-AB-123\", 2 );\n"
-"        Set&lt;ConstraintViolation&lt;Car&gt;&gt; constraintViolations = "
-"validator.validate( car );\n"
+"        Set&lt;ConstraintViolation&lt;Car&gt;&gt; constraintViolations = validator.validate( car );\n"
 "        assertEquals( 0, constraintViolations.size() );\n"
 "\n"
 "        // but has it passed the vehicle inspection?\n"
 "        constraintViolations = validator.validate( car, CarChecks.class );\n"
 "        assertEquals( 1, constraintViolations.size() );\n"
-"        assertEquals(\"The car has to pass the vehicle inspection first\", "
-"constraintViolations.iterator().next().getMessage());\n"
+"        assertEquals(\"The car has to pass the vehicle inspection first\", constraintViolations.iterator().next().getMessage());\n"
 "\n"
 "        // let's go to the vehicle inspection\n"
 "        car.setPassedVehicleInspection( true );\n"
 "        assertEquals( 0, validator.validate( car ).size() );\n"
 "\n"
-"        // now let's add a driver. He is 18, but has not passed the driving "
-"test yet\n"
+"        // now let's add a driver. He is 18, but has not passed the driving test yet\n"
 "        Driver john = new Driver( \"John Doe\" );\n"
 "        john.setAge( 18 );\n"
 "        car.setDriver( john );\n"
-"        constraintViolations = validator.validate( car, DriverChecks."
-"class );\n"
+"        constraintViolations = validator.validate( car, DriverChecks.class );\n"
 "        assertEquals( 1, constraintViolations.size() );\n"
-"        assertEquals( \"You first have to pass the driving test\", "
-"constraintViolations.iterator().next().getMessage() );\n"
+"        assertEquals( \"You first have to pass the driving test\", constraintViolations.iterator().next().getMessage() );\n"
 "\n"
 "        // ok, John passes the test\n"
 "        john.passedDrivingTest( true );\n"
-"        assertEquals( 0, validator.validate( car, DriverChecks.class ).size"
-"() );\n"
+"        assertEquals( 0, validator.validate( car, DriverChecks.class ).size() );\n"
 "\n"
 "        // just checking that everything is in order now\n"
-"        assertEquals( 0, validator.validate( car, Default.class, CarChecks."
-"class, DriverChecks.class ).size() );\n"
+"        assertEquals( 0, validator.validate( car, Default.class, CarChecks.class, DriverChecks.class ).size() );\n"
 "    }\n"
 "}"
 msgstr ""
+"public class GroupTest {\n"
+"\n"
+"    private static Validator validator;\n"
+"\n"
+"    @BeforeClass\n"
+"    public static void setUp() {\n"
+"        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();\n"
+"        validator = factory.getValidator();\n"
+"    }\n"
+"\n"
+"    @Test\n"
+"    public void driveAway() {\n"
+"        // create a car and check that everything is ok with it.\n"
+"        Car car = new Car( \"Morris\", \"DD-AB-123\", 2 );\n"
+"        Set&lt;ConstraintViolation&lt;Car&gt;&gt; constraintViolations = validator.validate( car );\n"
+"        assertEquals( 0, constraintViolations.size() );\n"
+"\n"
+"        // but has it passed the vehicle inspection?\n"
+"        constraintViolations = validator.validate( car, CarChecks.class );\n"
+"        assertEquals( 1, constraintViolations.size() );\n"
+"        assertEquals(\"The car has to pass the vehicle inspection first\", constraintViolations.iterator().next().getMessage());\n"
+"\n"
+"        // let's go to the vehicle inspection\n"
+"        car.setPassedVehicleInspection( true );\n"
+"        assertEquals( 0, validator.validate( car ).size() );\n"
+"\n"
+"        // now let's add a driver. He is 18, but has not passed the driving test yet\n"
+"        Driver john = new Driver( \"John Doe\" );\n"
+"        john.setAge( 18 );\n"
+"        car.setDriver( john );\n"
+"        constraintViolations = validator.validate( car, DriverChecks.class );\n"
+"        assertEquals( 1, constraintViolations.size() );\n"
+"        assertEquals( \"You first have to pass the driving test\", constraintViolations.iterator().next().getMessage() );\n"
+"\n"
+"        // ok, John passes the test\n"
+"        john.passedDrivingTest( true );\n"
+"        assertEquals( 0, validator.validate( car, DriverChecks.class ).size() );\n"
+"\n"
+"        // just checking that everything is in order now\n"
+"        assertEquals( 0, validator.validate( car, Default.class, CarChecks.class, DriverChecks.class ).size() );\n"
+"    }\n"
+"}"
 
 #. Tag: para
 #: usingvalidator.xml:588
 #, no-c-format
-msgid ""
-"First we create a car and validate it using no explicit group. There are no "
-"validation errors, even though the property "
-"<property>passedVehicleInspection</property> is per default <constant>false</"
-"constant>. However, the constraint defined on this property does not belong "
-"to the default group. Next we just validate the <classname>CarChecks</"
-"classname> group which will fail until we make sure that the car passes the "
-"vehicle inspection. When we then add a driver to the car and validate "
-"against <classname>DriverChecks</classname> we get again a constraint "
-"violation due to the fact that the driver has not yet passed the driving "
-"test. Only after setting <property>passedDrivingTest</property> to true the "
-"validation against <classname>DriverChecks</classname> will pass."
-msgstr ""
+msgid "First we create a car and validate it using no explicit group. There are no validation errors, even though the property <property>passedVehicleInspection</property> is per default <constant>false</constant>. However, the constraint defined on this property does not belong to the default group. Next we just validate the <classname>CarChecks</classname> group which will fail until we make sure that the car passes the vehicle inspection. When we then add a driver to the car and validate against <classname>DriverChecks</classname> we get again a constraint violation due to the fact that the driver has not yet passed the driving test. Only after setting <property>passedDrivingTest</property> to true the validation against <classname>DriverChecks</classname> will pass."
+msgstr "首先我们创建一辆汽车然后在没有明确指定使用哪个校验组的情况下校验它, 可以看到即使<property>passedVehicleInspection</property>的默认值是<constant>false</constant>也不会校验出错误来. 因为定义在这个属性上的约束条件并不属于默认的校验组, 接下来,我们来校验<classname>CarChecks</classname>这个组, 这样就会发现car违反了约束条件, 必须让这个车先通过检测. 接下来,我们给这个车增加一个司机, 然后在基于<classname>DriverChecks</classname>来校验, 会发现因为这个司机因为还没有通过驾照考试, 所以又一次得到了校验错误, 如果我们设置<property>passedDrivingTest</property>属性为<constant>true</constant>之后, <classname>DriverChecks</classname>组的校验就通过了."
 
 #. Tag: para
 #: usingvalidator.xml:601
 #, no-c-format
-msgid ""
-"Last but not least, we show that all constraints are passing by validating "
-"against all defined groups."
-msgstr ""
+msgid "Last but not least, we show that all constraints are passing by validating against all defined groups."
+msgstr "最后, 让我们再来校验所有的组中定义的约束条件,可以看到所有的约束条件都通过了验证."
 
 #. Tag: title
 #: usingvalidator.xml:605
@@ -1297,25 +1347,13 @@
 #. Tag: para
 #: usingvalidator.xml:607
 #, no-c-format
-msgid ""
-"By default, constraints are evaluated in no particular order and this "
-"regardless of which groups they belong to. In some situations, however, it "
-"is useful to control the order of the constraints evaluation. In our example "
-"from <xref linkend=\"validator-usingvalidator-validationgroups\"/> we could "
-"for example require that first all default car constraints are passing "
-"before we check the road worthiness of the car. Finally before we drive away "
-"we check the actual driver constraints. In order to implement such an order "
-"one would define a new interface and annotate it with "
-"<classname>@GroupSequence</classname> defining the order in which the groups "
-"have to be validated."
+msgid "By default, constraints are evaluated in no particular order and this regardless of which groups they belong to. In some situations, however, it is useful to control the order of the constraints evaluation. In our example from <xref linkend=\"validator-usingvalidator-validationgroups\"/> we could for example require that first all default car constraints are passing before we check the road worthiness of the car. Finally before we drive away we check the actual driver constraints. In order to implement such an order one would define a new interface and annotate it with <classname>@GroupSequence</classname> defining the order in which the groups have to be validated."
 msgstr ""
 
 #. Tag: para
 #: usingvalidator.xml:620
 #, no-c-format
-msgid ""
-"If at least one constraints fails in a sequenced group none of the "
-"constraints of the following groups in the sequence get validated."
+msgid "If at least one constraints fails in a sequenced group none of the constraints of the following groups in the sequence get validated."
 msgstr ""
 
 #. Tag: title
@@ -1336,20 +1374,13 @@
 #. Tag: para
 #: usingvalidator.xml:632
 #, no-c-format
-msgid ""
-"Groups defining a sequence and groups composing a sequence must not be "
-"involved in a cyclic dependency either directly or indirectly, either "
-"through cascaded sequence definition or group inheritance. If a group "
-"containing such a circularity is evaluated, a "
-"<classname>GroupDefinitionException</classname> is raised."
+msgid "Groups defining a sequence and groups composing a sequence must not be involved in a cyclic dependency either directly or indirectly, either through cascaded sequence definition or group inheritance. If a group containing such a circularity is evaluated, a <classname>GroupDefinitionException</classname> is raised."
 msgstr ""
 
 #. Tag: para
 #: usingvalidator.xml:636
 #, no-c-format
-msgid ""
-"The usage of the new sequence could then look like in <xref linkend="
-"\"example-group-sequence\"/>."
+msgid "The usage of the new sequence could then look like in <xref linkend=\"example-group-sequence\"/>."
 msgstr ""
 
 #. Tag: title
@@ -1372,8 +1403,7 @@
 "    john.passedDrivingTest( true );\n"
 "    car.setDriver( john );\n"
 "\n"
-"    assertEquals( 0, validator.validate( car, OrderedChecks.class ).size"
-"() );\n"
+"    assertEquals( 0, validator.validate( car, OrderedChecks.class ).size() );\n"
 "}"
 msgstr ""
 
@@ -1386,16 +1416,7 @@
 #. Tag: para
 #: usingvalidator.xml:650
 #, no-c-format
-msgid ""
-"The @GroupSequence annotation also fulfills a second purpose. It allows you "
-"to redefine what the Default group means for a given class. To redefine "
-"<classname>Default</classname> for a class, place a "
-"<classname>@GroupSequence</classname> annotation on the class. The defined "
-"groups in the annotation express the sequence of groups that substitute "
-"<classname>Default</classname> for this class. <xref linkend=\"example-"
-"rental-car\"/> introduces a new class RentalCar with a redfined default "
-"group. With this definition the check for all three groups can be rewritten "
-"as seen in <xref linkend=\"example-testOrderedChecksWithRedefinedDefault\"/>."
+msgid "The @GroupSequence annotation also fulfills a second purpose. It allows you to redefine what the Default group means for a given class. To redefine <classname>Default</classname> for a class, place a <classname>@GroupSequence</classname> annotation on the class. The defined groups in the annotation express the sequence of groups that substitute <classname>Default</classname> for this class. <xref linkend=\"example-rental-car\"/> introduces a new class RentalCar with a redfined default group. With this definition the check for all three groups can be rewritten as seen in <xref linkend=\"example-testOrderedChecksWithRedefinedDefault\"/>."
 msgstr ""
 
 #. Tag: title
@@ -1410,8 +1431,7 @@
 msgid ""
 "@GroupSequence({ RentalCar.class, CarChecks.class })\n"
 "public class RentalCar extends Car {\n"
-"    public RentalCar(String manufacturer, String licencePlate, int "
-"seatCount) {\n"
+"    public RentalCar(String manufacturer, String licencePlate, int seatCount) {\n"
 "        super( manufacturer, licencePlate, seatCount );\n"
 "    }\n"
 "}"
@@ -1437,23 +1457,19 @@
 "    john.passedDrivingTest( true );\n"
 "    rentalCar.setDriver( john );\n"
 "\n"
-"    assertEquals( 0, validator.validate( rentalCar, Default.class, "
-"DriverChecks.class ).size() );\n"
+"    assertEquals( 0, validator.validate( rentalCar, Default.class, DriverChecks.class ).size() );\n"
 "}"
 msgstr ""
 
 #. Tag: para
 #: usingvalidator.xml:674
 #, no-c-format
-msgid ""
-"Due to the fact that there cannot be a cyclic dependency in the group and "
-"group sequence definitions one cannot just add <classname>Default</"
-"classname> to the sequence redefining <classname>Default</classname> for a "
-"class. Instead the class itself should be added!"
+msgid "Due to the fact that there cannot be a cyclic dependency in the group and group sequence definitions one cannot just add <classname>Default</classname> to the sequence redefining <classname>Default</classname> for a class. Instead the class itself should be added!"
 msgstr ""
 
 #. Tag: title
-#: usingvalidator.xml:684 usingvalidator.xml:692
+#: usingvalidator.xml:684
+#: usingvalidator.xml:692
 #, no-c-format
 msgid "Built-in constraints"
 msgstr ""
@@ -1461,10 +1477,7 @@
 #. Tag: para
 #: usingvalidator.xml:686
 #, no-c-format
-msgid ""
-"Hibernate Validator implements all of the default constraints specified in "
-"Bean Validation as well as some custom ones. <xref linkend=\"table-builtin-"
-"constraints\"/> list all constraints available in Hibernate Validator."
+msgid "Hibernate Validator implements all of the default constraints specified in Bean Validation as well as some custom ones. <xref linkend=\"table-builtin-constraints\"/> list all constraints available in Hibernate Validator."
 msgstr ""
 
 #. Tag: entry
@@ -1504,18 +1517,30 @@
 msgstr ""
 
 #. Tag: entry
-#: usingvalidator.xml:715 usingvalidator.xml:728 usingvalidator.xml:758
-#: usingvalidator.xml:778 usingvalidator.xml:798 usingvalidator.xml:830
-#: usingvalidator.xml:858 usingvalidator.xml:876 usingvalidator.xml:894
-#: usingvalidator.xml:936 usingvalidator.xml:949 usingvalidator.xml:963
-#: usingvalidator.xml:995 usingvalidator.xml:1049
+#: usingvalidator.xml:715
+#: usingvalidator.xml:728
+#: usingvalidator.xml:758
+#: usingvalidator.xml:778
+#: usingvalidator.xml:798
+#: usingvalidator.xml:830
+#: usingvalidator.xml:858
+#: usingvalidator.xml:876
+#: usingvalidator.xml:894
+#: usingvalidator.xml:936
+#: usingvalidator.xml:949
+#: usingvalidator.xml:963
+#: usingvalidator.xml:995
+#: usingvalidator.xml:1049
 #, no-c-format
 msgid "<entry>yes</entry>"
 msgstr ""
 
 #. Tag: entry
-#: usingvalidator.xml:717 usingvalidator.xml:730 usingvalidator.xml:896
-#: usingvalidator.xml:909 usingvalidator.xml:938
+#: usingvalidator.xml:717
+#: usingvalidator.xml:730
+#: usingvalidator.xml:896
+#: usingvalidator.xml:909
+#: usingvalidator.xml:938
 #, no-c-format
 msgid "field/property"
 msgstr ""
@@ -1527,11 +1552,21 @@
 msgstr ""
 
 #. Tag: entry
-#: usingvalidator.xml:722 usingvalidator.xml:735 usingvalidator.xml:752
-#: usingvalidator.xml:772 usingvalidator.xml:792 usingvalidator.xml:824
-#: usingvalidator.xml:838 usingvalidator.xml:916 usingvalidator.xml:930
-#: usingvalidator.xml:943 usingvalidator.xml:957 usingvalidator.xml:971
-#: usingvalidator.xml:989 usingvalidator.xml:1026 usingvalidator.xml:1043
+#: usingvalidator.xml:722
+#: usingvalidator.xml:735
+#: usingvalidator.xml:752
+#: usingvalidator.xml:772
+#: usingvalidator.xml:792
+#: usingvalidator.xml:824
+#: usingvalidator.xml:838
+#: usingvalidator.xml:916
+#: usingvalidator.xml:930
+#: usingvalidator.xml:943
+#: usingvalidator.xml:957
+#: usingvalidator.xml:971
+#: usingvalidator.xml:989
+#: usingvalidator.xml:1026
+#: usingvalidator.xml:1043
 #: usingvalidator.xml:1059
 #, no-c-format
 msgid "none"
@@ -1556,15 +1591,21 @@
 msgstr ""
 
 #. Tag: entry
-#: usingvalidator.xml:741 usingvalidator.xml:817 usingvalidator.xml:844
-#: usingvalidator.xml:907 usingvalidator.xml:922 usingvalidator.xml:977
-#: usingvalidator.xml:1011 usingvalidator.xml:1032
+#: usingvalidator.xml:741
+#: usingvalidator.xml:817
+#: usingvalidator.xml:844
+#: usingvalidator.xml:907
+#: usingvalidator.xml:922
+#: usingvalidator.xml:977
+#: usingvalidator.xml:1011
+#: usingvalidator.xml:1032
 #, no-c-format
 msgid "<entry>no</entry>"
 msgstr ""
 
 #. Tag: entry
-#: usingvalidator.xml:743 usingvalidator.xml:1034
+#: usingvalidator.xml:743
+#: usingvalidator.xml:1034
 #, no-c-format
 msgid "field/property. The supported type is <classname>String</classname>."
 msgstr ""
@@ -1572,11 +1613,7 @@
 #. Tag: entry
 #: usingvalidator.xml:746
 #, no-c-format
-msgid ""
-"Check that the annotated string passes the Luhn checksum test. Note, this "
-"validation aims to check for user mistake, not credit card validity! See "
-"also <ulink url=\"http://www.merriampark.com/anatomycc.htm\">Anatomy of "
-"Credit Card Numbers</ulink>."
+msgid "Check that the annotated string passes the Luhn checksum test. Note, this validation aims to check for user mistake, not credit card validity! See also <ulink url=\"http://www.merriampark.com/anatomycc.htm\">Anatomy of Credit Card Numbers</ulink>."
 msgstr ""
 
 #. Tag: entry
@@ -1586,25 +1623,20 @@
 msgstr ""
 
 #. Tag: entry
-#: usingvalidator.xml:760 usingvalidator.xml:780 usingvalidator.xml:800
-#: usingvalidator.xml:860 usingvalidator.xml:878 usingvalidator.xml:979
+#: usingvalidator.xml:760
+#: usingvalidator.xml:780
+#: usingvalidator.xml:800
+#: usingvalidator.xml:860
+#: usingvalidator.xml:878
+#: usingvalidator.xml:979
 #, no-c-format
-msgid ""
-"field/property. Supported types are <classname>BigDecimal</classname>, "
-"<classname>BigInteger</classname>, <classname>String</classname>, "
-"<classname>byte</classname>, <classname>short</classname>, <classname>int</"
-"classname>, <classname>long</classname> and the respective wrappers of the "
-"primitive types."
+msgid "field/property. Supported types are <classname>BigDecimal</classname>, <classname>BigInteger</classname>, <classname>String</classname>, <classname>byte</classname>, <classname>short</classname>, <classname>int</classname>, <classname>long</classname> and the respective wrappers of the primitive types."
 msgstr ""
 
 #. Tag: entry
 #: usingvalidator.xml:767
 #, no-c-format
-msgid ""
-"The annotated element must be a number whose value must be lower or equal to "
-"the specified maximum. The parameter value is the string representation of "
-"the max value according to the <classname>BigDecimal</classname> string "
-"representation."
+msgid "The annotated element must be a number whose value must be lower or equal to the specified maximum. The parameter value is the string representation of the max value according to the <classname>BigDecimal</classname> string representation."
 msgstr ""
 
 #. Tag: entry
@@ -1616,11 +1648,7 @@
 #. Tag: entry
 #: usingvalidator.xml:787
 #, no-c-format
-msgid ""
-"The annotated element must be a number whose value must be higher or equal "
-"to the specified minimum. The parameter value is the string representation "
-"of the min value according to the <classname>BigDecimal</classname> string "
-"representation."
+msgid "The annotated element must be a number whose value must be higher or equal to the specified minimum. The parameter value is the string representation of the min value according to the <classname>BigDecimal</classname> string representation."
 msgstr ""
 
 #. Tag: entry
@@ -1632,9 +1660,7 @@
 #. Tag: entry
 #: usingvalidator.xml:807
 #, no-c-format
-msgid ""
-"Check whether the property is a number having up to <literal>integer</"
-"literal> digits and <literal>fraction</literal> fractional digits."
+msgid "Check whether the property is a number having up to <literal>integer</literal> digits and <literal>fraction</literal> fractional digits."
 msgstr ""
 
 #. Tag: entry
@@ -1650,7 +1676,9 @@
 msgstr ""
 
 #. Tag: entry
-#: usingvalidator.xml:819 usingvalidator.xml:846 usingvalidator.xml:965
+#: usingvalidator.xml:819
+#: usingvalidator.xml:846
+#: usingvalidator.xml:965
 #, no-c-format
 msgid "field/property. Needs to be a string."
 msgstr ""
@@ -1668,11 +1696,10 @@
 msgstr ""
 
 #. Tag: entry
-#: usingvalidator.xml:832 usingvalidator.xml:951
+#: usingvalidator.xml:832
+#: usingvalidator.xml:951
 #, no-c-format
-msgid ""
-"field/property. Supported types are <classname>java.util.Date</classname> "
-"and <classname>java.util.Calendar</classname>."
+msgid "field/property. Supported types are <classname>java.util.Date</classname> and <classname>java.util.Calendar</classname>."
 msgstr ""
 
 #. Tag: entry
@@ -1690,13 +1717,12 @@
 #. Tag: entry
 #: usingvalidator.xml:848
 #, no-c-format
-msgid ""
-"Validate that the annotated string is between <parameter>min</parameter> and "
-"<parameter>max</parameter> included."
+msgid "Validate that the annotated string is between <parameter>min</parameter> and <parameter>max</parameter> included."
 msgstr ""
 
 #. Tag: entry
-#: usingvalidator.xml:852 usingvalidator.xml:1005
+#: usingvalidator.xml:852
+#: usingvalidator.xml:1005
 #, no-c-format
 msgid "Column length will be set to max."
 msgstr ""
@@ -1710,13 +1736,12 @@
 #. Tag: entry
 #: usingvalidator.xml:867
 #, no-c-format
-msgid ""
-"Checks whether the annotated value is less than or equal to the specified "
-"maximum."
+msgid "Checks whether the annotated value is less than or equal to the specified maximum."
 msgstr ""
 
 #. Tag: entry
-#: usingvalidator.xml:870 usingvalidator.xml:888
+#: usingvalidator.xml:870
+#: usingvalidator.xml:888
 #, no-c-format
 msgid "Add a check constraint on the column."
 msgstr ""
@@ -1730,9 +1755,7 @@
 #. Tag: entry
 #: usingvalidator.xml:885
 #, no-c-format
-msgid ""
-"Checks whether the annotated value is higher than or equal to the specified "
-"minimum."
+msgid "Checks whether the annotated value is higher than or equal to the specified minimum."
 msgstr ""
 
 #. Tag: entry
@@ -1762,10 +1785,7 @@
 #. Tag: entry
 #: usingvalidator.xml:911
 #, no-c-format
-msgid ""
-"Check that the annotated string is not null and the trimmed length is "
-"greater than 0. The difference to @NotEmpty is that this constraint can only "
-"be applied on strings and that trailing whitespaces are ignored."
+msgid "Check that the annotated string is not null and the trimmed length is greater than 0. The difference to @NotEmpty is that this constraint can only be applied on strings and that trailing whitespaces are ignored."
 msgstr ""
 
 #. Tag: entry
@@ -1783,9 +1803,7 @@
 #. Tag: entry
 #: usingvalidator.xml:927
 #, no-c-format
-msgid ""
-"Check whether the annotated element is not <constant>null</constant> nor "
-"empty."
+msgid "Check whether the annotated element is not <constant>null</constant> nor empty."
 msgstr ""
 
 #. Tag: entry
@@ -1821,10 +1839,7 @@
 #. Tag: entry
 #: usingvalidator.xml:967
 #, no-c-format
-msgid ""
-"Checks if the annotated string matches the regular expression "
-"<parameter>regex</parameter> considering the given flag <parameter>match</"
-"parameter>."
+msgid "Checks if the annotated string matches the regular expression <parameter>regex</parameter> considering the given flag <parameter>match</parameter>."
 msgstr ""
 
 #. Tag: entry
@@ -1836,9 +1851,7 @@
 #. Tag: entry
 #: usingvalidator.xml:986
 #, no-c-format
-msgid ""
-"Check whether the annotated value lies between (inclusive) the specified "
-"minimum and maximum."
+msgid "Check whether the annotated value lies between (inclusive) the specified minimum and maximum."
 msgstr ""
 
 #. Tag: entry
@@ -1850,10 +1863,7 @@
 #. Tag: entry
 #: usingvalidator.xml:997
 #, no-c-format
-msgid ""
-"field/property. Supported types are <classname>String</classname>, "
-"<classname>Collection</classname>, <classname>Map</classname> and "
-"<classname>arrays</classname>."
+msgid "field/property. Supported types are <classname>String</classname>, <classname>Collection</classname>, <classname>Map</classname> and <classname>arrays</classname>."
 msgstr ""
 
 #. Tag: entry
@@ -1877,16 +1887,7 @@
 #. Tag: entry
 #: usingvalidator.xml:1015
 #, no-c-format
-msgid ""
-"Checks whether the given script can successfully be evaluated against the "
-"annotated element. In order to use this constraint, an implementation of the "
-"Java Scripting API as defined by JSR 223 (\"Scripting for the "
-"Java<superscript>TM</superscript> Platform\") must part of the class path. "
-"This is automatically the case when running on Java 6. For older Java "
-"versions, the JSR 223 RI can be added manually to the class path.The "
-"expressions to be evaluated can be written in any scripting or expression "
-"language, for which a JSR 223 compatible engine can be found in the class "
-"path."
+msgid "Checks whether the given script can successfully be evaluated against the annotated element. In order to use this constraint, an implementation of the Java Scripting API as defined by JSR 223 (\"Scripting for the Java<superscript>TM</superscript> Platform\") must part of the class path. This is automatically the case when running on Java 6. For older Java versions, the JSR 223 RI can be added manually to the class path.The expressions to be evaluated can be written in any scripting or expression language, for which a JSR 223 compatible engine can be found in the class path."
 msgstr ""
 
 #. Tag: entry
@@ -1898,11 +1899,7 @@
 #. Tag: entry
 #: usingvalidator.xml:1037
 #, no-c-format
-msgid ""
-"Check if the annotated string is a valid URL. If any of parameters "
-"<parameter>protocol</parameter>, <parameter>host</parameter> or "
-"<parameter>port</parameter> is specified the URL must match the specified "
-"values in the according part."
+msgid "Check if the annotated string is a valid URL. If any of parameters <parameter>protocol</parameter>, <parameter>host</parameter> or <parameter>port</parameter> is specified the URL must match the specified values in the according part."
 msgstr ""
 
 #. Tag: entry
@@ -1920,27 +1917,18 @@
 #. Tag: entry
 #: usingvalidator.xml:1054
 #, no-c-format
-msgid ""
-"Performs validation recursively on the associated object. If the object is a "
-"collection or an array, the elements are validated recursively. If the "
-"object is a map, the value elements are validated recursively."
+msgid "Performs validation recursively on the associated object. If the object is a collection or an array, the elements are validated recursively. If the object is a map, the value elements are validated recursively."
 msgstr ""
 
 #. Tag: para
 #: usingvalidator.xml:1066
 #, no-c-format
-msgid ""
-"On top of the parameters indicated in <xref linkend=\"table-builtin-"
-"constraints\"/> each constraint supports the parameters <parameter>message</"
-"parameter>, <parameter>groups</parameter> and <parameter>payload</"
-"parameter>. This is a requirement of the Bean Validation specification."
+msgid "On top of the parameters indicated in <xref linkend=\"table-builtin-constraints\"/> each constraint supports the parameters <parameter>message</parameter>, <parameter>groups</parameter> and <parameter>payload</parameter>. This is a requirement of the Bean Validation specification."
 msgstr ""
 
 #. Tag: para
 #: usingvalidator.xml:1073
 #, no-c-format
-msgid ""
-"In some cases these built-in constraints will not fulfill your requirements. "
-"In this case you can literally in a minute write your own constraints. We "
-"will discuss this in"
+msgid "In some cases these built-in constraints will not fulfill your requirements. In this case you can literally in a minute write your own constraints. We will discuss this in"
 msgstr ""
+



More information about the hibernate-commits mailing list