#
# Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

# Concatenated with Driver.ErrorMessage, Driver.WarningMessage, Driver.InfoMessage (Driver.InfoMessage + exception message + ConsoleErrorReporter.UnknownLocation) if location of the error is not known.
ConsoleErrorReporter.UnknownLocation = \u4e0d\u660e\u7684\u4f4d\u7f6e

# Concatenated with Driver.ErrorMessage, Driver.WarningMessage, Driver.InfoMessage (Driver.InfoMessage + exception message + ConsoleErrorReporter.LineXOfY). {0} - "?"/number, {1} - file location/"unknown file" e.g.: [xjc] [ERROR] Attempt to create a property having the same name as the reserved word "Class". [xjc] line 6 of example.xsd
ConsoleErrorReporter.LineXOfY = \ \ {1} \u7684\u7b2c {0} \u884c

# may be a placeholder replacement for the second placeholder of ConsoleErrorReporter.LineXOfY (if the file location is unknown)
ConsoleErrorReporter.UnknownFile = \u4e0d\u660e\u7684\u6a94\u6848

Driver.Private.Usage = \u5176\u4ed6\u5c08\u7528\u6e2c\u8a66\u9078\u9805:\n\\ \\ -debug             :  \u5728\u9664\u932f\u6a21\u5f0f\u4e2d\u57f7\u884c (\u5305\u542b -verbose)\n\\ \\ -mode <mode>       :  \u5728\u5176\u4ed6\u57f7\u884c\u4e2d\u6a21\u5f0f\u4e0b\u57f7\u884c XJC\n\\ \\ -private           :  \u986f\u793a\u6b64\u8aaa\u660e\u8a0a\u606f\n\u6a21\u5f0f:\n\\ \\ code         :  \u7522\u751f Java \u4f86\u6e90\u7a0b\u5f0f\u78bc (\u9810\u8a2d\u503c)\n\\ \\ dryrun       :  \u5728\u8a18\u61b6\u9ad4\u4e2d\u7de8\u8b6f\u7db1\u8981, \u4f46\u4e0d\u7522\u751f Java \u4f86\u6e90\n\\ \\ zip          :  \u5c07 Java \u4f86\u6e90\u7a0b\u5f0f\u78bc\u8f49\u63db\u70ba -d \u9078\u9805\u6307\u5b9a\u7684 zip \u6a94\u6848\n\\ \\ sig          :  \u50be\u5370\u7522\u751f\u4e4b\u7a0b\u5f0f\u78bc\u7684\u7c3d\u7ae0\n\\ \\ forest       :  \u50be\u5370\u8f49\u63db\u7684 DOM \u6a39\u7cfb\n
Driver.Public.Usage = \u7528\u6cd5: xjc [-options ...] <schema file/URL/dir/jar> ... [-b <bindinfo>] ...\n\u82e5\u6307\u5b9a dir, \u5c07\u7de8\u8b6f\u5176\u4e2d\u7684\u6240\u6709\u7db1\u8981\u6a94\u6848.\n\u82e5\u6307\u5b9a jar, \u5c07\u7de8\u8b6f /META-INF/sun-jaxb.episode \u9023\u7d50\u6a94.\n\u9078\u9805:\n\\ \\ -nv                :  \u4e0d\u57f7\u884c\u56b4\u683c\u7684\u8f38\u5165\u7db1\u8981\u9a57\u8b49\n\\ \\ -extension         :  \u5141\u8a31\u5ee0\u5546\u64f4\u5145\u5957\u4ef6 - \u4e0d\u56b4\u683c\u9075\u5faa\n\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ JAXB \u898f\u683c\u4e2d\u7684\u76f8\u5bb9\u6027\u898f\u5247\u8207 App E.2\n\\ \\ -b <file/dir>      :  \u6307\u5b9a\u5916\u90e8\u9023\u7d50\u6a94 (\u6bcf\u500b <file> \u9700\u6709\u81ea\u5df1\u7684 -b)\n\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \u82e5\u6307\u5b9a\u76ee\u9304, \u5247\u6703\u641c\u5c0b **/*.xjb\n\\ \\ -d <dir>           :  \u7522\u751f\u7684\u6a94\u6848\u5c07\u79fb\u81f3\u6b64\u76ee\u9304\n\\ \\ -p <pkg>           :  \u6307\u5b9a\u76ee\u6a19\u5957\u88dd\u7a0b\u5f0f\n\\ \\ -httpproxy <proxy> :  \u8a2d\u5b9a HTTP/HTTPS \u4ee3\u7406\u4e3b\u6a5f. \u683c\u5f0f\u70ba [user[:password]@]proxyHost:proxyPort\n\\ \\ -httpproxyfile <f> :  \u4f5c\u7528\u5982\u540c -httpproxy, \u4f46\u63a5\u53d7\u6a94\u6848\u4e2d\u7684\u5f15\u6578\u4ee5\u4fdd\u8b77\u5bc6\u78bc \n\\ \\ -classpath <arg>   :  \u6307\u5b9a\u5c0b\u627e\u4f7f\u7528\u8005\u985e\u5225\u6a94\u6848\u7684\u4f4d\u7f6e\n\\ \\ -catalog <file>    :  \u6307\u5b9a\u89e3\u6790\u5916\u90e8\u5be6\u9ad4\u53c3\u7167\u7684\u76ee\u9304\u6a94\u6848\n\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \u652f\u63f4 TR9401\u3001XCatalog \u4ee5\u53ca OASIS XML \u76ee\u9304\u683c\u5f0f.\n\\ \\ -readOnly          :  \u7522\u751f\u7684\u6a94\u6848\u5c07\u662f\u552f\u8b80\u6a21\u5f0f\n\\ \\ -npa               :  \u6291\u5236\u5957\u88dd\u7a0b\u5f0f\u5c64\u6b21\u8a3b\u89e3 (**/package-info.java) \u7684\u7522\u751f\n\\ \\ -no-header         :  \u6291\u5236\u6a94\u6848\u6a19\u982d\u548c\u6642\u6233\u7684\u7522\u751f\n\\ \\ -target (2.0|2.1)  :  \u4f5c\u7528\u5982\u540c XJC 2.0 \u6216 2.1, \u4e26\u4e14\u6703\u7522\u751f\u4e0d\u4f7f\u7528\u4efb\u4f55 2.2 \u529f\u80fd\u7684\u7a0b\u5f0f\u78bc.\n\\ \\ -encoding <encoding> :  \u70ba\u7522\u751f\u7684\u4f86\u6e90\u6a94\u6848\u6307\u5b9a\u5b57\u5143\u7de8\u78bc\n\\ \\ -enableIntrospection :  \u6b63\u78ba\u7522\u751f\u5e03\u6797\u503c getter/setter \u4ee5\u555f\u7528 Bean \u81ea\u6211\u6aa2\u67e5 api \n\\ \\ -contentForWildcard  :  \u70ba\u542b\u6709\u591a\u500b xs:any \u884d\u751f\u4e4b\u5143\u7d20\u7684\u985e\u578b\u7522\u751f\u5167\u5bb9\u7279\u6027 \n\\ \\ -xmlschema         :  \u5c07\u8f38\u5165\u8996\u70ba W3C XML \u7db1\u8981 (\u9810\u8a2d\u503c)\n\\ \\ -relaxng           :  \u5c07\u8f38\u5165\u8996\u70ba RELAX NG (\u5be6\u9a57\u6027, \u4e0d\u63d0\u4f9b\u652f\u63f4)\n\\ \\ -relaxng-compact   :  \u5c07\u8f38\u5165\u8996\u70ba RELAX NG \u7cbe\u7c21\u8a9e\u6cd5 (\u5be6\u9a57\u6027, \u4e0d\u63d0\u4f9b\u4e0d\u652f\u63f4)\n\\ \\ -dtd               :  \u5c07\u8f38\u5165\u8996\u70ba XML DTD (\u5be6\u9a57\u6027, \u4e0d\u63d0\u4f9b\u652f\u63f4)\n\\ \\ -wsdl              :  \u5c07\u8f38\u5165\u8996\u70ba WSDL, \u4e26\u7de8\u8b6f\u5176\u4e2d\u7684\u7db1\u8981 (\u5be6\u9a57\u6027, \u4e0d\u63d0\u4f9b\u652f\u63f4)\n\\ \\ -verbose           :  \u63d0\u4f9b\u984d\u5916\u7684\u8a73\u7d30\u8cc7\u8a0a\n\\ \\ -quiet             :  \u6291\u5236\u7de8\u8b6f\u5668\u8f38\u51fa\n\\ \\ -help              :  \u986f\u793a\u6b64\u8aaa\u660e\u8a0a\u606f\n\\ \\ -version           :  \u986f\u793a\u7248\u672c\u8cc7\u8a0a\n\\ \\ -fullversion       :  \u986f\u793a\u5b8c\u6574\u7248\u672c\u8cc7\u8a0a\n
Driver.AddonUsage = \n\u64f4\u5145\u5957\u4ef6:

# {0} - one of: DTD, RELAX NG, RELAX NG compact syntax, WSDL; {1} - one of (respectively): -dtd, -relaxng, -relaxng-compact, -wsdl
Driver.ExperimentalLanguageWarning = \u60a8\u6b63\u5728\u5617\u8a66\u7de8\u8b6f {0} \u55ce? \u5c0d {0} \u7684\u652f\u63f4\u662f\u5be6\u9a57\u6027\u7684. \u60a8\u53ef\u4f7f\u7528 {1} \u9078\u9805\u4f86\u555f\u7528.

# Not concatenated with any other String. Variable: Name of a directory (input argument of the XJC utility).
Driver.NonExistentDir = \u62d2\u7d55\u5beb\u5165\u4e0d\u5b58\u5728\u7684\u76ee\u9304 "{0}"

# Usage not found. TODO Remove
#Driver.MissingRuntimePackageName = \
#       the -use-runtime option is missing a package name

# Not concatenated with any other string (written on a separate line).
Driver.MissingModeOperand = -mode \u9078\u9805\u907a\u6f0f\u904b\u7b97\u5143

# Usage not found. TODO Remove
#Driver.MissingCompatibilityOperand = \
#       the -compatibility option is missing an operand

# Not concatenated with any other string (written on a separate line).
Driver.MissingOperand = \u907a\u6f0f\u904b\u7b97\u5143

# Not concatenated with any other string (written on a separate line).
Driver.MissingProxyHost = \u53ef\u80fd\u662f -host \u9078\u9805\u907a\u6f0f\u904b\u7b97\u5143\n\u6216\u6307\u5b9a\u4e86 -port \u800c\u975e -host

# Not concatenated with any other string (written on a separate line).
Driver.MissingProxyPort = \u53ef\u80fd\u662f -port \u9078\u9805\u907a\u6f0f\u904b\u7b97\u5143\n\u6216\u6307\u5b9a\u4e86 -host \u800c\u975e -port

Driver.ILLEGAL_TARGET_VERSION = "{0}" \u4e0d\u662f\u6709\u6548\u7684\u76ee\u6a19\u7248\u672c. \u652f\u63f4 "2.0" \u548c "2.1".

# Not concatenated with any other string (written on a separate line).
Driver.MISSING_PROXYFILE = -httpproxyfile \u9078\u9805\u907a\u6f0f\u904b\u7b97\u5143

Driver.NO_SUCH_FILE = \u6c92\u6709\u6b64\u6a94\u6848: {0}

Driver.ILLEGAL_PROXY = "{0}" \u4e0d\u662f\u6709\u6548\u7684\u4ee3\u7406\u4e3b\u6a5f\u683c\u5f0f. \u683c\u5f0f\u70ba [user[:password]@]proxyHost:proxyPort

# Not concatenated with any other string (written on a separate line).
Driver.UnrecognizedMode = \u7121\u6cd5\u8fa8\u8b58\u7684\u6a21\u5f0f {0}

# Not concatenated with any other string (written on a separate line).
Driver.UnrecognizedParameter = \u7121\u6cd5\u8fa8\u8b58\u7684\u53c3\u6578 {0}

Driver.UnsupportedEncoding = \u4e0d\u652f\u63f4\u7684\u7de8\u78bc: {0}

Driver.MissingGrammar = \u672a\u6307\u5b9a\u6587\u6cd5

# {0} - namespace uri, {1} - local name of the attribute/element e.g.: Unexpected end of attribute {http://www.w3.org/XML/1998/namespace}:lang
Driver.NotABindingFile = \u4e0d\u662f\u5916\u90e8\u9023\u7d50\u6a94. \u6839\u5143\u7d20\u5fc5\u9808\u70ba ''{''http://java.sun.com/xml/ns/jaxb''}''bindings, \u4f46\u5176\u70ba ''{''{0}''}''{1}

# Not concatenated with any other string (written on a separate line).
Driver.ParsingSchema = \u6b63\u5728\u5256\u6790\u7db1\u8981...

Driver.ParseFailed = \u7121\u6cd5\u5256\u6790\u7db1\u8981.

Driver.StackOverflow = \u5806\u758a\u6ea2\u4f4d. \u53ef\u80fd\u662f\u60a8\u6b63\u5728\u7de8\u8b6f\u7684\u5927\u578b\u7db1\u8981\u9700\u8981\u66f4\u591a\u8cc7\u6e90, \u6216\u662f XJC \u6709\u932f\u8aa4. \u9996\u5148, \u8acb\u4f7f\u7528 -Xss JVM \u9078\u9805\u64f4\u5145\u5806\u758a\u5927\u5c0f. \u82e5\u9019\u6a23\u7121\u6cd5\u89e3\u6c7a\u554f\u984c, \u8acb\u4f7f\u7528 -debug \u9078\u9805\u4ee5\u53d6\u5f97\u5806\u758a\u8ffd\u8e64, \u4e26\u8207 Sun \u9023\u7d61.

# Not concatenated with any other string (written on a separate line).
Driver.CompilingSchema = \u6b63\u5728\u7de8\u8b6f\u7db1\u8981...

Driver.FailedToGenerateCode = \u7121\u6cd5\u7522\u751f\u7a0b\u5f0f\u78bc.

# DO NOT localize the 2.2.8-b130911.1802 string - it is a token for an mvn <properties filter>
Driver.FilePrologComment = \u6b64\u6a94\u6848\u662f\u7531 JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802 \u6240\u7522\u751f \n\u8acb\u53c3\u95b1 <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \n\u4e00\u65e6\u91cd\u65b0\u7de8\u8b6f\u4f86\u6e90\u7db1\u8981, \u5c0d\u6b64\u6a94\u6848\u6240\u505a\u7684\u4efb\u4f55\u4fee\u6539\u90fd\u5c07\u6703\u907a\u5931. \n\u7522\u751f\u6642\u9593: {0} \n

Driver.Version = xjc 2.2.8-b130911.1802

Driver.FullVersion = xjc \u5B8C\u6574\u7248\u672C "2.2.8-b130911.1802"

Driver.BuildID = 2.2.8-b130911.1802

# for JDK integration - include version in source zip
jaxb.jdk.version=@@JAXB_JDK_VERSION@@

# see java.text.SimpleDateFormat for format syntax
# DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
Driver.DateFormat = yyyy.MM.dd

# see java.text.SimpleDateFormat for format syntax
# Format should not be changed, English locale is used to transform this string into a real time. Letters can be translated but the user should known that java.text.SimpleDateFormat is responsible for formatting (meaning of symbols can be found at http://docs.oracle.com/javase/tutorial/i18n/format/simpleDateFormat.html).
Driver.TimeFormat = hh:mm:ss a z

# as in: "generated on <date> at <time>"
Driver.At = \u65bc

# ERROR in this meaning is a well known level of logging and should not be translated.
Driver.ErrorMessage = [ERROR] {0}

# WARNING in this meaning is a well known level of logging and should not be translated.
Driver.WarningMessage = [WARNING] {0}

# INFO in this meaning is a well known level of logging and should not be translated.
Driver.InfoMessage = [INFO] {0}

ModelLoader.TooManySchema = \u6b64\u7db1\u8981\u8a9e\u8a00\u6709\u592a\u591a\u7db1\u8981\u6a94\u6848. \u8acb\u4e00\u6b21\u7de8\u8b6f\u4e00\u500b\u6a94\u6848.

ModelLoader.BindingFileNotSupportedForRNC = RELAX NG \u7cbe\u7c21\u8a9e\u6cd5\u4e0d\u652f\u63f4\u5916\u90e8\u9023\u7d50\u6a94.

Driver.DefaultVersion = \u6b63\u5728\u5c07\u7248\u672c\u9810\u8a2d\u70ba JAXB 2.0

Driver.DefaultPackageWarning = \u5df2\u6307\u5b9a\u9810\u8a2d\u7684 Java \u5957\u88dd\u7a0b\u5f0f.  \u60a8\u5c07\u7121\u6cd5\u5b58\u53d6\u4efb\u4f55\u5176\u4ed6\u5957\u88dd\u7a0b\u5f0f\u7684\u985e\u5225\u4e2d\u7522\u751f\u7684\u7a0b\u5f0f\u78bc.

Driver.NotAValidFileName = "{0}" \u4e0d\u662f\u6709\u6548\u7684\u6a94\u6848\u540d\u7a31: {1}

Driver.FailedToParse = \u7121\u6cd5\u5256\u6790 "{0}": {1}

Driver.NotAFileNorURL = "{0}" \u4e0d\u662f\u6a94\u6848\u540d\u7a31\u6216 URL

FIELD_RENDERER_CONFLICT = "-{0}" \u8207 "-{1}" \u4e92\u65a5, \u56e0\u70ba\u5169\u8005\u5747\u6703\u5f71\u97ff\u7a0b\u5f0f\u78bc\u7522\u751f

NAME_CONVERTER_CONFLICT = "-{0}" \u8207 "-{1}" \u4e92\u65a5, \u56e0\u70ba\u5169\u8005\u5747\u6703\u5f71\u97ff\u7a0b\u5f0f\u78bc\u7522\u751f

# {0} - file path, {1} - exception message e.g.: Failed to load "/foo/bar/Library.jar": File not found.
FAILED_TO_LOAD = \u7121\u6cd5\u8f09\u5165 "{0}": {1}

PLUGIN_LOAD_FAILURE = \u7121\u6cd5\u8f09\u5165 Plugin: "{0}". \u8acb\u4f7f\u7528\u7cfb\u7d71\u7279\u6027 ''-Dcom.sun.tools.internal.xjc.Options.findServices=true'' \u57f7\u884c\u9032\u4e00\u6b65\u7684\u8a3a\u65b7
