#-------------------------------------------------------------------------------
# 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:
#

# Import XML Wizard
importXMLWizard_title=XML importieren

# Select Import XML File Wizard Page
selectXMLFilePage_title=Importdatei angeben
selectXMLFilePage_desc=Geben Sie die XML-Datei an, die den zu importierenden Inhalt der Methodenbibliothek enth\u00e4lt, und w\u00e4hlen Sie die auszuf\u00fchrende Importoperation aus.
fileLabel_text=XML-Datei:
browseButton_text=Durchsuchen...
optionGroup_text=Optionen f\u00fcr Zusammenf\u00fchren
optionGroup1_text=Optionen f\u00fcr Basis-Plug-in-Pr\u00fcfung
overwriteRadioButton_text=Vorhandenen Inhalt der Methodenbibliothek durch den importierten Inhalt \u00fcberschreiben
mergeRadioButton_text=Importierten Inhalt in die vorhandene Methodenbibliothek einf\u00fcgen

# Progress Messages
importingXML_text=XML-Bibliotheksinhalt in die aktuelle Methodenbibliothek importieren...

# Import XML Error Dialog
review_log_files=Die Importoperation ist abgeschlossen. Suchen Sie in den Protokolldateien\nim Ordner ''{0}'' nach Fehlern.
importXMLError_msg=IUPM0000E: Die Importoperation kann nicht fortgesetzt werden.
importXMLError_reason=IUPM0009E: Die aktuelle Bibliothek ist schreibgesch\u00fctzt.\n\nStellen Sie sicher, dass der Schreibzugriff auf ''{0}'' m\u00f6glich ist, oder erstellen Sie eine neue Methodenbibliothek, und wiederholen Sie den Vorgang.

# Error Messages
invalidXMLFile_error=Die angegebene XML-Datei ist nicht g\u00fcltig.
versionMismatch_oldData=IUPM0010E: Die angegebene XML-Datei wurde mit einer fr\u00fcheren Version ({0}) von {1} exportiert. Die Dateien m\u00fcssen mit der aktuellen Version von {1} exportiert werden.
versionMismatch_oldData_unknown=IUPM0011E: Die angegebene XML-Datei wurde mit einer fr\u00fcheren Version von {0} exportiert. Die Dateien m\u00fcssen mit der aktuellen Version von {0} exportiert werden.
versionMismatch_oldTool=IUPM0012E: Die angegebene XML-Datei wurde mit einer neueren Version ({0}) von {1} exportiert. Sie m\u00fcssen einen Upgrade von {1} durchf\u00fchren, um die Datei importieren zu k\u00f6nnen. 
versionMismatch_oldTool_unknown=IUPM0013E: Die ausgew\u00e4hlte XML-Datei kann nicht ge\u00f6ffnet werden. Sie m\u00fcssen einen Upgrade von {0} durchf\u00fchren, um die Datei importieren zu k\u00f6nnen. 

importXMLService_element_not_handled=Nicht bearbeitetes Element: {0}
importXMLService_element_without_id=Element ohne ID: {0}
importXMLService_import_failed=Import fehlgeschlagen: {0}
importXMLService_missing_plugin=Das erforderliche Plug-in {0} fehlt.
importXMLService_error_missing_plugins=Es fehlen erforderliche Plug-ins. Suchen Sie in den Protokolldateien nach Einzelheiten.

library_error_no_eclass=Fehler beim Erstellen der Inhaltskategorie: Die EClass f\u00fcr {0} kann nicht abgerufen werden.
library_no_package=Das Paket f\u00fcr das Objekt {0} wurde nicht gefunden.
library_error_create_element=Fehler beim Erstellen des Elements: {0}
library_object_string=Objekt {0}, Feature {1}
library_error_set_attribute_2=Fehler beim Setzen des Attributs: Der Feature-Wert {0} ist ung\u00fcltig.
library_error_set_attribute=Fehler beim Setzen des Attributs f\u00fcr Objekt {0}, Feature {1} und Wert {2}
library_error_set_attribute_3=Es kann nicht bestimmt werden, wie das Attribut f\u00fcr Objekt {0}, Feature {1} und Wert {2} gesetzt werden kann.
library_error_set_reference=Fehler beim Definieren der Referenz f\u00fcr Feature {0}: Es ist kein Element mit der ID {1} vorhanden.
library_error_set_reference_2=Fehler beim Definieren der Referenz f\u00fcr Objekt {0}, Feature {1} und Wert {2}

