#-------------------------------------------------------------------------------
# Copyright (c) 2000, 2007 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 implementation.
#-------------------------------------------------------------------------------
# NLS_MESSAGEFORMAT_VAR
#
# Message ID Range: IUPP0000E - IUPP0099E
#

# Progress Messages
publishingConfigurationTask_name=Konfiguration wird ver\u00f6ffentlicht...
initializingDirTask_name=Zielverzeichnis wird initialisiert...
copyingFilesTask_name=Dateien werden kopiert...
generatingBookmarksTask_name=Lesezeichen werden generiert...
generatingBookmarkTask_name=Lesezeichen ''{0}'' wird generiert...
generatingBookmarkIndexTask_name=Lesezeichenindex wird generiert...
publishingLinkedElementTask_name=Methodenelemente werden ver\u00f6ffentlicht. Ver\u00f6ffentlicht: {0}, Verbleibend: {1}
publishingElementTask_name=Methodenelement wird ver\u00f6ffentlicht: {0}:{1}
generatingGlossaryTask_name=Glossar wird generiert...
generatingSearchIndexTask_name=Suchindex wird generiert...
generatingWARFileTask_name=WAR-Datei wird generiert...
buildingProcessClosureTask_name=Abgeschlossener Prozess wird erstellt...
buildingElementClosureTask_name=Abgeschlossenes Element f\u00fcr ''{0}'' wird erstellt...
loadLibraryTask_name=Bibliotheksinhalt wird geladen...

# Error Messages logged in the Publishing Report
publishElementError_msg=IUPP0000E: Fehler beim Ver\u00f6ffentlichen des Elements {0}
serverError_msg=IUPP0001E: Es wurden keine Daten vom Server zur\u00fcckgegeben.
invalidHttpResponseError_msg=IUPP0002E: Ung\u00fcltige Antwort von http://{0}:{1}:{2}

# Warning Messages logged in the Publishing Report
invalidElementWarning_msg=IUPP0003W: Das Element wurde nicht ver\u00f6ffentlicht, weil es kein g\u00fcltiges Element in der Konfiguration ist.
invalidMethodElementWarning_msg=IUPP0004W: Das Element wurde nicht ver\u00f6ffentlicht, weil es kein Methodenelement ist: {0}
copyFileWarning_msg=IUPP0005W: Die Datei kann nicht von ''{0}'' nach ''{1}'' kopiert werden.
missingIconFileWarning_msg=IUPP0006W: Die Knotensymboldatei ''{0}'' ist nicht vorhanden.
missingIconNameWarning_msg=IUPP0007W: Der Name des Knotensymbols kann nicht abgerufen werden.
externalUrl_msg=Es wurde {0} Millisekunden auf den folgenden externen URL verwiesen: {1}
discaredCategoryWarning_msg=Das leere Inhaltskategorieelement wird nicht ver\u00f6ffentlicht.

# Error Details
createSearchIndexError_msg=IUPP0008E: Die Suchindexdatei wurde nicht erstellt.

# Process Tree Nodes
referenceWorkflowsNode_text=Referenzworkflows
taskNode_text=Aufgaben
primarilyPerformsNode_text=F\u00fchrt (haupts\u00e4chlich) aus:
additionallyPerformsNode_text=Zus\u00e4tzliche Aufgaben:
performingRolesNode_text=Ausf\u00fchrende Rollen
inputWorkProductsNode_text=Eingabearbeitsergebnisse
outputWorkProductsNode_text=Ausgabearbeitsergebnisse
responsibleForNode_text=Verantwortlich f\u00fcr
modifiesNode_text=\u00c4nderung
responsibleRoleNode_text=Verantwortliche Rolle
containingWorkProductNode_text=\u00dcbergeordnetes Arbeitsergebnis
containedWorkProductsNode_text=Enthaltene Arbeitsergebnisse
guidanceNode_text=Anleitung
inputToNode_text=Eingabe f\u00fcr
outputFromNode_text=Ausgabe von

# HTML Title for Index Page
indexLabel_text=Index
