#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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...
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=Referenz auf externen URL: {0}
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
