#-------------------------------------------------------------------------------
# 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: IUPE0200E - IUPE0299E
#

# Import Library Configuration Wizard
importConfigWizard_title=Bibliothekskonfiguration importieren
selectConfigDirWizardPage_title=Importverzeichnis angeben
selectConfigDirWizardPage_text=Geben Sie das Verzeichnis mit der zu importierenden Bibliothekskonfiguration an.
reviewChangesWizardPage_title=An der Bibliothek vorgenommene \u00c4nderungen pr\u00fcfen
reviewChangesWizardPage_text=Pr\u00fcfen Sie die \u00c4nderungen, die an der aktuellen Methodenbibliothek vorgenommen werden.
selectConfigSpecsWizardPage_title=Konfigurationsspezifikationen ausw\u00e4hlen
selectConfigSpecsWizardPage_text=W\u00e4hlen Sie mindestens eine zu importierende Konfigurationsspezifikation aus.

# Import Method Plug-ins Wizard
importPluginsWizard_title=Methoden-Plug-ins importieren
selectPluginsDirWizardPage_title=Importverzeichnis angeben
selectPluginsDirWizardPage_text=Geben Sie das Verzeichnis mit den zu importierenden Methoden-Plug-ins an.
selectPluginsWizardPage_title=Methoden-Plug-ins ausw\u00e4hlen
selectPluginsWizardPage_text=W\u00e4hlen Sie mindestens ein zu importierendes Methoden-Plug-in aus. Wenn ein ausgew\u00e4hltes Plug-in bereits in der aktuellen Methodenbibliothek vorhanden ist, \u00fcberpr\u00fcfen Sie die Versionsdifferenzen.
importPluginsWizard_ERR_Import_plugin=Import des Plug-ins fehlgeschlagen

ConfigurationImportService_MSG0=Ausgew\u00e4hlte Bibliothekskonfiguration wird validiert...
ConfigurationImportService_MSG1=Das angegebene Verzeichnis enth\u00e4lt keine g\u00fcltige Konfiguration.
ConfigurationImportService_MSG3=Methodenkonfiguration wird importiert...
ConfigurationImportService_MSG2=Die derzeit ge\u00f6ffnete Bibliothek kann nicht in sich selbst importiert werden.
ImportConfigurationWizard_MSG1=Methodenkonfiguration wird importiert...
ImportConfigurationWizard_ERR_Import_configuration=Import der Konfiguration fehlgeschlagen

FileModifyChecker_Checkout_failed_title=Auschecken fehlgeschlagen
FileModifyChecker_Checkout_failed_msg=Einige Dateien wurden nicht ausgecheckt. M\u00f6chten Sie den Vorgang wiederholen?

ImportConfigReportPage_title=Konfigurationsbericht importieren
ImportPluginWizard_readonly=IUPE0201E: Die Bibliothek ist schreibgesch\u00fctzt.
ImportPluginWizard_MSG1=Methoden-Plug-in wird importiert...
ImportPluginWizard_error=Fehler
ImportPluginWizard_warn_existing_plugins=IUPE0200E: Die folgenden ausgew\u00e4hlten Plug-ins sind bereits vorhanden. Wenn Sie diese Plug-ins erneut importieren, werden die vorhandenen \u00fcberschrieben:\n\n {0} \n\nM\u00f6chten Sie den Vorgang fortsetzen?
ImportPluginWizard_confirm_continue=\n\nM\u00f6chten Sie den Vorgang wirklich fortsetzen?

SelectConfigsToImport_label1=Die folgenden Elemente werden importiert:
ImportConfigurationWizard_error=Fehler
SelectImportConfigurationSource_MSG1=Analyse l\u00e4uft
SelectConfigSpecsToImportPage_title2=Zu importierende Konfigurationsspezifikationen ausw\u00e4hlen
SelectImportPluginSource_not_used=not_used
SelectImportPluginSource_no_path=Das angegebene Verzeichnis ist nicht vorhanden.
SelectImportPluginSource_no_dir=Es wurde kein Verzeichnis angegeben.
SelectPluginsToImport_label_plugins=Verf\u00fcgbare Plug-ins im Importverzeichnis:
SelectPluginsToImport_label_author=Autor:
SelectPluginsToImport_label_version=Version:
SelectPluginsToImport_label_desc=Kurzbeschreibung:
ImportConfigurationWizard_readonly=IUPE0201E: Die Bibliothek ist schreibgesch\u00fctzt.
PluginImportingService_MSG0=Ausgew\u00e4hlte Plug-ins werden validiert...
PluginImportingService_MSG1=Der angegebene Pfad enth\u00e4lt kein g\u00fcltiges Methoden-Plug-in.
PluginImportingService_MSG3=Methoden-Plug-in wird importiert...
PluginImportingService_MSG5=Das ausgew\u00e4hlte Methoden-Plug-in kann nicht importiert werden. Das zugeh\u00f6rige abh\u00e4ngige Plug-in ''{0}'' wurde nicht in der aktuellen Methodenbibliothek gefunden.
PluginImportingService_MSG6=Das ausgew\u00e4hlte Methoden-Plug-in kann nicht importiert werden. Ein zugeh\u00f6riges abh\u00e4ngiges Plug-in wurde nicht in der aktuellen Methodenbibliothek gefunden.
DiffReportViewer_content=Inhalt
DiffReportViewer_in_import=Im Import
SelectPluginsToImport_MSG1=Dateien werden analysiert...
DiffReportLabelProvider_yes=Ja
SelectPluginsToImport_error=Fehler
DiffReportViewer_in_lib=In der Bibliothek
DiffReportViewer_status=Status
SelectPluginsToImport_libraryPluginExists=Ausgew\u00e4hltes Plug-in wurde in aktueller Bibliothek gefunden
SelectPluginsToImport_libraryPluginNotExists=Ausgew\u00e4hltes Plug-in wurde nicht in aktueller Bibliothek gefunden
SelectConfigSpecsToImportPage_libraryConfigSpecExists=Konfiguration wurde in der aktuellen Bibliothek gefunden
SelectConfigSpecsToImportPage_configSpecNoSelection=Es wurde keine Konfigurationsspezifikation ausgew\u00e4hlt.
SelectConfigSpecsToImportPage_configSpecDataLabel=Ausgew\u00e4hlte Konfiguration im Importverzeichnis
SelectConfigSpecsToImportPage_label_configs=Verf\u00fcgbare Konfigurationsspezifikationen im Importverzeichnis:
SelectImportConfigurationSource_not_used=not_used
SelectConfigSpecsToImportPage_label_desc=Kurzbeschreibung:
SelectImportConfigurationSource_no_path=Der angegebene Pfad ist nicht vorhanden.
SelectPluginsToImport_pluginNoSelection=Es wurde kein Plug-in ausgew\u00e4hlt.
SelectImportConfigurationSource_no_dir=Es wurde kein Verzeichnis angegeben.
SelectImportConfigurationSource_plugin_readonly=Das Plug-in {0} ist schreibgesch\u00fctzt.\n
SelectImportConfigurationSource_plugin_locked=IUPE0203E: Das Plug-in {0} ist gesperrt.\n
SelectImportConfigurationSource_error_not_updatable=Einige der Plug-ins in der Bibliothek ist gesperrt oder schreibgesch\u00fctzt.\nGeben Sie die Plug-ins frei und stellen Sie sicher, dass die Dateien aktualisiert werden k\u00f6nnen.
SelectPluginsToImport_pluginDataLabel=Ausgew\u00e4hltes Plug-in im Importverzeichnis
DiffReportViewer_type=Inhaltstyp
SelectConfigSpecsToImportPage_libraryConfigSpecNotExists=Die ausgew\u00e4hlte Konfiguration wurde nicht in der aktuellen Bibliothek gefunden.
versionMismatch_oldData=IUPE0204E: Die angegebenen Dateien wurden mit einer fr\u00fcheren Version ({0}) von {1} exportiert. Sie m\u00fcssen Dateien mit der aktuellen Version von {1} exportieren.
versionMismatch_oldData_unknown=IUPE0205E: Die angegebenen Dateien wurden mit einer fr\u00fcheren Version von {0} exportiert. Sie m\u00fcssen Dateien mit der aktuellen Version von {0} exportieren.
versionMismatch_oldTool=IUPE0206E: Die angegebenen Dateien wurden mit einer neueren Version ({0}) von {1} exportiert. Sie m\u00fcssen einen Upgrade von {1} durchf\u00fchren, um die Dateien importieren zu k\u00f6nnen. 
versionMismatch_oldTool_unknown=IUPE0207E: Die angegebenen Dateien k\u00f6nnen nicht ge\u00f6ffnet werden. Sie m\u00fcssen einen Upgrade von {0} durchf\u00fchren, um die Dateien importieren zu k\u00f6nnen. 
