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(a)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 "©rightHolder;"
-msgstr ""
+msgstr "©rightHolder;"
#. 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(a)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&... or
create an issue within<ulink
url=\"http://opensource.atlassian.com/projects/hibernate/browse/HV/c...
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/java...
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...;,
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\">\n"
" <compilerarg value=\"-processorpath\" />\n"
-" <compilerarg
value=\"/path/to/validation-api-&bvVersion;.jar:/path/"
-"to/hibernate-validator-annotation-processor-&version;.jar\"/>\n"
+" <compilerarg
value=\"/path/to/validation-api-&bvVersion;.jar:/path/to/hibernate-validator-annotation-processor-&version;.jar\"/>\n"
"</javac>"
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"
"<dependency>\n"
" <groupId>org.hibernate</groupId>\n"
-"
<artifactId>hibernate-validator-annotation-processor</"
-"artifactId>\n"
+"
<artifactId>hibernate-validator-annotation-processor</artifactId>\n"
" <version>&version;</version>\n"
" <scope>compile</scope>\n"
"</dependency>\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\">MCOMPIL...
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 @@
"<pluginRepositories>\n"
" <pluginRepository>\n"
" <id>maven-annotation-plugin-repo</id>\n"
-"
<url>http://maven-annotation-plugin.googlecode.com/svn/trunk/"
-"mavenrepo</url>\n"
+"
<url>http://maven-annotation-plugin.googlecode.com/svn/trunk/mavenrepo</url>\n"
" </pluginRepository>\n"
"</pluginRepositories>\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 @@
" <dependencies>\n"
" <dependency>\n"
" <groupId>org.hibernate</groupId>\n"
-"
<artifactId>hibernate-validator-annotation-processor</"
-"artifactId>\n"
+"
<artifactId>hibernate-validator-annotation-processor</artifactId>\n"
" <version>&version;</version>\n"
" <scope>compile</scope>\n"
" </dependency>\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-3...
-"\">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-3...;:
Additional validators registered for a constraint <ulink
url=\"http://docs.jboss.org/hibernate/stable/validator/reference/en/...
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-2...
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(a)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\"...
repository</ulink>. Alternatively you can view the tests using <ulink
url=\"http://fisheye.jboss.org/browse/Hibernate/beanvalidation/trunk...
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\"...
repository</ulink>匿名访问得到. 或者, 你也可以通过<ulink
url=\"http://fisheye.jboss.org/browse/Hibernate/beanvalidation/trunk...
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\">Hi... 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\">Hi... 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\&...
Jira</ulink> instance. Feedback is always welcome!"
+msgstr "如果你发现了Hibernate Validator的bug,请在<ulink
url=\"http://opensource.atlassian.com/projects/hibernate/browse/HV\&...
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(a)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/annotatio...
- 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 @@
"<hibernate-configuration>\n"
" <session-factory>\n"
" ...\n"
-" <property
name=\"javax.persistence.validation.group.pre-persist"
-"\">javax.validation.groups.Default</property>\n"
-" <property
name=\"javax.persistence.validation.group.pre-update"
-"\">javax.validation.groups.Default</property>\n"
-" <property
name=\"javax.persistence.validation.group.pre-remove"
-"\"></property>\n"
+" <property
name=\"javax.persistence.validation.group.pre-persist\">javax.validation.groups.Default</property>\n"
+" <property
name=\"javax.persistence.validation.group.pre-update\">javax.validation.groups.Default</property>\n"
+" <property
name=\"javax.persistence.validation.group.pre-remove\"></property>\n"
" ...\n"
" <event type=\"pre-update\">\n"
-" <listener class=\"org.hibernate.cfg.beanvalidation."
-"BeanValidationEventListener\"/>\n"
+" <listener
class=\"org.hibernate.cfg.beanvalidation.BeanValidationEventListener\"/>\n"
" </event>\n"
" <event type=\"pre-insert\">\n"
-" <listener class=\"org.hibernate.cfg.beanvalidation."
-"BeanValidationEventListener\"/>\n"
+" <listener
class=\"org.hibernate.cfg.beanvalidation.BeanValidationEventListener\"/>\n"
" </event>\n"
" <event type=\"pre-delete\">\n"
-" <listener class=\"org.hibernate.cfg.beanvalidation."
-"BeanValidationEventListener\"/>\n"
+" <listener
class=\"org.hibernate.cfg.beanvalidation.BeanValidationEventListener\"/>\n"
" </event>\n"
" </session-factory>\n"
"</hibernate-configuration>"
@@ -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 @@
"<h:form>\n"
" <emphasis
role=\"bold\"><f:validateBean></emphasis>\n"
" <h:inputText value=”#{model.property}” />\n"
-" <h:selectOneRadio value=”#{model.radioProperty}” > ...
</h:"
-"selectOneRadio>\n"
+" <h:selectOneRadio value=”#{model.radioProperty}” > ...
</h:selectOneRadio>\n"
" <!-- other input components here -->\n"
" <emphasis
role=\"bold\"></f:validateBean></emphasis>\n"
"</h:form>"
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(a)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/inde...
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/inde...,
你还可以把约束标注在属性上. <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<Person> 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<Person> passengers = new
ArrayList<Person>();\n"
+"\n"
+" public Car(List<Person> 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<ConstraintViolation></"
-"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<ConstraintViolation></classname>. The set is
empty, if the validation succeeds. Otherwise a
<classname>ConstraintViolation</classname> instance is added for each violated
constraint."
+msgstr
"这三个方法都会返回一个<classname>Set<ConstraintViolation></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<ConstraintViolation<Car>> constraintViolations =
validator."
-"validate(car);\n"
+"Set<ConstraintViolation<Car>> 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<ConstraintViolation<Car>> 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<ConstraintViolation<Car>> constraintViolations =
validator."
-"validateProperty(car, \"manufacturer\");\n"
+"Set<ConstraintViolation<Car>> 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<ConstraintViolation<Car>> 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<ConstraintViolation<Car>> constraintViolations =
validator."
-"validateValue(Car.class, \"manufacturer\", null);\n"
+"Set<ConstraintViolation<Car>> 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<ConstraintViolation<Car>> 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>(a)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<ConstraintViolation<Car>>
constraintViolations = "
-"validator.validate( car );\n"
+" Set<ConstraintViolation<Car>>
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<ConstraintViolation<Car>>
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 ""
+