#-------------------------------------------------------------------------------
# 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:
#

# 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 Feature-Werts:: 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 Attribut-Feature-Wert 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.


