###############################################################################
# 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 
# EAR 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:
#     CHKW (IBM WebSphere Validation)
#
# Message numbers are four digit numbers, from '0000' to '9999', inclusive.
# Message numbers are filled to the left with '0', to a width of 4.
#
# Valid message type codes are:
#     I (Informational)
#     W (Warning)
#     E (Error)
#
# 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/earvalidation.properties
# :End: WebSphere Quality Validation Information :End:
#
# 29-June-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.
#
# --------------------------------
#NOTAMSG
validator.name=Valideur EAR

# --------------------------------
ERROR_EAR_VALIDATION_FAILED=CHKJ1000E: Echec de la validation EAR : {0}
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_EAR_INVALID_EAR_FILE=CHKJ1001E: Le projet EAR {0} n''est pas valide.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_EAR_DUPLICATE_ROLES=CHKJ1002E: R\u00f4le de s\u00e9curit\u00e9 nomm\u00e9 {0} en double.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_EAR_NO_MODULE_URI=CHKJ1003E: Un module a \u00e9t\u00e9 d\u00e9fini sans URI.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_EAR_MISSING_URI=CHKJ1004E: L''URI, {0}, ne correspond \u00e0 aucun \u00e9l\u00e9ment dans le fichier EAR.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
EAR_DD_PARSE_LINECOL=CHKJ1005E: Le descripteur de d\u00e9ploiement n''a pas pu \u00eatre charg\u00e9. La section incorrecte commence \u00e0 la ligne {0}, colonne {1}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
EAR_DD_PARSE_LINE=CHKJ1006E: Le descripteur de d\u00e9ploiement n''a pas pu \u00eatre charg\u00e9. La section incorrecte commence \u00e0 la ligne {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
EAR_DD_PARSE_NOINFO=CHKJ1007E: Le descripteur de d\u00e9ploiement n'a pas pu \u00eatre charg\u00e9.
#EXPLANATION None.
#USERACTION None.

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

# errors ---------------------------
URI_CONTAINS_SPACES_ERROR_=IWAE0005E L''URI {0} contient un espace. Cela n''est pas recommand\u00e9 car l''URI ne peut alors pas \u00eatre r\u00e9f\u00e9renc\u00e9e \u00e0 partir d''un fichier de manifeste.
MESSAGE_EAR_DUPLICATE_URI_ERROR_=IWAE0006E Le module {0} comporte un URI en double dans le projet EAR : {1}.
MESSAGE_EAR_DUPICATE_ROOTCONTEXT_ERROR_=IWAE0007E Une racine du contexte identique \u00e0 "{0}" existe dans les modules Web "{1}" et "{2}".
MESSAGE_EMPTY_ALT_DD_ERROR_=IWAE0009E Le module {0} comporte une balise <alt-dd> vide dans le projet EAR {1}.  La balise doit \u00eatre supprim\u00e9e ou comporter une valeur valide.
DUPLICATE_UTILJAR_FOR_PROJECT_NAME_ERROR_=IWAE0010E Le projet {0} du projet d''application d''entreprise {1} comporte un URI du JAR d''utilitaire en double {2}.
DUPLICATE_MODULE_FOR_PROJECT_NAME_ERROR_=IWAE0011E Le projet {0} du projet d''application d''entreprise {1} comporte un nom de module en double {2}.
MESSAGE_UTIL_URI_NAME_COLLISION_ERROR_=IWAE0012E Le module {0} du projet d''application d''entreprise {1} porte le m\u00eame nom que l''URI du JAR d''utilitaire.
MESSAGE_UTIL_PROJECT_NAME_COLLISION_ERROR_=IWAE0013E Le module {0} du projet d''application d''entreprise {1} porte le m\u00eame nom que le projet du JAR d''utilitaire.
ERROR_READING_MANIFEST_ERROR_=IWAE0014E Une erreur s''est produite lors de la validation du fichier MANIFEST.MF dans l''archive {0}.
MANIFEST_LINE_END_ERROR_=IWAE0015E Le fichier MANIFEST.MF de l''archive {0} ne se termine pas par une nouvelle ligne.
MANIFEST_LINE_EXCEEDS_LENGTH_ERROR_=IWAE0016E La ligne {0} du fichier MANIFEST.MF de l''archive {1} d\u00e9passe la limite de sp\u00e9cification de 72 octets.

INVALID_URI_FOR_MODULE_ERROR_=IWAE0017E L''extension par d\u00e9faut du module {0} n''est pas correcte (.jar pour les modules EJB et .war pour les modules Web).
EAR_INVALID_DOC_TYPE_ERROR_=IWAE0018E La version du type de document "{0}" pour application.xml dans le projet "{1}" doit \u00eatre "{2}".

MODULE_DD_PARSE_LINECOL_ERROR_=IWAE0019E Le descripteur de d\u00e9ploiement du module {0} n''a pas pu \u00eatre charg\u00e9. La section incorrecte commence \u00e0 la ligne {1}, colonne {2}.
MODULE_DD_PARSE_LINE_ERROR_=IWAE0020E Le descripteur de d\u00e9ploiement du module {0} n''a pas pu \u00eatre charg\u00e9. La section incorrecte commence \u00e0 la ligne {1}
MODULE_DD_PARSE_NOINFO_ERROR_=IWAE0021E Le descripteur de d\u00e9ploiement du module {0} n''a pas pu \u00eatre charg\u00e9.
EJB_BEAN_EJB_LINK_INTEFACE_MISMATCH_ERROR_=IWAE0037E Les interfaces du bean enterprise li\u00e9 {0} ne correspondent pas \u00e0 celles de la r\u00e9f\u00e9rence d''EJB {1} dans le module {2}.

# warnings ----------------------------
WARNING_METAFOLDER_MISSING=IWAJ0000W: Le m\u00e9tadossier {0} doit exister dans le projet {1}.
WARNING_FILE_MISSING=IWAJ0001W: {0} doit exister dans le projet {1}.
MESSAGE_INVALID_ALT_DD_WARN_=IWAE0022W Le module {0} comporte la balise alt-dd {1}, mais la ressource n''existe pas dans le projet EAR {2}.
INVALID_MANIFEST_CLASSPATH_ONE_WARN_=IWAE0023W Le chemin d''acc\u00e8s aux classes du fichier de manifeste dans l''archive {0} contient une entr\u00e9e ne pouvant pas \u00eatre r\u00e9solue dans le projet EAR : {1}.
INVALID_MANIFEST_CLASSPATH_TWO_WARN_=IWAE0024W Le chemin d''acc\u00e8s aux classes du fichier de manifeste pour l''archive {0} contient une entr\u00e9e, {1}, qui ne peut pas \u00eatre r\u00e9solue en fichier ou module dans le projet d''application d''enterprise : {2}.
INVALID_MANIFEST_CLASSPATH_DEPENDENCY_WARN_=IWAE0025W Le chemin d''acc\u00e8s aux classes du fichier de manifeste dans le module {0} contient une entr\u00e9e, {1}, qui est r\u00e9solue dans l''archive {2}.  Cette d\u00e9pendance n''est pas conforme \u00e0 la sp\u00e9cification J2EE.
PROJECT_IS_CLOSED_WARN_=IWAE0026W La validation EAR ne peut pas \u00eatre ex\u00e9cut\u00e9e dans un projet ferm\u00e9 : {0}. Ouvrez le projet et essayez \u00e0 nouveau.
PROJECT_DOES_NOT_EXIST_WARN_=IWAE0027W Le projet {0} du module ou du fichier JAR d''utilitaire {1} dans le projet d''application d''entreprise {2} n''existe pas dans l''espace de travail.
MISSING_WEBNATURE_FORMODULE_WARN_=IWAE0028W Le module Web {0} du projet d''application d''entreprise {1} n''est pas un projet Web J2EE.
DEPRECATED_ABSPATHS_WARN_=IWAE0029W Le fichier d''extensions IBM du projet d''application d''entreprise {0} contient des chemins absolus d\u00e9conseill\u00e9s.  Utilisez l''\u00e9diteur d''application pour nettoyer le fichier.
INVALID_CONTEXTROOT_WEBMODULE_WARN_=IWAE0030W La racine de contexte du module web : {0} dans le projet d''application d''entreprise : {1} ne correspond pas \u00e0 celle des param\u00e8tres du projet web de {2}.
MISSING_CLIENTNATURE_FORMODULE_WARN_=IWAE0031W Le module de client d''application {0} du projet d''application d''entreprise : {1} n''est pas un projet de client d''application.
MISSING_EJBNATURE_FORMODULE_WARN_=IWAE0032W Le module EJB {0} du projet d''application d''entreprise : {1} n''est pas un projet EJB.
MISSING_PROJECT_FORMODULE_WARN_=IWAE0033W Le module {0} du projet d''application d''entreprise {1} n''est pas mapp\u00e9 \u00e0 un projet de plan de travail.  Utilisez l''\u00e9diteur d''applications pour y rem\u00e9dier.
INVALID_CASE_FOR_MANIFEST_ERROR_=IWAE0038E La casse du nom de fichier de manifeste "{0}" dans l''archive {1} n''est pas correcte.  Le nom de fichier doit \u00eatre "META-INF/MANIFEST.MF" (en majuscules).
URI_ALREADY_EXISTS_IN_EAR_WARN_=IWAE0039W L''URI du fichier JAR de l''utilitaire de projet {0} est en conflit avec un fichier existant du projet {1}.
MISSING_MODULE_EXTENSION_ERROR_=IWAE0040E L''extension d''application dans le projet ear : {0} ne comporte pas d''extension de module pour le projet de module : {1}.
PROJECT_SERVER_TARGET_DOES_NOT_MATCH_EAR=Le serveur cible du projet de module "{0}" ne correspond pas \u00e0 celui du projet d''application d''entreprise "{1}" qui le contient
NO_SERVER_TARGET_MODULE_IN_EAR_WITH_SERVER_TARGET=Le projet de module "{0}" sans serveur cible appartient \u00e0 un projet d''application d''entreprise "{1}" qui poss\u00e8de un serveur cible
NO_SERVER_TARGET_ON_EAR_WITH_MODULE_SERVER_TARGETS=Le projet ear "{0}" sans serveur cible contient un projet de module "{1}" poss\u00e9dant un serveur cible
INVALID_EAR_SERVER_TARGET_FOR_14_SPEC_LEVEL=Le projet EAR J2EE 1.4 "{0}" a un serveur cible incompatible "{1}"
INVALID_MODULE_SERVER_TARGET_FOR_14_SPEC_LEVEL=Le projet de module J2EE 1.4 "{0}" a un serveur cible incompatible "{1}".
MESSAGE_INCOMPATIBLE_SPEC_WARNING_=IWAE0008E Le module "{0}" se trouve \u00e0 un niveau de sp\u00e9cification J2EE incompatible avec l''entreprise d''application "{1}".
EAR_VALIDATION_INTERNAL_ERROR_UI_=IWAE0053E Une erreur interne est survenue lors de la validation du projet {0} ; consultez le fichier journal pour plus de d\u00e9tails
