#-------------------------------------------------------------------------------
# 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: IUPE0000E - IUPE0099E
#

# Export Library Configuration Wizard
exportConfigWizard_title=Bibliothekskonfiguration exportieren
selectExportTypePage_title=Exporttyp ausw\u00e4hlen
selectExportTypePage_desc=W\u00e4hlen Sie den Typ der zu exportierenden Bibliothekskonfiguration aus.
selectExportTypePage_configLabel_text=Methodenkonfiguration mit allen Methoden-Plug-ins exportieren
selectExportTypePage_configSpecsLabel_text=Eine oder mehrere Spezifikationen f\u00fcr Methodenkonfigurationen exportieren
selectConfigPage_title=Methodenkonfiguration ausw\u00e4hlen
selectConfigPage_desc=W\u00e4hlen Sie eine zu exportierende Methodenkonfiguration aus. Alle referenzierten Methoden-Plug-ins in der ausgew\u00e4hlten Konfiguration werden in den Export eingeschlossen.
selectConfigPage_configsLabel_text=Methodenkonfigurationen:
selectConfigSpecsPage_title=Konfigurationsspezifikationen ausw\u00e4hlen
selectConfigSpecsPage_desc=W\u00e4hlen Sie die zu exportierenden Spezifikationen f\u00fcr Methodenkonfigurationen aus.
selectConfigSpecsPage_configsLabel_text=Methodenkonfigurationen:
checkConfigPage_title=Konfigurationsfehler pr\u00fcfen
checkConfigPage_desc=F\u00fcr die ausgew\u00e4hlte Methodenkonfiguration wurde eine Integrit\u00e4tspr\u00fcfung durchgef\u00fchrt. Sehen Sie sich den Fehlerbericht an und f\u00fchren Sie die erforderlichen Fehlerberichtigungen durch.
selectDestinationPage_title=Exportverzeichnis angeben
selectDestinationPage_desc=Geben Sie ein Zielverzeichnis an, in dem die exportierte Konfiguration gespeichert werden soll.

# Export Method Plug-ins Wizard
exportPluginsWizard_title=Methoden-Plug-ins exportieren
selectPluginsPage_title=Methoden-Plug-ins ausw\u00e4hlen
selectPluginsPage_desc=W\u00e4hlen Sie mindestens ein zu exportierendes Methoden-Plug-in aus.
selectPluginsPage_pluginsLabel_text=Methoden-Plug-ins:
reviewPluginsPage_title=Abh\u00e4ngigkeiten pr\u00fcfen
reviewPluginsPage_desc=W\u00e4hlen Sie jedes Methoden-Plug-in aus, um die Abh\u00e4ngigkeiten zu pr\u00fcfen. Klicken Sie auf Zur\u00fcck, um die abh\u00e4ngigen Plug-ins auszuw\u00e4hlen, falls diese in den Export eingeschlossen werden m\u00fcssen.
reviewPluginsPage_pluginsLabel_text=Methoden-Plug-ins:
reviewPluginsPage_dependentPluginsLabel_text=Abh\u00e4ngige Methoden-Plug-ins:
reviewPluginsPage_associatedConfigsLabel_text=Zugeordnete Methodenkonfigurationen:
exportPluginSummaryPage_title=Export best\u00e4tigen
exportPluginSummaryPage_desc=Best\u00e4tigen Sie die zu exportierenden Methoden-Plug-ins.
exportPluginSummaryPage_noPlugin_text=Es wurde kein Methoden-Plug-in ausgew\u00e4hlt.
specifyPathPage_title=Exportverzeichnis angeben
specifyPathPage_desc=Geben Sie ein Zielverzeichnis an, in dem die exportierten Methoden-Plug-ins gespeichert werden sollen.
SavePluginPage_desc=Exportieren Sie die ausgew\u00e4hlten Plug-ins und Konfigurationen in das angegebene Zielverzeichnis.
ExportPluginWizard_title=Fehler im Exportassistenten f\u00fcr Methoden-Plug-ins
ExportPluginError_msg=IUPE0000E: Fehler beim Export

# Export Library Configuration Error Dialog
exportConfigErrorDialog_title=Bibliothekskonfiguration exportieren
exportConfigErrorDialog_msg=IUPE0001E: Die Exportoperation kann nicht fortgesetzt werden.

# Progress Messages
analyzingConfigTask_name=Bibliothekskonfiguration wird analysiert...

# The following messages have not been reviewed.
ConfigurationSpecsExportService_MSG0=Konfiguration wird exportiert...
ConfigurationSpecsExportService_MSG1=Der Export ist abgeschlossen.
ExportConfigCheckingPage_summary_1=Die Integrit\u00e4t der ausgew\u00e4hlten Konfiguration wird gepr\u00fcft...\n
ExportConfigCheckingPage_summary_2=Es wurde keine Konfiguration ausgew\u00e4hlt.\n
ExportConfigCheckingPage_summary_3=Es wurde kein Fehler in der ausgew\u00e4hlten Konfiguration gefunden.\n
ExportConfigCheckingPage_summary_4=Es wurden {0} Fehler in der ausgew\u00e4hlten Konfiguration gefunden.\nSie k\u00f6nnen den Konfigurationseditor \u00f6ffnen und diese Fehler beheben.\nSie k\u00f6nnen die Fehler aber auch ignorieren und die Operation fortsetzen.
ExportConfigCheckingPage_checking=Konfiguration wird gepr\u00fcft. Bitte warten...
ExportConfigSelectConfigPage_title=Methodenkonfiguration ausw\u00e4hlen
DestinationCommonPage_label_browse=Durchsuchen...
DestinationCommonPage_label_default_dir=Standardverzeichnis verwenden
ConfigurationExportService_MSG0=Konfiguration wird exportiert...
ConfigurationExportService_MSG2=IUPE0002E: Export fehlgeschlagen: Fehler beim Laden der Bibliothek
ConfigurationExportService_MSG4=IUPE0003E: Export fehlgeschlagen: Fehler beim Kopieren der Bibliothek
ConfigurationExportService_MSG1=IUPE0004E: Export fehlgeschlagen: Fehler beim Erstellen der abgeschlossenen Konfiguration
ConfigurationExportService_MSG9=IUPE0005E: Export fehlgeschlagen: Fehler beim Speichern der Bibliothek
DestinationCommonPage_label_name=Name:
DestinationCommonPage_label_dir=Verzeichnis:
ExportPluginWizard_error=Fehler
DestinationCommonPage_title=Standardtitel
DestinationCommonPage_desc=Standardbeschreibung:
PluginExportService_MSG0=Plug-ins werden exportiert...
PluginExportService_MSG1=Exportverzeichnis wird erstellt...
PluginExportService_MSG2=Dateien werden kopiert...
PluginExportService_MSG3=Bibliothek und Ressourcendatei werden generiert...
PluginExportService_MSG4=Der Export ist abgeschlossen.
SaveLibraryPage_title=Methoden-Plug-in exportieren
SavePluginPage_label_name=Exportname:
SaveLibraryPage_desc=Exportieren Sie die ausgew\u00e4hlten Methoden-Plug-ins und die zugeordneten Konfigurationen.
ExportPluginWizard_MSG1=Bibliothekskonfiguration wird analysiert...
