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

# Usage not found. TODO Remove
#webserviceap.nestedModelError=modeler error: {0}
webserviceap.fileNotFound=erreur : fichier introuvable : {0}
webserviceap.error=erreur : {0}
webserviceap.warning=avertissement : {0}
webserviceap.info=informations : {0}
webserviceap.compilationFailed=\u00E9chec de la compilation, les erreurs auraient d\u00FB \u00EAtre signal\u00E9es
webserviceap.succeeded: Succ\u00E8s

webserviceap.method.not.annotated=La m\u00E9thode {0} sur la classe {1} n''est pas annot\u00E9e.
webserviceap.rpc.encoded.not.supported=La classe {0} comporte une annotation SOAPBinding rpc/encoded. Les annotations SOAPBinding rpc/encoded ne sont pas prises en charge dans JAXWS 2.0.
webservice.encoded.not.supported=La classe {0} comporte une annotation SOAPBinding non valide. L''annotation SOAPBinding {1}/encoded n''est pas prise en charge
webserviceap.model.already.exists=le mod\u00E8le existe d\u00E9j\u00E0
webserviceap.endpointinterface.on.interface=L''interface d''adresse de service {0} ne peut comporter aucune annotation WebService.endpointInterface \: {1}
webserviceap.java.typeNotFound=Le type {0} est introuvable dans le mapping
webserviceap.endpointinterfaces.do.not.match=L''interface d''adresse {0} ne correspond pas \u00E0 l''interface {1}.

# {0} - class name, {1} - number e.g.: Could not get TypeDeclaration for: foo.Bar in apt round: 2
webserviceap.could.not.find.typedecl=Impossible d''obtenir TypeElement pour {0} dans le cycle de traitement d''annotation \: {1}

webserviceap.no.webservice.endpoint.found=Une adresse de service Web est introuvable

webserviceap.endpointinterface.has.no.webservice.annotation=L''interface d''adresse {0} doit comporter une annotation WebService

webserviceap.oneway.operation.cannot.have.return.type=La m\u00E9thode {1} de classe {0} a l''annotation @Oneway mais comporte un type de donn\u00E9es renvoy\u00E9.

webserviceap.oneway.operation.cannot.have.holders=La m\u00E9thode {1} de classe {0} \u00E0 l''annotation @Oneway mais contient des param\u00E8tres INOUT ou OUT (javax.xml.ws.Holder)

webserviceap.oneway.operation.cannot.declare.exceptions=La m\u00E9thode {1} de classe {0} a l''annotation @Oneway mais d\u00E9clare l''exception {2}

webserviceap.cannot.combine.handlerchain.soapmessagehandlers=Vous ne pouvez pas indiquer \u00E0 la fois les annotations HanlderChain et SOAPMessageHandlers

webserviceap.invalid.handlerchain.file.nohandler-config=Le fichier HandlerChain {0} n''est pas valide, il ne contient aucun \u00E9l\u00E9ment handler-config

webserviceap.could.not.find.handlerchain=Handlerchain {0} introuvable dans le fichier de gestionnaire {1}

webserviceap.handlerclass.notspecified=Un gestionnaire du fichier HandlerChain \: {0} ne sp\u00E9cifie aucun \u00E9l\u00E9ment handler-class

webserviceap.init_param.format.error=un \u00E9l\u00E9ment <init-param> doit comporter exactement 1 \u00E9l\u00E9ment <param-name> et 1 \u00E9l\u00E9ment <param-value>

webserviceap.document.literal.bare.method.return.not.unique=Les m\u00E9thodes BARE de document/litt\u00E9ral doivent comporter une combinaison unique de type de donn\u00E9es renvoy\u00E9 et de nom de r\u00E9sultat. Classe {0} m\u00E9thode \: {1}, nom de r\u00E9sultat \: {2} type de donn\u00E9es renvoy\u00E9 \: {3}

webserviceap.document.literal.bare.method.not.unique=Les m\u00E9thodes BARE de document/litt\u00E9ral doivent comporter des noms de param\u00E8tre uniques. Classe \: {0}, m\u00E9thode \: {1}, nom de param\u00E8tre \: {2}

webserviceap.document.literal.bare.cannot.have.more.than.one.out=Les m\u00E9thodes BARE de document/litt\u00E9ral doivent comporter une valeur renvoy\u00E9e ou un param\u00E8tre OUT. Classe \: {0}, m\u00E9thode \: {1}

webserviceap.document.literal.bare.must.have.only.one.in.parameter=Les m\u00E9thodes BARE de document/litt\u00E9ral ne doivent pas comporter plus d''un param\u00E8tre IN non destin\u00E9 \u00E0 un en-t\u00EAte. Classe \: {0}, m\u00E9thode \: {1}, nombre de param\u00E8tres non destin\u00E9s \u00E0 un en-t\u00EAte \: {2}

webserviceap.document.literal.bare.must.have.one.in.or.out=Les m\u00E9thodes BARE de document/litt\u00E9ral doivent comporter au moins un des \u00E9l\u00E9ments suivants : une valeur renvoy\u00E9e, un param\u00E8tre IN ou un param\u00E8tre OUT. Classe \: {0}, m\u00E9thode \: {1}

webserviceap.holder.parameters.must.not.be.in.only=Les param\u00E8tres javax.xml.ws.Holder ne doivent pas \u00EAtre annot\u00E9s avec la propri\u00E9t\u00E9 WebParam.Mode.IN. Classe \: {0}, m\u00E9thode \: {1}, param\u00E8tre \: {2}

webserviceap.document.bare.holder.parameters.must.not.be.inout=Les param\u00E8tres javax.xml.ws.Holder dans les op\u00E9rations BARE de document doivent \u00EAtre WebParam.Mode.INOUT. Classe \: {0}, m\u00E9thode \: {1}, param\u00E8tre \: {2}

webserviceap.endpointinterface.class.not.found=La classe endpointInterface {0} est introuvable

webserviceap.sei.cannot.contain.constant.values=Une interface d''adresse de service ne peut contenir aucune d\u00E9claration constante \: interface \: {0}, champ \: {1}.

webserviceap.method.return.type.cannot.implement.remote=Les types de donn\u00E9es renvoy\u00E9s de m\u00E9thode ne peuvent pas impl\u00E9menter java.rmi.Remote. Classe \: {0}, m\u00E9thode \: {1}, type de donn\u00E9es renvoy\u00E9 \: {2}

webserviceap.method.parameter.types.cannot.implement.remote=Les types de param\u00E8tre de m\u00E9thode ne peuvent pas impl\u00E9menter java.rmi.Remote. Classe \: {0}, m\u00E9thode \: {1}, param\u00E8tre \: {2}, type \: {3}

webserviceap.operation.name.not.unique=Les noms d''op\u00E9ration doivent \u00EAtre uniques. Classe \: {0}, m\u00E9thode \: {1}, nom d''op\u00E9ration \: {2}

webserviceap.method.request.wrapper.bean.name.not.unique=Les noms de bean de wrapper de demande doivent \u00EAtre uniques et ne doivent pas \u00EAtre en conflit avec les autres classes g\u00E9n\u00E9r\u00E9es. Classe \: {0}, m\u00E9thode : {1}

webserviceap.method.response.wrapper.bean.name.not.unique=Les noms de bean de wrapper de r\u00E9ponse doivent \u00EAtre uniques et ne doivent pas \u00EAtre en conflit avec les autres classes g\u00E9n\u00E9r\u00E9es. Classe \: {0}, m\u00E9thode : {1}

webserviceap.method.exception.bean.name.not.unique=Les noms de bean d''exception doivent \u00EAtre uniques et ne doivent pas \u00EAtre en conflit avec les autres classes g\u00E9n\u00E9r\u00E9es. Classe \: {0}, exception : {1}

webserviceap.rpc.literal.parameters.must.have.webparam=Tous les param\u00E8tres de litt\u00E9ral RPC doivent comporter une annotation WebParam. Classe \: {0}, m\u00E9thode \: {1}, param\u00E8tre : {2}

webserviceap.rpc.literal.webparams.must.specify.name=Tous les annotations WebParam de litt\u00E9ral RPC doivent indiquer un nom. Classe \: {0}, m\u00E9thode : {1}, param\u00E8tre : {2}

webserviceap.rpc.literal.must.not.be.bare=Les annotations SOAPBinding de litt\u00E9ral RPC doivent comporter le parameterStyle WRAPPED. Classe \: {0}.

webserviceap.header.parameters.must.have.webparam.name=Toutes les annotations WebParam sur les param\u00E8tres d''en-t\u00EAte doivent indiquer un nom. Classe \: {0}, m\u00E9thode : {1}, param\u00E8tre : {2}

webserviceap.failed.to.find.handlerchain.file=Fichier HandlerChain introuvable. classe\ : {0}, fichier :\ {1}

webserviceap.failed.to.parse.handlerchain.file=Echec de l''analyse du fichier HandlerChain. Classe \: {0}, fichier \: {1}

webserviceap.class.not.found=Classe introuvable : {0}

webserviceap.rpc.soapbinding.not.allowed.on.method=Les annotations de binding SOAPBinding.Style.RPC ne sont pas autoris\u00E9es sur les m\u00E9thodes. Classe \: {0}, m\u00E9thode \: {1}

webserviceap.mixed.binding.style=La classe {0} contient des bindings mixtes. SOAPBinding.Style.RPC et SOAPBinding.Style.DOCUMENT ne peuvent pas \u00EAtre mixtes.

webserviceap.endpointinteface.plus.annotation=L''annotation @{0} ne peut pas \u00EAtre utilis\u00E9e avec l''\u00E9l\u00E9ment @javax.jws.WebService.endpointInterface.

webserviceap.endpointinteface.plus.element=L''\u00E9l\u00E9ment @javax.jws.WebService.{0} ne peut pas \u00EAtre utilis\u00E9 avec l''\u00E9l\u00E9ment @javax.jws.WebService.endpointInterface.

webserviceap.non.in.parameters.must.be.holder=Classe {0}, m\u00E9thode : {1}, param\u00E8tre : {2} n''est pas WebParam.Mode.IN et n''est pas de type javax.xml.ws.Holder.

webserviceap.invalid.sei.annotation.element=L''\u00E9l\u00E9ment @javax.jws.WebService.{0} ne peut pas \u00EAtre indiqu\u00E9 sur une interface d''adresse de service. Classe \: {1}

webserviceap.invalid.sei.annotation=L''annotation @{0} ne peut pas \u00EAtre utilis\u00E9e sur une interface d''adresse de service. Classe \: {1}

webserviceap.invalid.sei.annotation.element.exclude=L''\u00E9l\u00E9ment @javax.jws.WebMethod({0}) ne peut pas \u00EAtre utilis\u00E9 sur une interface d''adresse de service. Classe \: {1}, m\u00E9thode \: {2}

webserviceap.invalid.webmethod.element.with.exclude=L''\u00E9l\u00E9ment @javax.jws.WebMethod.{0} ne peut pas \u00EAtre indiqu\u00E9 avec l''\u00E9l\u00E9ment @javax.jws.WebMethod.exclude. Classe \: {1}, m\u00E9thode \: {2}

webserviceap.doc.bare.no.out=Les m\u00E9thodes BARE de document/litt\u00E9ral sans aucun type de donn\u00E9es renvoy\u00E9 ou param\u00E8tre OUT/INOUT doivent \u00EAtre annot\u00E9es comme @Oneway. Classe \: {0}, m\u00E9thode : {1}
webserviceap.doc.bare.return.and.out=Les m\u00E9thodes BARE de document/litt\u00E9ral ne peuvent pas comporter de type de donn\u00E9es renvoy\u00E9 et de param\u00E8tres OUT. Classe \: {0}, m\u00E9thode : {1}
webserviceap.oneway.and.out=Les m\u00E9thodes @Oneway ne peuvent comporter aucun param\u00E8tre OUT. Classe \: {0}, m\u00E9thode : {1}

webserviceap.webservice.class.not.public=Les classes annot\u00E9es avec @javax.jws.WebService doivent \u00EAtre de type public. Classe \: {0}

webserviceap.webservice.class.is.final=Les classes annot\u00E9es avec @javax.jws.WebService ne doivent pas \u00EAtre de type final. Classe \: {0}

webserviceap.webservice.class.is.abstract=Les classes annot\u00E9es avec @javax.jws.WebService ne doivent pas \u00EAtre de type abstract. Classe \: {0}

webserviceap.webservice.class.is.innerclass.not.static=Les classes internes annot\u00E9es avec @javax.jws.WebService doivent \u00EAtre de type static. Classe \: {0}

webserviceap.webservice.method.is.abstract=Les classes annot\u00E9es avec @javax.jws.WebService ne doivent comporter aucune m\u00E9thode abstract. Classe \: {0}, m\u00E9thode : {1}

webserviceap.webservice.method.is.static.or.final=La m\u00E9thode annot\u00E9e avec @javax.jws.WebMethod ne doit pas \u00EAtre static ou final. Classe \: {0}, m\u00E9thode : {1}

#webserviceap.doc.bare.return.and.out=Document literal bare methods must not have a return value and an OUT/INOUT parameter.  Class\: {0} Method\: {1}

webserviceap.webservice.no.default.constructor=Les classes annot\u00E9es avec @javax.jws.WebService doivent avoir un constructeur par d\u00E9faut public. Classe \: {0}

webserviceap.oneway.and.not.one.in=Les m\u00E9thodes BARE de document/litt\u00E9ral annot\u00E9es avec @javax.jws.Oneway doivent comporter un param\u00E8tre IN non destin\u00E9 \u00E0 un en-t\u00EAte. Classe \: {0}, m\u00E9thode \: {1}

webserviceap.doc.bare.no.return.and.no.out=Les m\u00E9thodes BARE de document/litt\u00E9ral ne comportant aucune valeur renvoy\u00E9e doivent avoir un seul param\u00E8tre OUT/INOUT. Classe \: {0}, m\u00E9thode \: {1}

webserviceap.doc.bare.and.no.one.in=Les m\u00E9thodes BARE de document/litt\u00E9ral doivent comporter un param\u00E8tre IN/INOUT non destin\u00E9 \u00E0 un en-t\u00EAte. Classe \: {0}, m\u00E9thode \: {1}

webserviceap.method.not.implemented=Les m\u00E9thodes d''une classe endpointInterface doivent \u00EAtre impl\u00E9ment\u00E9es dans la classe d''impl\u00E9mentation. Classe d''interface \:{0}, classe d''impl\u00E9mentation \: {1}, m\u00E9thode \: {2}

webserviceap.no.package.class.must.have.targetnamespace=Les classes annot\u00E9es avec @javax.jws.Webservice qui n''appartiennent \u00E0 aucun package doivent comporter l''\u00E9l\u00E9ment @javax.jws.Webservice.targetNamespace. Classe \: {0}

webserviceap.webservice.and.webserviceprovider=Les classes ne peuvent pas \u00EAtre annot\u00E9es \u00E0 la fois avec @javax.jws.WebService et @javax.xml.ws.WebServiceProvider. Classe \: {0}

webserviceap.invalid.soapbinding.parameterstyle= Syntaxe incorrecte de l''annotation {0} sur {1}, ParameterStyle ne peut \u00EAtre que WRAPPED avec le service Web de style RPC.
