###############################################################################
# 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=EAR-Pr\u00fcfprogramm

# --------------------------------
ERROR_EAR_VALIDATION_FAILED=CHKJ1000E: EAR-Auswertung ist fehlgeschlagen: {0}
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_EAR_INVALID_EAR_FILE=CHKJ1001E: Das EAR-Projekt {0} ist ung\u00fcltig.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
ERROR_EAR_DUPLICATE_ROLES=CHKJ1002E: Die Sicherheitsberechtigungsklasse mit dem Namen {0} ist doppelt vorhanden.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_EAR_NO_MODULE_URI=CHKJ1003E: Ein Modul wurde ohne URI definiert.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
MESSAGE_EAR_MISSING_URI=CHKJ1004E: Die URI {0} stimmt mit keiner Angabe in der EAR-Datei \u00fcberein.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
EAR_DD_PARSE_LINECOL=CHKJ1005E: Der Implementierungsdeskriptor konnte nicht geladen werden. Der ung\u00fcltige Abschnitt beginnt bei Zeile {0}, Spalte {1}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
EAR_DD_PARSE_LINE=CHKJ1006E: Der Implementierungsdeskriptor konnte nicht geladen werden. Der ung\u00fcltige Abschnitt beginnt bei Zeile {0}.
#EXPLANATION None.
#USERACTION None.

# --------------------------------
EAR_DD_PARSE_NOINFO=CHKJ1007E: Der Implementierungsdeskriptor konnte nicht geladen werden.
#EXPLANATION None.
#USERACTION None.

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

# errors ---------------------------
URI_CONTAINS_SPACES_ERROR_=IWAE0005E Die URI {0} enth\u00e4lt ein Leerzeichen. Dies ist nicht ratsam, da in diesem Fall keine Verweise von einer Manifestdatei m\u00f6glich sind.
MESSAGE_EAR_DUPLICATE_URI_ERROR_=IWAE0006E Das Modul {0} enth\u00e4lt eine doppelte URI in der EAR: {1}.
MESSAGE_EAR_DUPICATE_ROOTCONTEXT_ERROR_=IWAE0007E Das Kontextstammverzeichnis "{0}" ist sowohl im Webmodul "{1}" als auch im Webmodul "{2}" vorhanden.
MESSAGE_EMPTY_ALT_DD_ERROR_=IWAE0009E Das Modul {0} enth\u00e4lt einen leeren <alt-dd>-Tag in der EAR {1}.  Der Tag sollte entweder entfernt werden oder der Wert muss g\u00fcltig sein.
DUPLICATE_UTILJAR_FOR_PROJECT_NAME_ERROR_=IWAE0010E =Das Projekt {0} im Unternehmensanwendungsprojekt {1} enth\u00e4lt die doppelte Dienstprogramm-JAR-URI {2}.
DUPLICATE_MODULE_FOR_PROJECT_NAME_ERROR_=IWAE0011E Das Projekt {0} im Unternehmensanwendungsprojekt {1} enth\u00e4lt den doppelten Modulnamen {2}.
MESSAGE_UTIL_URI_NAME_COLLISION_ERROR_=IWAE0012E Das Modul {0} im Unternehmensanwendungsprojekt {1} hat denselben Namen wie die Dienstprogramm-JAR-URI.
MESSAGE_UTIL_PROJECT_NAME_COLLISION_ERROR_=IWAE0013E Das Modul {0} im Unternehmensanwendungsprojekt {1} hat denselben Namen wie das Dienstprogramm-JAR-Projekt.
ERROR_READING_MANIFEST_ERROR_=IWAE0014E Bei der Pr\u00fcfung der Datei MANIFEST.MF im Archiv {0} ist ein Fehler aufgetreten.
MANIFEST_LINE_END_ERROR_=IWAE0015E Die Datei MANIFEST.MF im Archiv {0} endet nicht mit einer neuen Zeile (newline).
MANIFEST_LINE_EXCEEDS_LENGTH_ERROR_=IWAE0016E Die Zeile {0} in der Datei MANIFEST.MF im Archiv {1} \u00fcberschreitet die laut Spezifikation zul\u00e4ssige Grenze von 72 Byte.

INVALID_URI_FOR_MODULE_ERROR_=IWAE0017E Das Modul {0} weist eine falsche Standarderweiterung auf (.jar ist die Standarderweiterung f\u00fcr EJB-Module, .war ist die Standarderweiterung f\u00fcr Webmodule).
EAR_INVALID_DOC_TYPE_ERROR_=IWAE0018E Die Dokumenttypversion "{0}" f\u00fcr die Datei application.xml im Projekt "{1}" muss Version "{2}" sein.

MODULE_DD_PARSE_LINECOL_ERROR_=IWAE0019E Der Implementierungsdeskriptor des Moduls {0} konnte nicht geladen werden. Der ung\u00fcltige Abschnitt beginnt bei Zeile {1}, Spalte {2}.
MODULE_DD_PARSE_LINE_ERROR_=IWAE0020E Der Implementierungsdeskriptor des Moduls {0} konnte nicht geladen werden. Der ung\u00fcltige Abschnitt beginnt bei Zeile {1}.
MODULE_DD_PARSE_NOINFO_ERROR_=IWAE0021E Der Implementierungsdeskriptor des Moduls {0} konnte nicht geladen werden.
EJB_BEAN_EJB_LINK_INTEFACE_MISMATCH_ERROR_=IWAE0037E Die Schnittstellen der verlinkten Enterprise-Bean {0} stimmen nicht mit denen des EJB-Verweises {1} im Modul {2} \u00fcberein.

# warnings ----------------------------
WARNING_METAFOLDER_MISSING=IWAJ0000W: Der Metaordner {0} muss im Projekt {1} vorhanden sein.
WARNING_FILE_MISSING=IWAJ0001W: {0} muss im Projekt {1} vorhanden sein.
MESSAGE_INVALID_ALT_DD_WARN_=IWAE0022W Das Modul {0} hat ALT-dd {1}, die Ressource ist jedoch nicht in EAR {2} vorhanden.
INVALID_MANIFEST_CLASSPATH_ONE_WARN_=IWAE0023W Der Manifestklassenpfad im Archiv {0} enth\u00e4lt einen Eintrag, der in der EAR {1} nicht aufgel\u00f6st werden kann.
INVALID_MANIFEST_CLASSPATH_TWO_WARN_=IWAE0024W Der Manifestklassenpfad f\u00fcr das Archiv {0} enth\u00e4lt den Eintrag {1}, der nicht in eine Datei oder ein Modul in der Unternehmensanwendung {2} aufgel\u00f6st werden kann.
INVALID_MANIFEST_CLASSPATH_DEPENDENCY_WARN_=IWAE0025W Der Manifestklassenpfad im Modul {0} enth\u00e4lt den Eintrag {1}, der in das Archiv {2} aufgel\u00f6st wird.  Diese Abh\u00e4ngigkeit ist mit der J2EE-Spezifikation nicht vereinbar.
PROJECT_IS_CLOSED_WARN_=IWAE0026W Die EAR-Pr\u00fcfung kann nicht auf dem geschlossenen Projekt {0} ausgef\u00fchrt werden. \u00d6ffnen Sie das Projekt und wiederholen Sie den Versuch.
PROJECT_DOES_NOT_EXIST_WARN_=IWAE0027W Das Projekt {0} f\u00fcr Modul oder Dienstprogramm-JAR {1} im Unternehmensanwendungsprojekt {2} ist nicht im Arbeitsbereich vorhanden.
MISSING_WEBNATURE_FORMODULE_WARN_=IWAE0028W Das Webmodul {0} im Unternehmensanwendungsprojekt {1} ist kein J2EE-Webprojekt.
DEPRECATED_ABSPATHS_WARN_=IWAE0029W Die IBM Erweiterungsdatei im Unternehmensanwendungsprojekt {0} enth\u00e4lt veraltete absolute Pfade.  Verwenden Sie den Anwendungseditor, um die Datei zu bereinigen.
INVALID_CONTEXTROOT_WEBMODULE_WARN_=IWAE0030W Das Kontextstammverzeichnis f\u00fcr das Webmodul {0} im Unternehmensanwendungsprojekt {1} stimmt nicht mit dem in den Webprojekteinstellungen von {2} \u00fcberein.
MISSING_CLIENTNATURE_FORMODULE_WARN_=IWAE0031W Das Anwendungsclientmodul {0} im Unternehmensanwendungsprojekt {1} ist kein Anwendungsclientprojekt.
MISSING_EJBNATURE_FORMODULE_WARN_=IWAE0032W Das EJB-Modul {0} im Unternehmensanwendungsprojekt {1} ist kein EJB-Projekt.
MISSING_PROJECT_FORMODULE_WARN_=IWAE0033W Das Modul {0} im Unternehmensanwendungsprojekt {1} ist keinem Workbenchprojekt zugeordnet.  Korrigieren Sie dies mit dem Anwendungseditor.
INVALID_CASE_FOR_MANIFEST_ERROR_=IWAE0038E Die Schreibweise des Manifestdateinamens "{0}" im Archiv {1} ist falsch.  Der Dateiname muss dem Format "META-INF/MANIFEST.MF" entsprechen und die Gro\u00df-/Kleinschreibung beachten.
URI_ALREADY_EXISTS_IN_EAR_WARN_=IWAE0039W Die Dienstprogramm-JAR-URI {0} des Projekts ist unvertr\u00e4glich mit einer vorhandenen Datei im Projekt {1}.
MISSING_MODULE_EXTENSION_ERROR_=IWAE0040E Der Anwendungserweiterung in EAR-Projekt {0} fehlt die Modulerweiterung f\u00fcr Modulprojekt {1}.
PROJECT_SERVER_TARGET_DOES_NOT_MATCH_EAR=Der Zielserver des Modulprojekts "{0}" stimmt nicht mit dem Zielserver des enthaltenden Unternehmensanwendungsprojekts "{1}" \u00fcberein
NO_SERVER_TARGET_MODULE_IN_EAR_WITH_SERVER_TARGET=Das Modulprojekt "{0}" ohne Zielserver geh\u00f6rt einem Unternehmensanwendungsprojekt "{1}" an, das \u00fcber einen Zielserver verf\u00fcgt
NO_SERVER_TARGET_ON_EAR_WITH_MODULE_SERVER_TARGETS=Das EAR-Projekt "{0}" ohne Zielserver hat das Modulprojekt "{1}", das \u00fcber einen Zielserver verf\u00fcgt
INVALID_EAR_SERVER_TARGET_FOR_14_SPEC_LEVEL=Das EAR-Projekt "{0}" nach J2EE-Spezifikation 1.4 hat einen inkompatiblen Zielserver "{1}"
INVALID_MODULE_SERVER_TARGET_FOR_14_SPEC_LEVEL=Das Modulprojekt "{0}" nach J2EE-Spezifikation 1.4 hat einen inkompatiblen Zielserver "{1}"
MESSAGE_INCOMPATIBLE_SPEC_WARNING_=IWAE0008E Das Modul "{0}" hat eine inkompatible J2EE-Spezifikationsstufe mit derjenigen der Unternehmensanwendung "{1}".
EAR_VALIDATION_INTERNAL_ERROR_UI_=IWAE0053E Beim Ausf\u00fchren der \u00dcberpr\u00fcfung von Projekt {0} ist ein interner Fehler aufgetreten. Details entnehmen Sie bitte der Protokolldatei.
