#
# Copyright (c) 2005, 2014, 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.
#

wsimport.usage=\u7528\u6cd5: {0} [options] <WSDL_URI>\n\n\u4f7f\u7528 "wsimport -help" \u83b7\u53d6\u8be6\u7ec6\u7684\u9009\u9879\u8bf4\u660e\u3002

wsimport.help=\n\u7528\u6cd5: {0} [options] <WSDL_URI>\n\n\\\u5176\u4e2d [options] \u5305\u62ec:\n\  -b <path>                 \u6307\u5b9a jaxws/jaxb \u7ed1\u5b9a\u6587\u4ef6\u6216\u9644\u52a0\u6a21\u5f0f\n\                            (\u6bcf\u4e2a <path> \u90fd\u5fc5\u987b\u5177\u6709\u81ea\u5df1\u7684 -b)\n\  -B<jaxbOption>            \u5c06\u6b64\u9009\u9879\u4f20\u9012\u7ed9 JAXB \u6a21\u5f0f\u7f16\u8bd1\u5668\n\  -catalog <file>           \u6307\u5b9a\u7528\u4e8e\u89e3\u6790\u5916\u90e8\u5b9e\u4f53\u5f15\u7528\u7684\u76ee\u5f55\u6587\u4ef6\n\                            \u652f\u6301 TR9401, XCatalog \u548c OASIS XML \u76ee\u5f55\u683c\u5f0f\u3002\n\  -d <directory>            \u6307\u5b9a\u653e\u7f6e\u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u7684\u4f4d\u7f6e\n\  -encoding <encoding>      \u6307\u5b9a\u6e90\u6587\u4ef6\u6240\u4f7f\u7528\u7684\u5b57\u7b26\u7f16\u7801\n\  -extension                \u5141\u8bb8\u4f9b\u5e94\u5546\u6269\u5c55 - \u4e0d\u6309\u89c4\u8303\n\                            \u6307\u5b9a\u529f\u80fd\u3002\u4f7f\u7528\u6269\u5c55\u53ef\u80fd\u4f1a\n\                            \u5bfc\u81f4\u5e94\u7528\u7a0b\u5e8f\u4e0d\u53ef\u79fb\u690d\u6216\n\                            \u65e0\u6cd5\u4e0e\u5176\u4ed6\u5b9e\u73b0\u8fdb\u884c\u4e92\u64cd\u4f5c\n\  -help                     \u663e\u793a\u5e2e\u52a9\n\  -httpproxy:<host>:<port>  \u6307\u5b9a HTTP \u4ee3\u7406\u670d\u52a1\u5668 (\u7aef\u53e3\u9ed8\u8ba4\u4e3a 8080)\n\  -keep                     \u4fdd\u7559\u751f\u6210\u7684\u6587\u4ef6\n\  -p <pkg>                  \u6307\u5b9a\u76ee\u6807\u7a0b\u5e8f\u5305\n\  -quiet                    \u9690\u85cf wsimport \u8f93\u51fa\n\  -s <directory>            \u6307\u5b9a\u653e\u7f6e\u751f\u6210\u7684\u6e90\u6587\u4ef6\u7684\u4f4d\u7f6e\n\  -target <version>         \u6309\u7ed9\u5b9a\u7684 JAXWS \u89c4\u8303\u7248\u672c\u751f\u6210\u4ee3\u7801\n\                            \u9ed8\u8ba4\u4e3a 2.2, \u63a5\u53d7\u7684\u503c\u4e3a 2.0, 2.1 \u548c 2.2\n\                            \u4f8b\u5982, 2.0 \u5c06\u4e3a JAXWS 2.0 \u89c4\u8303\u751f\u6210\u517c\u5bb9\u7684\u4ee3\u7801\n\  -verbose                  \u6709\u5173\u7f16\u8bd1\u5668\u5728\u6267\u884c\u4ec0\u4e48\u64cd\u4f5c\u7684\u8f93\u51fa\u6d88\u606f\n\  -version                  \u8f93\u51fa\u7248\u672c\u4fe1\u606f\n\  -wsdllocation <location>  @WebServiceClient.wsdlLocation \u503c\n\  -clientjar <jarfile>      \u521b\u5efa\u751f\u6210\u7684 Artifact \u7684 jar \u6587\u4ef6\u4ee5\u53ca\n\                            \u8c03\u7528 Web \u670d\u52a1\u6240\u9700\u7684 WSDL \u5143\u6570\u636e\u3002\n\  -generateJWS              \u751f\u6210\u5b58\u6839 JWS \u5b9e\u73b0\u6587\u4ef6\n\  -implDestDir <directory>  \u6307\u5b9a\u751f\u6210 JWS \u5b9e\u73b0\u6587\u4ef6\u7684\u4f4d\u7f6e\n\  -implServiceName <name>   \u751f\u6210\u7684 JWS \u5b9e\u73b0\u7684\u670d\u52a1\u540d\u7684\u672c\u5730\u90e8\u5206\n\  -implPortName <name>      \u751f\u6210\u7684 JWS \u5b9e\u73b0\u7684\u7aef\u53e3\u540d\u7684\u672c\u5730\u90e8\u5206

wsimport.usage.extensions=\n\\\u6269\u5c55:\n\  -XadditionalHeaders              \u6620\u5c04\u6807\u5934\u4e0d\u7ed1\u5b9a\u5230\u8bf7\u6c42\u6216\u54cd\u5e94\u6d88\u606f\u4e0d\u7ed1\u5b9a\u5230\n\                                   Java \u65b9\u6cd5\u53c2\u6570\n\  -Xauthfile                       \u7528\u4e8e\u4f20\u9001\u4ee5\u4e0b\u683c\u5f0f\u7684\u6388\u6743\u4fe1\u606f\u7684\u6587\u4ef6: \n\                                   http://username:password@example.org/stock?wsdl\n\  -Xdebug                          \u8f93\u51fa\u8c03\u8bd5\u4fe1\u606f\n\  -Xno-addressing-databinding      \u5141\u8bb8 W3C EndpointReferenceType \u5230 Java \u7684\u7ed1\u5b9a\n\  -Xnocompile                      \u4e0d\u7f16\u8bd1\u751f\u6210\u7684 Java \u6587\u4ef6\n\  -XdisableAuthenticator           \u7981\u7528\u7531 JAX-WS RI \u4f7f\u7528\u7684\u9a8c\u8bc1\u7a0b\u5e8f,\n\                                   \u5c06\u5ffd\u7565 -Xauthfile \u9009\u9879 (\u5982\u679c\u8bbe\u7f6e)\n\  -XdisableSSLHostnameVerification \u5728\u63d0\u53d6 wsdl \u65f6\u7981\u7528 SSL \u4e3b\u673a\u540d\n\                                   \u9a8c\u8bc1


wsimport.usage.examples=\n\\\u793a\u4f8b:\n\  wsimport stock.wsdl -b stock.xml -b stock.xjb\n\  wsimport -d generated http://example.org/stock?wsdl\n

wsgen.usage=\u7528\u6cd5: {0} [options] <SEI>\n\n\u4f7f\u7528 "wsgen -help" \u83b7\u53d6\u9009\u9879\u7684\u8be6\u7ec6\u8bf4\u660e\u3002

wsgen.help=\n\u7528\u6cd5: {0} [options] <SEI>\n\n\\\u5176\u4e2d [options] \u5305\u62ec:\n\  -classpath <path>          \u6307\u5b9a\u67e5\u627e\u8f93\u5165\u7c7b\u6587\u4ef6\u7684\u4f4d\u7f6e\n\  -cp <path>                 \u4e0e -classpath <path> \u76f8\u540c\n\  -d <directory>             \u6307\u5b9a\u653e\u7f6e\u751f\u6210\u7684\u8f93\u51fa\u6587\u4ef6\u7684\u4f4d\u7f6e\n\  -encoding <encoding>       \u6307\u5b9a\u7531\u6e90\u6587\u4ef6\u4f7f\u7528\u7684\u5b57\u7b26\u7f16\u7801\n\  -extension                 \u5141\u8bb8\u4f9b\u5e94\u5546\u6269\u5c55 - \u4e0d\u6309\u89c4\u8303\n\                             \u6307\u5b9a\u529f\u80fd\u3002\u4f7f\u7528\u6269\u5c55\u53ef\u80fd\u4f1a\n\                             \u5bfc\u81f4\u5e94\u7528\u7a0b\u5e8f\u4e0d\u53ef\u79fb\u690d\u6216\n\                             \u65e0\u6cd5\u4e0e\u5176\u4ed6\u5b9e\u73b0\u8fdb\u884c\u4e92\u64cd\u4f5c\n\  -help                      \u663e\u793a\u5e2e\u52a9\n\  -keep                      \u4fdd\u7559\u751f\u6210\u7684\u6587\u4ef6\n\  -r <directory>             \u8d44\u6e90\u76ee\u6807\u76ee\u5f55, \u6307\u5b9a\u653e\u7f6e\n\                             \u8d44\u6e90\u6587\u4ef6 (\u4f8b\u5982 WSDL) \u7684\u4f4d\u7f6e\n\  -s <directory>             \u6307\u5b9a\u653e\u7f6e\u751f\u6210\u7684\u6e90\u6587\u4ef6\u7684\u4f4d\u7f6e\n\  -verbose                   \u6709\u5173\u7f16\u8bd1\u5668\u5728\u6267\u884c\u4ec0\u4e48\u64cd\u4f5c\u7684\u8f93\u51fa\u6d88\u606f\n\  -version                   \u8f93\u51fa\u7248\u672c\u4fe1\u606f\n\  -wsdl[:protocol]           \u751f\u6210 WSDL \u6587\u4ef6\u3002\u534f\u8bae\u662f\u53ef\u9009\u7684\u3002\n\                             \u6709\u6548\u534f\u8bae\u662f{1},\n\                             \u9ed8\u8ba4\u503c\u4e3a soap1.1\u3002\n\                             \u975e\u6807\u51c6\u534f\u8bae{2}\n\                             \u53ea\u80fd\u4e0e\n\                             -extension \u9009\u9879\u7ed3\u5408\u4f7f\u7528\u3002\n\  -inlineSchemas             \u751f\u6210\u7684 wsdl \u4e2d\u7684\u5185\u5d4c\u6a21\u5f0f\u3002\u5fc5\u987b\n\                             \u4e0e -wsdl \u9009\u9879\u7ed3\u5408\u4f7f\u7528\u3002\n\  -servicename <name>        \u6307\u5b9a\u8981\u7528\u5728\u751f\u6210\u7684 WSDL \u4e2d\u7684\u670d\u52a1\u540d\n\                             \u4e0e -wsdl \u9009\u9879\u7ed3\u5408\u4f7f\u7528\u3002\n\  -portname <name>           \u6307\u5b9a\u8981\u7528\u5728\u751f\u6210\u7684 WSDL \u4e2d\u7684\u7aef\u53e3\u540d\n\                             \u4e0e -wsdl \u9009\u9879\u7ed3\u5408\u4f7f\u7528\u3002


wsgen.usage.examples=\n\\\u793a\u4f8b:\n\  wsgen -cp . example.Stock\n\  wsgen -cp . example.Stock -wsdl -servicename '{http://mynamespace}MyService'\n
wrapperTask.needEndorsed=\u60a8\u6b63\u5728\u9644\u5e26 JAX-WS {0} API \u7684 JDK6 \u4e0a\u8fd0\u884c, \u4f46\u6b64\u5de5\u5177\u9700\u8981 JAX-WS {1} API\u3002\u8bf7\u4f7f\u7528\u6388\u6743\u6807\u51c6\u8986\u76d6\u673a\u5236 (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), \u6216\u8005\u5728 <{2}> \u4e0a\u8bbe\u7f6e xendorsed="true"\u3002

# {0}, {2} - version (e.g. 2.1), {1} - absolute class location
wrapperTask.loadingIncorrectApi=\u60a8\u6b63\u5728\u4ece{1}\u52a0\u8f7d JAX-WS {0} API, \u4f46\u6b64\u5de5\u5177\u9700\u8981 JAX-WS {2} API\u3002

invoker.needEndorsed=\u60a8\u6b63\u5728\u9644\u5e26 JAX-WS {0} API \u7684 JDK6 \u4e0a\u8fd0\u884c, \u4f46\u6b64\u5de5\u5177\u9700\u8981 JAX-WS {1} API\u3002\u8bf7\u4f7f\u7528\u6388\u6743\u6807\u51c6\u8986\u76d6\u673a\u5236 (http://docs.oracle.com/javase/6/docs/technotes/guides/standards/), \u6216\u8005\u4f7f\u7528 -Xendorsed \u9009\u9879\u3002


#
# Generic Messages
#
wscompile.invalidOption=\u65e0\u6cd5\u8bc6\u522b\u7684\u53c2\u6570{0}
wsimport.noSuchJaxbOption=\u6ca1\u6709\u8fd9\u79cd JAXB \u9009\u9879: {0}

wscompile.error=\u9519\u8bef: {0}
wscompile.warning=\u8b66\u544a: {0}
wscompile.info=\u4fe1\u606f: {0}
wscompile.duplicateOption=\u91cd\u590d\u7684\u9009\u9879: {0}
wscompile.noSuchDirectory=\u627e\u4e0d\u5230\u76ee\u5f55: {0}
# wscompile.missingOptionArgument
wscompile.missingOptionArgument=\u9009\u9879 \"{0}\" \u9700\u8981\u4e00\u4e2a\u53c2\u6570
wscompile.compilationFailed=\u7f16\u8bd1\u5931\u8d25, \u9519\u8bef\u5e94\u8be5\u5df2\u4e88\u4ee5\u62a5\u544a
wscompile.unsupportedEncoding=\u4e0d\u652f\u6301\u7684\u7f16\u7801: {0}

wsimport.missingFile=\u7f3a\u5c11 WSDL_URI

wsgen.invalid.protocol=\"{0}\" \u4e0d\u662f\u652f\u6301\u7684\u534f\u8bae\u3002\u652f\u6301\u7684\u534f\u8bae\u5305\u62ec: {1}\u3002
wsgen.invalid.transport=\"{0}\" \u4e0d\u662f\u652f\u6301\u7684\u4f20\u8f93\u3002\u652f\u6301\u7684\u4f20\u8f93\u5305\u62ec: {1}\u3002
wsgen.class.not.found=\u672a\u627e\u5230\u7c7b: \"{0}\"
wsgen.could.not.create.file="\u65e0\u6cd5\u521b\u5efa\u6587\u4ef6: \"{0}\"
wsgen.missingFile=\u7f3a\u5c11 SEI
wsgen.soap12.without.extension=\u53ef\u9009\u534f\u8bae \"Xsoap1.2\" \u5fc5\u987b\u4e0e \"-extension\" \u9009\u9879\u7ed3\u5408\u4f7f\u7528\u3002
wsgen.protocol.without.extension=\u53ef\u9009\u534f\u8bae \"{0}\" \u5fc5\u987b\u4e0e \"-extension\" \u9009\u9879\u7ed3\u5408\u4f7f\u7528\u3002
wsgen.wsdl.arg.no.genwsdl=\"{0}\" \u9009\u9879\u53ea\u80fd\u4e0e "-wsdl" \u9009\u9879\u7ed3\u5408\u4f7f\u7528\u3002
wsgen.servicename.missing.namespace=\u670d\u52a1\u540d \"{0}\" \u7f3a\u5c11\u540d\u79f0\u7a7a\u95f4\u3002
wsgen.servicename.missing.localname=\u670d\u52a1\u540d \"{0}\" \u7f3a\u5c11\u672c\u5730\u540d\u79f0\u3002
wsgen.portname.missing.namespace=\u7aef\u53e3\u540d \"{0}\" \u7f3a\u5c11\u540d\u79f0\u7a7a\u95f4\u3002
wsgen.portname.missing.localname=\u7aef\u53e3\u540d \"{0}\" \u7f3a\u5c11\u672c\u5730\u540d\u79f0\u3002
wsgen.class.must.be.implementation.class=\u7c7b \"{0}\" \u4e0d\u662f\u7aef\u70b9\u5b9e\u73b0\u7c7b\u3002
wsimport.NotAFileNorURL = "{0}" \u4e0d\u662f\u6587\u4ef6\u540d\u4e5f\u4e0d\u662f URL

wsgen.cannot.gen.wsdl.for.non.soap.binding=wsgen \u65e0\u6cd5\u5728\u7c7b{1}\u4e0a\u4e3a\u975e SOAP \u7ed1\u5b9a{0}\u751f\u6210 WSDL

wsgen.cannot.gen.wsdl.for.soap12.binding=wsgen \u65e0\u6cd5\u5728\u7c7b{1}\u4e0a\u4e3a SOAP 1.2 \u7ed1\u5b9a{0}\u751f\u6210 WSDL\u3002\
Please \u6307\u5b9a \"-extension\" \u548c \"-wsdl:protocol XSoap1.2\" \u5f00\u5173\u3002\u4f8b\u5982:\
wsgen -wsdl:protocol XSoap1.2 -extenson {1}
wsgen.inlineSchemas.only.with.wsdl=\"-inlineSchemas\" \u5fc5\u987b\u4e0e \"-wsdl\" \u9009\u9879\u7ed3\u5408\u4f7f\u7528

wsgen.no.webservices.class=wsgen \u672a\u627e\u5230\u5e26\u6709 @WebService \u6ce8\u91ca\u7684\u4efb\u4f55\u7c7b\u3002\u8bf7\u5728{0}\u4e0a\u6307\u5b9a @WebService \u6ce8\u91ca\u3002

wsimport.no.wsdl=\u65e0\u6cd5\u8bfb\u53d6 WSDL \u6587\u6863: {0}, \u539f\u56e0\u4e3a 1) \u627e\u4e0d\u5230\u6587\u6863; 2) \u65e0\u6cd5\u8bfb\u53d6\u6587\u6863; 3) \u6587\u6863\u7684\u6839\u5143\u7d20\u4e0d\u662f <wsdl:definitions>\u3002

wsimport.FailedToParse = \u65e0\u6cd5\u89e3\u6790 "{0}": {1}

wsimport.ParsingWSDL=\u6b63\u5728\u89e3\u6790 WSDL...\n\n
wsimport.GeneratingCode=\n\u6b63\u5728\u751f\u6210\u4ee3\u7801...\n
wsimport.CompilingCode=\n\u6b63\u5728\u7f16\u8bd1\u4ee3\u7801...\n
wsimport.ILLEGAL_TARGET_VERSION = "{0}" \u4e0d\u662f\u6709\u6548\u7684\u76ee\u6807\u7248\u672c\u3002\u652f\u6301 "2.0" \u548c "2.1"\u3002

wsimport.ILLEGAL_AUTH_INFO = "{0}" \u4e0d\u662f\u6709\u6548\u7684\u6388\u6743\u4fe1\u606f\u683c\u5f0f\u3002\u683c\u5f0f\u5e94\u4e3a http[s]://user:password@host:port//<url-path>\u3002

wsimport.readingAuthFile = \u6b63\u5728\u5c1d\u8bd5\u8bfb\u53d6\u6388\u6743\u6587\u4ef6: "{0}"...

# {0} - path to current authorization file, {1} - path to metro authorization file
wsimport.authFileNotFound = \u672a\u627e\u5230\u6388\u6743\u6587\u4ef6 "{0}"\u3002\u5982\u679c WSDL \u8bbf\u95ee\u9700\u8981\u57fa\u672c\u9a8c\u8bc1, \u8bf7\u5728{1}\u4e2d\u63d0\u4f9b\u5177\u6709\u8bfb\u53d6\u8bbf\u95ee\u6743\u9650\u7684\u6388\u6743\u6587\u4ef6, \u6216\u8005\u4f7f\u7528 -Xauthfile \u6307\u5b9a\u6388\u6743\u6587\u4ef6\u5e76\u5728\u6bcf\u4e00\u884c\u4e0a\u4f7f\u7528\u4ee5\u4e0b\u683c\u5f0f\u63d0\u4f9b\u6388\u6743\u4fe1\u606f: http[s]://user:password@host:port//<url-path>

# {0} - exception message, {1} - systemId (e.g. location of WSDL file) , {2} - path to metro authentication file e.g.: Server returned HTTP response code: 401 for URL: http://localhost:8080/myServer/mywebService?WSDL, "http://localhost:8080/myServer/mywebService?WSDL" needs authorization, please provide authorization file with read access at C:\Documents and Settings\user\.metro\auth or use -Xauthfile to give the authorization file and on each line provide authorization information using this format : http[s]://user:password@host:port//
wsimport.authInfoNeeded = {0},  "{1}" \u9700\u8981\u6388\u6743, \u8bf7\u5728{2}\u4e2d\u63d0\u4f9b\u5177\u6709\u8bfb\u53d6\u8bbf\u95ee\u6743\u9650\u7684\u6388\u6743\u6587\u4ef6, \u6216\u8005\u4f7f\u7528 -Xauthfile \u6307\u5b9a\u6388\u6743\u6587\u4ef6\u5e76\u5728\u6bcf\u4e00\u884c\u4e0a\u4f7f\u7528\u4ee5\u4e0b\u683c\u5f0f\u63d0\u4f9b\u6388\u6743\u4fe1\u606f: http[s]://user:password@host:port//<url-path>

wsimport.AUTH_INFO_LINENO = {1}\u7684\u7b2c {0} \u884c


wsimport.ErrorMessage = [ERROR] {0}

wsimport.WarningMessage = [WARNING] {0}

wsimport.InfoMessage = [INFO] {0}

wsimport.DebugMessage = [DEBUG] {0}

wsimport.httpRedirect = \u670d\u52a1\u5668\u8fd4\u56de\u4e86 HTTP \u72b6\u6001\u4ee3\u7801: "{0}", \u6b63\u5728\u4f7f\u7528 "{1}" \u91cd\u8bd5

wsimport.maxRedirectAttempt = \u65e0\u6cd5\u83b7\u53d6\u5df2\u8fbe\u5230\u7684 WSDL \u6700\u5927\u91cd\u5b9a\u5411\u6b21\u6570 (5)

wsimport.wsdllocation.clientjar = \u4f7f\u7528 clientJar \u9009\u9879\u65f6\u4e0d\u80fd\u6307\u5b9a wsdlLocation
# {0} - path to a zip file
wsimport.archivingArtifacts=\n\u5c06\u751f\u6210\u7684 Artifact \u5f52\u6863\u5230{0}\u3002\n
wsimport.archiveArtifact=\u5c06{0}\u6dfb\u52a0\u5230\u6863\u6848{1}
wsimport.fetchingMetadata=\n\u4e0b\u8f7d WSDL \u53ca\u5173\u8054\u7684\u5143\u6570\u636e\n
# {0} - URI, {1} - path to a file
wsimport.document.download=\n\u5c06\u5143\u6570\u636e\u6587\u6863\u4ece{0}\u4e0b\u8f7d\u5230{1}
