#-------------------------------------------------------------------------------
# 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:
#

# Export XML Wizard
exportXMLWizard_title=XML exportieren

# Select Export Type Wizard Page
selectExportTypePage_desc=W\u00e4hlen Sie den Typ des zu exportierenden Methodenbibliotheksinhalts aus.
exportLibraryRadioButton_text=Gesamte Methodenbibliothek exportieren
exportPluginsRadioButton_text=Methoden-Plug-ins exportieren
exportConfigsRadioButton_text=Methodenkonfiguration exportieren

# Select Destination XML File Wizard Page
selectXMLFilePage_title=Exportdatei angeben
selectXMLFilePage_desc=Geben Sie eine XML-Zieldatei an, in der der exportierte Methodenbibliotheksinhalt gespeichert werden soll.
fileLabel_text=XML-Datei:
browseButton_text=Durchsuchen...

# Overwrite Confirmation Dialog
overwriteText_msg=''{0}'' ist bereits vorhanden.\nM\u00f6chten Sie diese Datei \u00fcberschreiben?

# Progress Messages
exportingXML_text=Inhalt einer Methodenbibliothek in eine XML-Datei exportieren...

# Error Messages
invalidXMLFile_error=Die angegebene XML-Datei ist nicht g\u00fcltig.
exportXMLWizard_error=IUPM0000E: Export fehlgeschlagen: {0}
exportXMLWizard_reviewLog=Der Export ist abgeschlossen. Sehen Sie sich die Protokolldateien im Exportverzeichnis an.
exportXMLService_error=Fehler beim Exportieren der Bibliothek: {0}
exportXMLService_feature_error=Fehler beim Setzen des Featurewerts:: Element={0}, Feature={1}
xmlLibrary_error_load_xml=Die XML-Quelle ''{0}'' kann nicht geladen werden.
xmlLibrary_no_plugin=Es ist kein Methoden-Plug-in f\u00fcr ID {0} vorhanden.
xmlLibrary_no_feature=Das XML-Feature f\u00fcr {0}_{1} kann nicht abgerufen werden.
xmlLibrary_no_class=Die EClass f\u00fcr {0} kann nicht abgerufen werden.
xmlLibrary_error_create_element=Fehler beim Erstellen des Elements. Es kann nicht bestimmt werden, wie der Wert f\u00fcr das Feature {0} gesetzt wird.
xmlLibrary_error_set_value=Fehler beim Erstellen des Elements. Der Wert {0} kann nicht auf den Container {1} gesetzt werden.
xmlLibrary_invalid_feature_value=Ung\u00fcltiger Attributfeaturewert f\u00fcr Feature {0} mit dem Wert {1}
xmlLibrary_error_set_value_2=Fehler beim Setzen des Attributs. Der Wert f\u00fcr Feature {0}, Objekt {1}, Wert {2} kann nicht gesetzt werden.
xmlLibrary_error_set_value_3=Es kann nicht bestimmt werden, wie der Wert f\u00fcr Feature {0}, Objekt {1}, Wert {2} gesetzt wird.
xmlLibrary_error_set_reference=Fehler beim Definieren der Referenz. Der Wert f\u00fcr Feature {0}, Objekt {1}, Wert {2} kann nicht gesetzt werden.
xmlLibrary_error_process_wrong_container=Der Prozess ''{0}'' hat keinen g\u00fcltigen Container. Der Container hat den Typ ''{1}'' und ist damit kein Prozesspaket.
xmlLibrary_new_id=Dem Element {0} wurde die neue ID {1} zugeordnet, weil es keine g\u00fcltige ID hatte.
xmlLibrary_id_not_unique=Die Element-ID ''{0}'' wird von mehreren Elementen verwendet.


