###############################################################################
# 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=Validator EAR

# --------------------------------
ERROR_EAR_VALIDATION_FAILED=CHKJ1000E: convalida EAR non riuscita: {0}
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_EAR_INVALID_EAR_FILE=CHKJ1001E: il progetto EAR {0} non \u00e8 valido.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_EAR_DUPLICATE_ROLES=CHKJ1002E: ruolo di protezione duplicato con il nome {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_EAR_NO_MODULE_URI=CHKJ1003E: un modulo \u00e8 stato definito senza URI.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_EAR_MISSING_URI=CHKJ1004E: l''URI {0} non corrisponde ad alcun elemento nel file EAR.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
EAR_DD_PARSE_LINECOL=CHKJ1005E: impossibile caricare il descrittore di distribuzione. La sezione problematica inizia alla riga {0}, colonna {1}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
EAR_DD_PARSE_LINE=CHKJ1006E: impossibile caricare il descrittore di distribuzione. La sezione problematica inizia alla riga {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
EAR_DD_PARSE_NOINFO=CHKJ1007E: impossibile caricare il descrittore di distribuzione.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
EAR_DD_CANNOT_OPEN_DD=CHKJ1008E: impossibile aprire il descrittore di distribuzione. La convalida non pu\u00f2 essere completata.
#EXPLANATION None.
#USERACTION None.

# errors ---------------------------
URI_CONTAINS_SPACES_ERROR_=IWAE0005E L''URI {0} contiene uno spazio. Questa condizione non \u00e8 consigliabile perch\u00e9 non potr\u00e0 essere indicato come riferimento da un file manifest.
MESSAGE_EAR_DUPLICATE_URI_ERROR_=IWAE0006E Il modulo {0} ha un uri duplicato nell''EAR: {1}.
MESSAGE_EAR_DUPICATE_ROOTCONTEXT_ERROR_=IWAE0007E La stessa cartella principale di contesto "{0}" esiste nei moduli Web "{1}" e "{2}".
MESSAGE_EMPTY_ALT_DD_ERROR_=IWAE0009E Il modulo {0} ha un tag <alt-dd> vuoto in EAR {1}.  \u00c8 necessario rimuovere o fornire un valore valido.
DUPLICATE_UTILJAR_FOR_PROJECT_NAME_ERROR_=IWAE0010E =Il progetto {0} nel progetto Enterprise Application {1} ha un URI JAR di utilit\u00e0 {2} duplicato.
DUPLICATE_MODULE_FOR_PROJECT_NAME_ERROR_=IWAE0011E Il progetto {0} nel progetto Enterprise Application {1} ha un nome di modulo {2} duplicato.
MESSAGE_UTIL_URI_NAME_COLLISION_ERROR_=IWAE0012E =Il modulo {0} nel progetto Enterprise Application {1} ha lo stesso nome dell''URI JAR di utilit\u00e0.
MESSAGE_UTIL_PROJECT_NAME_COLLISION_ERROR_=IWAE0013E =Il modulo {0} nel progetto Enterprise Application {1} ha lo stesso nome del progetto JAR di utilit\u00e0.
ERROR_READING_MANIFEST_ERROR_=IWAE0014E Errore durante la convalida del file MANIFEST.MF nell''archivio {0}.
MANIFEST_LINE_END_ERROR_=IWAE0015E Il file MANIFEST.MF nell''archivio {0} non termina con un ritorno a capo.
MANIFEST_LINE_EXCEEDS_LENGTH_ERROR_=IWAE0016E La riga {0} nel file MANIFEST.MF dell''archivio {1} supera il limite della specifica di 72 byte.

INVALID_URI_FOR_MODULE_ERROR_=IWAE0017E Il modulo {0} ha un''estensione predefinita errata (.jar per i moduli EJB e .war per i moduli Web).
EAR_INVALID_DOC_TYPE_ERROR_=IWAE0018E La versione del tipo di documento "{0}" per application.xml nel progetto "{1}" deve essere in versione "{2}".

MODULE_DD_PARSE_LINECOL_ERROR_=IWAE0019E Impossibile caricare il descrittore di distribuzione del modulo {0}. La sezione problematica inizia alla riga {1}, colonna {2}.
MODULE_DD_PARSE_LINE_ERROR_=IWAE0020E Impossibile caricare il descrittore di distribuzione del modulo {0}. La sezione non valida inizia alla riga {1}
MODULE_DD_PARSE_NOINFO_ERROR_=IWAE0021E Impossibile caricare il descrittore di distribuzione del modulo {0}.
EJB_BEAN_EJB_LINK_INTEFACE_MISMATCH_ERROR_=IWAE0037E Le interfacce del bean enterprise collegato {0} non corrispondono a quelle presenti nel riferimento EJB {1} del modulo {2}.

# warnings ----------------------------
WARNING_METAFOLDER_MISSING=IWAJ0000W: La cartella meta {0} deve esistere nel progetto {1}.
WARNING_FILE_MISSING=IWAJ0001W: {0} deve esistere nel progetto {1}.
MESSAGE_INVALID_ALT_DD_WARN_=IWAE0022W Il modulo {0} presenta il tag alt-dd {1}, ma la risorsa non esiste nell''EAR {2}.
INVALID_MANIFEST_CLASSPATH_ONE_WARN_=IWAE0023W Il percorso classi del manifest nell''archivio {0} contiene una voce che non pu\u00f2 essere risolta nell''EAR: {1}.
INVALID_MANIFEST_CLASSPATH_TWO_WARN_=IWAE0024W Il percorso classi del manifest nell''archivio {0} contiene una voce, {1}, che non pu\u00f2 essere risolta in un file o un modulo nell''Enterprise: {2}.
INVALID_MANIFEST_CLASSPATH_DEPENDENCY_WARN_=IWAE0025W Il percorso classi del manifest nel modulo {0} contiene una voce, {1}, che viene risolta nell''archivio {2}.  Questa dipendenza non \u00e8 conforme alla specifica J2EE.
PROJECT_IS_CLOSED_WARN_=IWAE0026W Impossibile eseguire la convalida EAR sul progetto chiuso: {0}. Aprire il progetto e ritentare.
PROJECT_DOES_NOT_EXIST_WARN_=IWAE0027W Il progetto {0} per il modulo o il JAR di utilit\u00e0 {1} nel progetto enterprise application {2} non esiste nello spazio di lavoro.
MISSING_WEBNATURE_FORMODULE_WARN_=IWAE0028W Il modulo Web {0} nel progetto enterprise application {1} non \u00e8 un progetto Web J2EE.
DEPRECATED_ABSPATHS_WARN_=IWAE0029W Il file di estensioni IBM nel progetto enterprise application {0} contiene percorsi assoluti non validi.  Utilizzare l''editor dell''applicazione per cancellare il file.
INVALID_CONTEXTROOT_WEBMODULE_WARN_=IWAE0030W La cartella principale di contesto per il modulo Web: {0} nel progetto enterprise application: {1} non corrisponde alla cartella principale di contesto nelle impostazioni del progetto Web di {2}.
MISSING_CLIENTNATURE_FORMODULE_WARN_=IWAE0031W Il modulo del client di applicazioni {0} nel progetto enterprise application:{1} non \u00e8 un progetto client di applicazioni.
MISSING_EJBNATURE_FORMODULE_WARN_=IWAE0032W Il modulo EJB {0} nel progetto enterprise application {1} non \u00e8 un progetto EJB.
MISSING_PROJECT_FORMODULE_WARN_=IWAE0033W Il modulo Web {0} nel progetto enterprise application {1} non \u00e8 associato a un progetto workbench.  Utilizzare l''editor dell''applicazione per risolvere il problema.
INVALID_CASE_FOR_MANIFEST_ERROR_=IWAE0038E La sequenza di maiuscole/minuscole del nome file manifest "{0}" nell''archivio {1} non \u00e8 corretta.  Il nome file deve essere "META-INF/MANIFEST.MF", ed applica la distinzione maiuscole/minuscole.
URI_ALREADY_EXISTS_IN_EAR_WARN_=IWAE0039W L''URI JAR di utilit\u00e0 del progetto {0} \u00e8 in conflitto  con un file esistente nel progetto {1}.
MISSING_MODULE_EXTENSION_ERROR_=IWAE0040E All''estensione dell''applicazione nel progetto EAR: {0} manca l''estensione del modulo per il progetto: {1}.
PROJECT_SERVER_TARGET_DOES_NOT_MATCH_EAR=Il server di destinazione del progetto "{0}" non corrisponde al server di destinazione del progetto enterprise application "{1}"
NO_SERVER_TARGET_MODULE_IN_EAR_WITH_SERVER_TARGET=Il progetto modulo "{0}" senza server di destinazione appartiene ad un progetto enterprise application "{1}" che dispone di server di destinazione
NO_SERVER_TARGET_ON_EAR_WITH_MODULE_SERVER_TARGETS=Il progetto ear "{0}" senza server di destinazione contiene il progetto modulo "{1}" che dispone di server di destinazione
INVALID_EAR_SERVER_TARGET_FOR_14_SPEC_LEVEL=Il progetto EAR con specifica J2EE 1.4 "{0}" ha un server di destinazione non compatibile, "{1}"
INVALID_MODULE_SERVER_TARGET_FOR_14_SPEC_LEVEL=Il progetto modulo con specifica J2EE 1.4 "{0}" ha un server di destinazione non compatibile, "{1}"
MESSAGE_INCOMPATIBLE_SPEC_WARNING_=IWAE0008E Il modulo "{0}" \u00e8 ad un livello di specifica J2EE incompatibile rispetto al livello di Enterprise Application "{1}".
EAR_VALIDATION_INTERNAL_ERROR_UI_=IWAE0053E Un errore interno si \u00e8 verificato durante l''esecuzione di una convalida del progetto:{0}, per i dettagli verificare il file di log.
