#-------------------------------------------------------------------------------
# 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 Featurewert {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}

