###############################################################################
# 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: WAR-Auswertung ist fehlgeschlagen: {0}
#EXPLANATION None.
#USERACTION None.


# --------------------------------
ERROR_EAR_DUPLICATE_ROLES=CHKJ1002E: Die Sicherheitsberechtigungsklasse mit dem Namen {0} ist doppelt vorhanden.
MESSAGE_WAR_VALIDATION_MISSING_JSP=CHKJ3001E: Die JSP-Datei {0} f\u00fcr das Servlet \"{1}\" fehlt.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_SMALL_ICON=CHKJ3002E: Die <small-icon>-Datei {0} fehlt.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_LARGE_ICON=CHKJ3003E: Die <large-icon>-Datei {0} fehlt.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_BROKEN_SERVLET_MAPPING=CHKJ3004W: Die Servletzuordnung \"{0}\" bezieht sich auf ein Servlet, das nicht definiert ist.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_NO_WELCOME_FILE=CHKJ3005E: Ein Eintrag in der Startdateiliste ist leer.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_MISSING_WELCOME_FILE=CHKJ3006E: Die Startdatei {0} fehlt.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_MISSING_TLD=CHKJ3007E: Die Befehlsbibliothekdeskriptordatei {0} fehlt.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_INVALID_WAR_FILE=CHKJ3008E: Die WAR-Datei fehlt oder ist ung\u00fcltig.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_BROKEN_FILTER_MAPPING=CHKJ3009E: Die Filterzuordnung \"{0}\" bezieht sich auf einen Filter, der nicht definiert ist.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_WELCOME_FILE=CHKJ3010W: Startdateien d\u00fcrfen nicht mit  "/" beginnen oder enden.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
WAR_DD_PARSE_LINECOL=CHKJ1009E: Parsingfehler: {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
WAR_DD_PARSE_LINE=CHKJ1010E: Fehler beim Parsing des Implementierungsdeskriptors.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
WAR_DD_PARSE_NOINFO=CHKJ1011E: Fehler beim Parsing des Implementierungsdeskriptors.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
WAR_DD_CANNOT_OPEN_DD=CHKJ1012E: Der Implementierungsdeskriptor kann nicht ge\u00f6ffnet werden. Die Pr\u00fcfung kann nicht abgeschlossen werden.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_URL=CHKJ3013E: Die URL-Zuordnung \"{0}\" ist ung\u00fcltig.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_SEC_ROLE=CHKJ3014E: Die Sicherheitsberechtigungsklassenverkn\u00fcpfung {0} ist ung\u00fcltig.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_HTTP_CMD=CHKJ3015E: Die HTTP-Methode {0} ist ung\u00fcltig.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_TRANSPORT=CHKJ3016E: Ung\u00fcltige Transportgarantie.  G\u00fcltige Werte sind \"NONE\", \"INTEGRAL\" oder \"CONFIDENTIAL\".

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_JSPFILE_REF=CHKJ3018E: Die JSP-Datei \"{0}\", auf die das Servlet {1} verweist, muss den vollst\u00e4ndigen absoluten Pfad aufweisen.


# --------------------------------
ERROR_EAR_INVALID_CONTEXT_ROOT=CHKJ3017E: Das Webprojekt {0} ist dem ung\u00fcltigen Kontextstammverzeichnis {1} im EAR-Projekt {2} zugeordnet.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_ERROR_PAGE=IWAE0001E CHKJ3019E: Die Position der Fehlerseite muss mit "/" beginnen.
#EXPLANATION None.
#USERACTION None.

MESSAGE_WAR_VALIDATION_INVALID_SEC_ROLE_NAME=CHKJ3020E: Der Name der Sicherheitsberechtigungsklasse {0} ist ung\u00fcltig.
#EXPLANATION None.
#USERACTION None.

MESSAGE_WAR_VALIDATION_INVALID_AUTH_METHOD=CHKJ3021E: Die Authentifizierungsmethode ist ung\u00fcltig.  G\u00fcltige Werte sind: \"BASIC\", \"DIGEST\", \"FORM\" oder \"CLIENT-CERT\".
#EXPLANATION None.
#USERACTION None.

MESSAGE_WAR_VALIDATION_IGNORE_FORM_LOGIN=CHKJ3022E: Die Authentifizierungsmethode ist {0}.  Die Werte f\u00fcr die Formularanmeldungskonfiguration (form-login-config) werden ignoriert, falls nicht die Authentifizierungsmethode FORM verwendet wird.
#EXPLANATION None.
#USERACTION None.

MESSAGE_WAR_VALIDATION_RES_AUTH_REQUIRED_22=CHKJ3023E: Der Ressourcenverweis {0} muss die Ressourcenauthentifizierung "SERVLET" oder "CONTAINER" enthalten.
MESSAGE_WAR_VALIDATION_RES_AUTH_REQUIRED_23=CHKJ3024E: Der Ressourcenverweis {0} muss die Ressourcenauthentifizierung "Application" oder "Container" enthalten.
MESSAGE_WAR_VALIDATION_RES_AUTH_INVALID_22=CHKJ3025E: \"Application\" ist kein g\u00fcltiger Wert f\u00fcr die Ressourcenauthentifizierung in einem Implementierungsdeskriptor der Stufe 2.2.  Verwenden Sie anstatt dessen \"SERVLET\".
MESSAGE_WAR_VALIDATION_RES_AUTH_INVALID_23=CHKJ3026E: \"SERVLET\" ist kein g\u00fcltiger Wert f\u00fcr die Ressourcenauthentifizierung in einem Implementierungsdeskriptor der Stufe 2.2.  Verwenden Sie anstatt dessen \"Application\".

MESSAGE_WAR_VALIDATION_INVALID_EXCEPTION_TYPE=CHKJ3027E: Ung\u00fcltiger Ausnahmebedingungstyp {0}.  Der Ausnahmebedingungstyp muss den vollst\u00e4ndig qualifizierten Klassennamen eines Java-Ausnahmebedingungstyps enthalten.
#EXPLANATION None.
#USERACTION None.



# --------------------------------
MESSAGE_WAR_VALIDATION_DUPLICATE_MAPPING=CHKJ4010W: Die URL-Zuordnung {0} ist doppelt vorhanden.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_DUPLICATE_SERVLET=CHKJ4011W: Der Servleteintrag {0} ist doppelt vorhanden.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_SESSION_TIMEOUT=CHKJ4012W: Das Sitzungszeitlimit ist nicht g\u00fcltig.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_DUPLICATE_ENTRY=CHKJ4013W: Der Eintrag {0} ist doppelt vorhanden.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_EMPTY_ENTRY=CHKJ4014W: Der Eintrag {0} ist leer.

# --------------------------------
MESSAGE_WAR_VALIDATION_DUPLICATE_FILTER=CHKJ4015W: Der Filtereintrag {0} ist doppelt vorhanden.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_DUPLICATE_EJB_REF=CHKJ4016W: Das Element ''ejb-ref'' mit dem Namen {0} ist doppelt vorhanden.
#EXPLANATION None.
#USERACTION None.

# This was missing.  It's defined in constants...
ERROR_EAR_UNCONTAINED_MODULE_FILE_EXCEPTION=CHKJ4017W: FEHLER: AUSNAHMEBEDINGUNG WEGEN FEHLENDER MODULDATEI IN EAR

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_ERROR_CODE=IWAE0036E CHKJ4018W: Unbekannter Fehlercode: {0}.  Der Fehlercode muss einen g\u00fcltigen HTTP-Statuscode enthalten.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_RES_SHARING_SCOPE=CHKJ4019W: Der Bereich der gemeinsamen Ressourcenbenutzung ist ung\u00fcltig. G\u00fcltige Werte sind \"SHAREABLE\" oder \"UNSHAREABLE\".
#USERACTION None.

MESSAGE_WAR_VALIDATION_INVALID_ENV_ENTRY=CHKJ4020W: Der Umgebungseintragstyp ist ung\u00fcltig. G\u00fcltige Werte sind \"java.lang.TYP\", wobei TYP einer der folgenden Typen angibt: Boolean, Byte, Character, String, Short, Integer, Long, Float oder Double."
#USERACTION None.

MESSAGE_WAR_VALIDATION_MISSING_WLP_PROJECT=CHKJ4021W: Das Webbibliotheksprojekt ({0}) fehlt.  \u00dcberpr\u00fcfen Sie die Eigenschaften dieses Projekts, um diesen Fehler zu beheben.
MESSAGE_WAR_VALIDATION_CONFLICTING_WLP_PROJECT=CHKJ4022W: Die Webbbibliotheksprojekt-JAR ({0}) ist unvertr\u00e4glich mit einer tats\u00e4chlichen JAR im Verzeichnis WEB-INF/lib.
MSG_SERVER_TARGET_MISMATCH=CHKJ4023W: Der Zielserver des Webbibliotheksprojekts ({1}) stimmt nicht mit dem dieses Webprojekts ({0}) \u00fcberein.  F\u00fchren Sie gegebenenfalls eine \u00dcberpr\u00fcfung des Webprojekts durch.
MESSAGE_URL_PATTERN_END_WITH_CARRAIGE_RETURN=Die URL-Musterzeichenfolge "{0}" endet mit einem ung\u00fcltigen R\u00fccklauf f\u00fcr Servlet {1}

# --------------------------------
MESSAGE_WAR_VALIDATION_INVALID_EJB_REF_TYPE=CHKJ4023W: 'ejb-ref-type' muss 'Entity' oder 'Session' sein.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_EAR_MISSING_EJB_ROLE=CHKJ2827W: Das Element ''security-role-ref'' {0} definiert das Element ''role-link'', aber keine ''security-role''-Elemente in der Anwendungsbeschreibung.
#EXPLANATION None.
#USERACTION None.

of_Type_Security_Role_Name_6=des Typs 'Sicherheitsberechtigungsklassenname'
Web_Archive_Validator_8=Webarchiv-Pr\u00fcfprogramm
of_Type_Role_Name_19=des Typs 'Berechtigungsklassenname'
of_Type_Parameter_Name_25=des Typs 'Parametername'
of_Type_Parameter_Value_26=des Typs 'Parameterwert'
of_Type_Parameter_Name_32=des Typs 'Parametername'
of_Type_Parameter_Value_33=des Typs 'Parameterwert'
of_Type_Parameter_Name_39=des Typs 'Parametername'
of_Type_Parameter_Value_40=des Typs 'Parameterwert'
of_Type_ejb-ref-name_44=des Typs 'ejb-ref-name'
of_Type_Error_Location_47=des Typs 'Fehlerposition'
of_Type_Error_Location_49=des Typs 'Fehlerposition'
of_Type_Mime_Extension_54=des Typs 'Mimeerweiterung'
of_Type_Mime_Type_55=des Typs 'Mimetyp'
of_Type_Mime_Extension___56=des Typs 'Mimeerweiterung':
of_Type_Web_Resource_Collection_64=des Typs 'Collection mit Webressourcen'
of_Type_Filter_Name_66=des Typs 'Filtername'
Invalid_URL_70=Ung\u00fcltige URL
Invalid_URL_75=Ung\u00fcltige URL
of_Type_Servlet_Name_77=des Typs 'Servletname'
of_Type_Taglib_80=des Typs 'Taglib'
of_Type_TagLib___81=des Typs 'TagLib':
of_Type_Web_Resource_Name_84=des Typs 'Webressourcenname'
of_Type_Welcome_File_Name__87=des Typs 'Startdateiname'
of_Type_Env_Entry_Name___88=des Typs 'Umgebungseintragsname'
