#-------------------------------------------------------------------------------
# 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

# Export Microsoft Project Wizard
exportMSPWizard_title=Export nach Microsoft Projekt

# Select Export Options Wizard Page
selectExportOptionsWizardPage_title=Exportoptionen ausw\u00e4hlen
selectExportOptionsWizardPage_text=W\u00e4hlen Sie die Methodenkonfiguration und die Exportoptionen aus, die f\u00fcr den Export des ausgew\u00e4hlten Prozesses verwendet werden.
selectedProcessLabel_text=Ausgew\u00e4hlter Prozess:
configurationLabel_text=Methodenkonfiguration:
publishWebSiteCheckBox_text=Prozesswebsite ver\u00f6ffentlichen
publishConfigButton_text=Vollst\u00e4ndige Methodenkonfiguration ver\u00f6ffentlichen
publishProcessButton_text=Nur f\u00fcr den ausgew\u00e4hlten Prozess relevanten Inhalt ver\u00f6ffentlichen
exportOnlyPlannedElementsCheckBox_text=Nur die geplanten Strukturelemente exportieren

# Select Publishing Options Wizard Page
selectPublishOptionsWizardPage_title=Ver\u00f6ffentlichungsoptionen ausw\u00e4hlen
selectPublishOptionsWizardPage_text=W\u00e4hlen Sie die Ver\u00f6ffentlichungsoptionen aus, die f\u00fcr die Ver\u00f6ffentlichung der Website f\u00fcr den exportierten Prozess verwendet werden.

# Select Export Directory Wizard page
selectExportDirWizardPage_title=Projektnamen und Exportverzeichnis angeben
selectExportDirWizardPage_text=Geben Sie den Microsoft-Project-Namen und das Exportverzeichnis an.
projectNameLabel_text=Name:
dirLabel_text=Verzeichnis:
browseButton_text=Durchsuchen...

# Progress Messages
exportMSPTask_name=Ausgew\u00e4hlter Prozess wird nach Microsoft Project exportiert...

# Warning Messages
overwriteText_msg=IUPM0100W: Es ist bereits eine Microsoft-Project-Datei mit dem Namen ''{0}'' in ''{1}'' vorhanden.\n\nM\u00f6chten Sie diese Datei \u00fcberschreiben?
missingProcessContentWarning_msg=IUPM0102W: Die ver\u00f6ffentlichte Prozesswebsite enth\u00e4lt keinen Inhalt, der sich auf den exportierten Prozess bezieht.\n\nFortfahren?

# Informational Messages
completedText_msg=IUPM0103I: Der ausgew\u00e4hlte Prozess ''{0}'' wurde erfolgreich in die Microsoft-Project-XML-Datei ''{1}'' exportiert.

# Error Messages
exportMSPError_msg=IUPM0105E: Beim Exportieren des ausgew\u00e4hlten Prozesses ''{0}'' in die Microsoft-Project-Datei ''{1}'' ist ein Fehler aufgetreten.
exportMSPError_reason=Klicken Sie auf Details, um weitere Informationen zu erhalten.
exportMSPInternalError_msg=Es ist ein interner Fehler aufgetreten.
illegalArgument_msg={0} gibt einen Nullwert oder ung\u00fcltigen Wert zur\u00fcck.
