###############################################################################
# Copyright (c) 2001, 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
# 
# Contributors:
# IBM Corporation - initial API and implementation
###############################################################################
#This properties file hold all the externalised strings for eTools WAR Validation project
# Validation project
#
# Messages should be according to the format at:
#     http://hany.austin.ibm.com/messages/index.html
#
# Briefly:
#     MESSAGE_ID=<ComponentPrefix><MessageNumber><TypeCode>: <MessageText>
#
# The prefix for this component is:
#     CHKJ (IBM WebSphere Validation)
#
# Note the ": " that appears between the type code and the message text.
#
# :Begin: WebSphere Quality Validation Information :Begin:
#COMPONENTPREFIX CHKJ
#COMPONENTNAMEFOR CHKJ IBM WebSphere Validation
#CMVCPATHNAME ncf/src/java/com/ibm/websphere/validation/warvalidation.properties
# :End: WebSphere Quality Validation Information :End:
#

# 2-July-2001:
#  This file has been tested using the ProcessMsgFile tool, written by 
#  Hany Salem and owned by Dennis Hebert.  Any future changes should 
#  also be verified using this tool.  Please contact Dennis 
#  (hebert@us.ibm.com or T/L 543-2520) for more information.
#

# --------------------------------
ERROR_WAR_VALIDATION_FAILED=CHKJ3000E: Echec de validation WAR : {0}
#EXPLANATION None.
#USERACTION None.


# --------------------------------
ERROR_EAR_DUPLICATE_ROLES=CHKJ1002E: R\u00f4le de s\u00e9curit\u00e9 nomm\u00e9 {0} en double.
MESSAGE_WAR_VALIDATION_MISSING_JSP=CHKJ3001E: Le fichier JSP {0} du servlet \"{1}\" est manquant.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_SMALL_ICON=CHKJ3002E: Le fichier <small-icon> {0} est manquant.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_LARGE_ICON=CHKJ3003E: Le fichier <large-icon> {0} est manquant.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_BROKEN_SERVLET_MAPPING=CHKJ3004W: Le mappage de servlet \"{0}\" fait r\u00e9f\u00e9rence \u00e0 un servlet non d\u00e9fini.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_NO_WELCOME_FILE=CHKJ3005E: Entr\u00e9e de la liste de fichiers de bienvenue vide.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_MISSING_WELCOME_FILE=CHKJ3006E: Le fichier de bienvenue {0} est manquant.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_MISSING_TLD=CHKJ3007E: Le fichier du descripteur de la biblioth\u00e8que de balises {0} est manquant.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_INVALID_WAR_FILE=CHKJ3008E: Fichier WAR manquant ou non valide.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_BROKEN_FILTER_MAPPING=CHKJ3009E: Le mappage de filtres \"{0}\" fait r\u00e9f\u00e9rence \u00e0 un filtre non d\u00e9fini.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_WELCOME_FILE=CHKJ3010W: Les noms de fichiers de pages d''accueil ne peuvent ni commencer ni finir par /.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
WAR_DD_PARSE_LINECOL=CHKJ1009E: Erreur d''analyse : {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
WAR_DD_PARSE_LINE=CHKJ1010E: Erreur d'analyse du descripteur de d\u00e9ploiement.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
WAR_DD_PARSE_NOINFO=CHKJ1011E: Erreur d'analyse du descripteur de d\u00e9ploiement.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
WAR_DD_CANNOT_OPEN_DD=CHKJ1012E: Impossible d'ouvrir le descripteur de d\u00e9ploiement. Validation non termin\u00e9e.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_URL=CHKJ3013E: L''URL mappant \"{0}\" n''est pas valide.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_SEC_ROLE=CHKJ3014E: Lien de r\u00f4le de s\u00e9curit\u00e9 non valide : {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_HTTP_CMD=CHKJ3015E: M\u00e9thode HTTP non valide : {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_TRANSPORT=CHKJ3016E: Garantie de transport non valide.  Les valeurs valides sont \"NONE\", \"INTEGRAL\" ou \"CONFIDENTIAL\".

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_JSPFILE_REF=CHKJ3018E: Le fichier jsp \"{0}\" r\u00e9f\u00e9renc\u00e9 par le servlet {1} doit correspondre \u00e0 un chemin d''acc\u00e8s absolu.


# --------------------------------
ERROR_EAR_INVALID_CONTEXT_ROOT=CHKJ3017E: Le projet Web {0} est mapp\u00e9 \u00e0 une racine de contexte non valide {1} dans le projet EAR {2}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_ERROR_PAGE=IWAE0001E CHKJ3019E: L'emplacement de la page d'erreurs doit commencer par /.
#EXPLANATION None.
#USERACTION None.

MESSAGE_WAR_VALIDATION_INVALID_SEC_ROLE_NAME=CHKJ3020E: Nom du r\u00f4le de s\u00e9curit\u00e9 non valide : {0}.
#EXPLANATION None.
#USERACTION None.

MESSAGE_WAR_VALIDATION_INVALID_AUTH_METHOD=CHKJ3021E: M\u00e9thode d'authentification non valide.  Les valeurs valides sont : \"BASIC\", \"DIGEST\", \"FORM\" ou \"CLIENT-CERT\".
#EXPLANATION None.
#USERACTION None.

MESSAGE_WAR_VALIDATION_IGNORE_FORM_LOGIN=CHKJ3022E: La m\u00e9thode d''authentification est {0}.  Les valeurs de formulaire, de connexion et de configuration seront ignor\u00e9es si vous n''utilisez pas la m\u00e9thode d''authentification FORM.
#EXPLANATION None.
#USERACTION None.

MESSAGE_WAR_VALIDATION_RES_AUTH_REQUIRED_22=CHKJ3023E: La r\u00e9f\u00e9rence de ressource {0} doit contenir l''authentification de la ressource de type "SERVLET" ou "CONTAINER".
MESSAGE_WAR_VALIDATION_RES_AUTH_REQUIRED_23=CHKJ3024E: La r\u00e9f\u00e9rence de ressource {0} doit contenir l''authentification de la ressource de type "Application" ou "Container".
MESSAGE_WAR_VALIDATION_RES_AUTH_INVALID_22=CHKJ3025E:  \"Application\" n'est pas une valeur valide pour l'authentification de ressource dans un descripteur de d\u00e9ploiement de niveau 2.2.  Utilisez plut\u00f4t \"SERVLET\".
MESSAGE_WAR_VALIDATION_RES_AUTH_INVALID_23=CHKJ3026E:  \"SERVLET\" n'est pas une valeur valide pour l'authentification de ressource dans un descripteur de d\u00e9ploiement de niveau 2.2.  Utilisez plut\u00f4t \"Application\".

MESSAGE_WAR_VALIDATION_INVALID_EXCEPTION_TYPE=CHKJ3027E: Type d''exception {0} non valide.  Le type d''exception doit contenir un nom de classe complet d''un type d''exception Java.
#EXPLANATION None.
#USERACTION None.



# --------------------------------
MESSAGE_WAR_VALIDATION_DUPLICATE_MAPPING=CHKJ4010W: URL en double mappant {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_DUPLICATE_SERVLET=CHKJ4011W: Entr\u00e9e de servlet en double {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_SESSION_TIMEOUT=CHKJ4012W: Le d\u00e9passement de d\u00e9lai de la session n'est pas valide.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_DUPLICATE_ENTRY=CHKJ4013W: Entr\u00e9e {0} en double.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_EMPTY_ENTRY=CHKJ4014W: Entr\u00e9e {0} vide.

# --------------------------------
MESSAGE_WAR_VALIDATION_DUPLICATE_FILTER=CHKJ4015W: Entr\u00e9e de filtre {0} en double.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_DUPLICATE_EJB_REF=CHKJ4016W: El\u00e9ment de r\u00e9f\u00e9rence ejb {0} en double.
#EXPLANATION None.
#USERACTION None.

# This was missing.  It's defined in constants...
ERROR_EAR_UNCONTAINED_MODULE_FILE_EXCEPTION=CHKJ4017W: ERREUR EAR : EXCEPTION DU FICHIER DE MODULE NON CONTENU

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_ERROR_CODE=IWAE0036E CHKJ4018W: Code d''erreur inconnu : {0}.  Le code d''erreur doit contenir un code de statut HTTP valide.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_RES_SHARING_SCOPE=CHKJ4019W: Port\u00e9e du nouveau partage non valide. Les valeurs valides sont \"Shareable\" ou \"Unshareable\".
#USERACTION None.

MESSAGE_WAR_VALIDATION_INVALID_ENV_ENTRY=CHKJ4020W: Type d'entr\u00e9e d'environnement non valide. Les valeurs valides sont \"java.lang.TYPE\", o\u00f9 TYPE correspond \u00e0 l'un des \u00e9l\u00e9ments suivants : Boolean, Byte, Character, String, Short, Integer, Long, Float ou Double."
#USERACTION None.

MESSAGE_WAR_VALIDATION_MISSING_WLP_PROJECT=CHKJ4021W: Projet de biblioth\u00e8que Web manquant ({0}).  V\u00e9rifiez les propri\u00e9t\u00e9s de ce projet pour r\u00e9soudre l''erreur.
MESSAGE_WAR_VALIDATION_CONFLICTING_WLP_PROJECT=CHKJ4022W: Le fichier JAR du projet de biblioth\u00e8que Web ({0}) entre en conflit avec un fichier JAR du r\u00e9pertoire WEB-INF/lib.
MSG_SERVER_TARGET_MISMATCH=CHKJ4023W: Le serveur cible du projet de biblioth\u00e8que Web ({1}) ne correspond pas \u00e0 celui de ce projet Web ({0}).  Lancez la validation sur le projet Web si vous pensez que cela n''est pas le cas.
MESSAGE_URL_PATTERN_END_WITH_CARRAIGE_RETURN=La cha\u00eene de masque URL "{0}" se termine par un retour chariot non valide pour le servlet {1}

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_EJB_REF_TYPE=CHKJ4023W: Le type ejb-ref-doit \u00eatre "Entity" ou "Session".
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_EAR_MISSING_EJB_ROLE=CHKJ2827W: L''\u00e9l\u00e9ment security-role-ref {0} d\u00e9finit l''\u00e9l\u00e9ment role-link, mais il n''y a pas d''\u00e9l\u00e9ment security-role dans le descripteur de l''application.
#EXPLANATION None.
#USERACTION None.

of_Type_Security_Role_Name_6=de type Nom du r\u00f4le de s\u00e9curit\u00e9
Web_Archive_Validator_8=Valideur d'archive Web
of_Type_Role_Name_19=de type Nom de r\u00f4le
of_Type_Parameter_Name_25=de type Nom de param\u00e8tre
of_Type_Parameter_Value_26=de type Valeur de param\u00e8tre
of_Type_Parameter_Name_32=de type Nom de param\u00e8tre
of_Type_Parameter_Value_33=de type Valeur de param\u00e8tre
of_Type_Parameter_Name_39=de type Nom de param\u00e8tre
of_Type_Parameter_Value_40=de type Valeur de param\u00e8tre
of_Type_ejb-ref-name_44=de type nom de r\u00e9f\u00e9rence d'ejb
of_Type_Error_Location_47=de type Emplacement d'erreur
of_Type_Error_Location_49=de type Emplacement d'erreur
of_Type_Mime_Extension_54=de type Extension Mime
of_Type_Mime_Type_55=de type Type Mime
of_Type_Mime_Extension___56=de type Extension Mime :
of_Type_Web_Resource_Collection_64=de type Collection de ressources Web
of_Type_Filter_Name_66=de type Nom de filtre
Invalid_URL_70=URL non valide
Invalid_URL_75=URL non valide
of_Type_Servlet_Name_77=de type Nom de servlet
of_Type_Taglib_80=de type Biblioth\u00e8que de balises
of_Type_TagLib___81=de type Biblioth\u00e8que de balises :
of_Type_Web_Resource_Name_84=de type Nom de ressource Web
of_Type_Welcome_File_Name__87=de type Nom de fichier de bienvenue
of_Type_Env_Entry_Name___88=de type Nom d'entr\u00e9e d'environnement
