###############################################################################
# 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: La validaci\u00f3n de WAR ha fallado: {0}
#EXPLANATION None.
#USERACTION None.


# --------------------------------
ERROR_EAR_DUPLICATE_ROLES=CHKJ1002E: Cometido de seguridad denominado {0} duplicado.
MESSAGE_WAR_VALIDATION_MISSING_JSP=CHKJ3001E: Falta el archivo JSP {0} del servlet \"{1}\".
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_SMALL_ICON=CHKJ3002E: Falta el archivo <small-icon>, {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_LARGE_ICON=CHKJ3003E: Falta el archivo <large-icon>, {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_BROKEN_SERVLET_MAPPING=CHKJ3004W: La correlaci\u00f3n de servlet \"{0}\" hace referencia a un servlet que no est\u00e1 definido.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_NO_WELCOME_FILE=CHKJ3005E: Hay una entrada vac\u00eda en la lista de archivos de bienvenida.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_MISSING_WELCOME_FILE=CHKJ3006E: Falta el archivo de bienvenida {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_MISSING_TLD=CHKJ3007E: Falta el archivo de descriptor de biblioteca de c\u00f3digos {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_INVALID_WAR_FILE=CHKJ3008E: Falta el archivo WAR o no es v\u00e1lido.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_BROKEN_FILTER_MAPPING=CHKJ3009E: La correlaci\u00f3n de filtro \"{0}\" hace referencia a un filtro que no est\u00e1 definido.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_WELCOME_FILE=CHKJ3010W: Los archivos de bienvenida no pueden empezar ni acabar en /.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
WAR_DD_PARSE_LINECOL=CHKJ1009E: Error de an\u00e1lisis: {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
WAR_DD_PARSE_LINE=CHKJ1010E: Error de an\u00e1lisis del descriptor de despliegue.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
WAR_DD_PARSE_NOINFO=CHKJ1011E: Error de an\u00e1lisis del descriptor de despliegue.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
WAR_DD_CANNOT_OPEN_DD=CHKJ1012E: No se puede abrir el descriptor de despliegue. La validaci\u00f3n no puede completarse.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_URL=CHKJ3013E: La correlaci\u00f3n de URL \"{0}\" no es v\u00e1lida.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_SEC_ROLE=CHKJ3014E: Enlace de cometido de seguridad no v\u00e1lido: {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_HTTP_CMD=CHKJ3015E: El m\u00e9todo HTTP no es v\u00e1lido: {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_TRANSPORT=CHKJ3016E: Garant\u00eda de transporte no v\u00e1lida.  Los valores v\u00e1lidos son \"NONE\", \"INTEGRAL\" o \"CONFIDENTIAL\".

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_JSPFILE_REF=CHKJ3018E: El archivo jsp \"{0}\" al que hace referencia el servlet {1} debe tener una v\u00eda de acceso absoluta completa.


# --------------------------------
ERROR_EAR_INVALID_CONTEXT_ROOT=CHKJ3017E: El proyecto Web {0} est\u00e1 correlacionado con una ra\u00edz de contexto {1} que no es v\u00e1lida en el proyecto EAR {2}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_ERROR_PAGE=IWAE0001E CHKJ3019E: La ubicaci\u00f3n de la p\u00e1gina de errores debe empezar por /.
#EXPLANATION None.
#USERACTION None.

MESSAGE_WAR_VALIDATION_INVALID_SEC_ROLE_NAME=CHKJ3020E: Nombre de cometido de seguridad no v\u00e1lido: {0}.
#EXPLANATION None.
#USERACTION None.

MESSAGE_WAR_VALIDATION_INVALID_AUTH_METHOD=CHKJ3021E: El m\u00e9todo auth no es v\u00e1lido.  Los valores v\u00e1lidos son: \"BASIC\", \"DIGEST\", \"FORM\", \"CLIENT-CERT\".
#EXPLANATION None.
#USERACTION None.

MESSAGE_WAR_VALIDATION_IGNORE_FORM_LOGIN=CHKJ3022E: El m\u00e9todo de autenticaci\u00f3n es {0}.  Los valores de form-login-config se pasar\u00e1n por alto a menos que se utilice el m\u00e9todo de autenticaci\u00f3n FORM.
#EXPLANATION None.
#USERACTION None.

MESSAGE_WAR_VALIDATION_RES_AUTH_REQUIRED_22=CHKJ3023E:  La ref de recurso {0} debe contener res-auth de "SERVLET" o "CONTAINER".
MESSAGE_WAR_VALIDATION_RES_AUTH_REQUIRED_23=CHKJ3024E:  La ref de recurso {0} debe contener res-auth de "Application" o "Container".
MESSAGE_WAR_VALIDATION_RES_AUTH_INVALID_22=CHKJ3025E:  \"Application\" no es un valor v\u00e1lido para res-auth en un descriptor de despliegue de nivel 2.2.  En su lugar, utilice \"SERVLET\".
MESSAGE_WAR_VALIDATION_RES_AUTH_INVALID_23=CHKJ3026E:  \"SERVLET\" no es un valor v\u00e1lido para res-auth en un descriptor de despliegue de nivel 2.2.  En su lugar, utilice \"Application\".

MESSAGE_WAR_VALIDATION_INVALID_EXCEPTION_TYPE=CHKJ3027E:  Tipo de excepci\u00f3n no v\u00e1lido {0}.  El tipo de excepci\u00f3n debe contener un nombre de clase totalmente calificado de un tipo de excepci\u00f3n Java.
#EXPLANATION None.
#USERACTION None.



# --------------------------------
MESSAGE_WAR_VALIDATION_DUPLICATE_MAPPING=CHKJ4010W: La correlaci\u00f3n de URL {0} est\u00e1 duplicada.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_DUPLICATE_SERVLET=CHKJ4011W: La entrada de servlet {0} est\u00e1 duplicada.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_SESSION_TIMEOUT=CHKJ4012W: El tiempo de espera de sesi\u00f3n no es v\u00e1lido.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_DUPLICATE_ENTRY=CHKJ4013W: Entrada duplicada {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_EMPTY_ENTRY=CHKJ4014W: La entrada {0} est\u00e1 vac\u00eda.

# --------------------------------
MESSAGE_WAR_VALIDATION_DUPLICATE_FILTER=CHKJ4015W: La entrada de filtro {0} est\u00e1 duplicada.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_DUPLICATE_EJB_REF=CHKJ4016W: El elemento ejb-ref denominado {0} est\u00e1 duplicado.
#EXPLANATION None.
#USERACTION None.

# This was missing.  It's defined in constants...
ERROR_EAR_UNCONTAINED_MODULE_FILE_EXCEPTION=CHKJ4017W: EXCEPCI\u00d3N DE ARCHIVO DE M\u00d3DULO NO CONTENIDA EN EAR DE ERRORES

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_ERROR_CODE=IWAE0036E CHKJ4018W: C\u00f3digo de error desconocido: {0}.  El c\u00f3digo de error debe contener un c\u00f3digo de estado HTTP v\u00e1lido.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_RES_SHARING_SCOPE=CHKJ4019W: El valor de res-sharing-scope no es v\u00e1lido; los valores v\u00e1lidos son \"Shareable\" o \"Unshareable\".
#USERACTION None.

MESSAGE_WAR_VALIDATION_INVALID_ENV_ENTRY=CHKJ4020W: El tipo de entrada de entorno no es v\u00e1lido. Los valores v\u00e1lidos son \"java.lang.TYPE\", siendo TYPE uno de los siguientes tipos: Boolean, Byte, Character, String, Short, Integer, Long, Float, Double."
#USERACTION None.

MESSAGE_WAR_VALIDATION_MISSING_WLP_PROJECT=CHKJ4021W: Falta proyecto de biblioteca Web ({0}).  Compruebe las propiedades de este proyecto para arreglar este problema.
MESSAGE_WAR_VALIDATION_CONFLICTING_WLP_PROJECT=CHKJ4022W: El JAR de proyecto de biblioteca Web ({0}) est\u00e1 en conflicto con un JAR real del directorio WEB-INF/lib.
MSG_SERVER_TARGET_MISMATCH=CHKJ4023W: El servidor destino de proyecto de biblioteca Web ({1}) no coincide con el de este proyecto Web ({0}).  Ejecute la validaci\u00f3n en el proyecto Web si cree que no es as\u00ed.
MESSAGE_URL_PATTERN_END_WITH_CARRAIGE_RETURN=La serie de patr\u00f3n URL "{0}" termina con un retorno de carro no v\u00e1lido para el servlet {1}

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_EJB_REF_TYPE=CHKJ4023W: ejb-ref-type debe ser 'Entity' o 'Session'.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_EAR_MISSING_EJB_ROLE=CHKJ2827W: El elemento ''security-role-ref'' {0} define el elemento ''role-link'' pero no hay elementos ''security-role'' en la descripci\u00f3n de la aplicaci\u00f3n.
#EXPLANATION None.
#USERACTION None.

of_Type_Security_Role_Name_6=de tipo Nombre de cometido de seguridad
Web_Archive_Validator_8=Validador de archivador Web
of_Type_Role_Name_19=de tipo Nombre de cometido
of_Type_Parameter_Name_25=de tipo Nombre de par\u00e1metro
of_Type_Parameter_Value_26=de tipo Valor de par\u00e1metro
of_Type_Parameter_Name_32=de tipo Nombre de par\u00e1metro
of_Type_Parameter_Value_33=de tipo Valor de par\u00e1metro
of_Type_Parameter_Name_39=de tipo Nombre de par\u00e1metro
of_Type_Parameter_Value_40=de tipo Valor de par\u00e1metro
of_Type_ejb-ref-name_44=de tipo ejb-ref-name
of_Type_Error_Location_47=de tipo Ubicaci\u00f3n de error
of_Type_Error_Location_49=de tipo Ubicaci\u00f3n de error
of_Type_Mime_Extension_54=de tipo Extensi\u00f3n Mime
of_Type_Mime_Type_55=de tipo Tipo Mime
of_Type_Mime_Extension___56=de tipo Extensi\u00f3n Mime:
of_Type_Web_Resource_Collection_64=de tipo Colecci\u00f3n de recursos Web
of_Type_Filter_Name_66=de tipo Nombre de filtro
Invalid_URL_70=URL no v\u00e1lido
Invalid_URL_75=URL no v\u00e1lido
of_Type_Servlet_Name_77=de tipo Nombre de servlet
of_Type_Taglib_80=de tipo Biblioteca de c\u00f3digos
of_Type_TagLib___81=de tipo Biblioteca de c\u00f3digos:
of_Type_Web_Resource_Name_84=de tipo Nombre de recurso Web
of_Type_Welcome_File_Name__87=de tipo Nombre de archivo de bienvenida
of_Type_Env_Entry_Name___88=de tipo Nombre de entrada de entorno
