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

# Error Messages
invalidNameError_msg=Der Name ''{0}'' ist ung\u00fcltig. Die folgenden Zeichen sind in Namen von Methodenelementen nicht zul\u00e4ssig: \\ / : * ? " < > |
objNotFoundError_msg=Es wurde kein Objekt mit der ID ''{0}'' gefunden.
loadLibraryError_msg=Fehler beim Laden der Methodenbibliothek:
loadLibraryError_details=\ \ Zeile: {0}, Spalte: {1}, Nachricht: {2}
restoreResourceError_msg=Die Ressource ''{0}'' konnte nicht wiederhergestellt werden.
FileManager_fileReadOnly=Die Datei ''{0}'' ist schreibgesch\u00fctzt.
ErrMsg_CouldNotDelete={0} konnte nicht gel\u00f6scht werden. {1}
renameError_msg=''{0}'' konnte nicht in ''{1}'' umbenannt werden.
backupError_msg=Die Ressource ''{0}'' konnte nicht gesichert werden.
modifyFileError_msg=Die Datei ''{0}'' kann nicht ge\u00e4ndert werden.
filePathNameTooLong_msg=Die Ressource kann nicht gespeichert werden. Der Dateipfadname ist zu lang (l\u00e4nger als 255 Zeichen) ''{0}''.
loadResourceError_msg=Die Ressource ''{0}'' konnte nicht geladen werden.
loadResourceErrorWithReason_msg=Die Ressource ''{0}'' konnte nicht geladen werden. Ursache: {1}
invalidLibraryFileError_msg=Ung\u00fcltige Methodenbibliotheksdatei:
fileNotFoundError_msg=Es wurde keine Methodenbibliotheksdatei im Arbeitsbereich ''{0}'' gefunden.
normalizeURIError_msg=Die Ressource f\u00fcr das mit ''{0}'' angegebene Element wurde nicht gefunden.
moveError_msg=''{0}'' konnte nicht nach ''{1}'' verschoben werden. Das Ziel ist bereits vorhanden.
modifyReadOnlyFileError_msg=Die folgenden schreibgesch\u00fctzten Dateien k\u00f6nnen nicht ge\u00e4ndert werden: {0}
moveResourceError_msg=Die Ressource ''{0}'' ist an einer Persistenzoperation beteiligt, die noch nicht festgeschrieben wurde.
modifyFilesError_msg=Mindestens eine Datei konnte nicht ge\u00e4ndert werden.
resourceOutOfSynch_msg=Die Ressource ist nicht synchronisiert und muss erneut geladen werden: {0}
resourceAutoRefreshJob_name=Automatisches Aktualisieren f\u00fcr Ressource
loadConfiguration_couldNotLoad_logMsg=Die Datei {0} konnte nicht geladen werden. Die Methodenkonfiguration in dieser Datei hat eine GUID, die es bereits gibt.
loadConfiguration_notConfigFile_logMsg=Die Datei {0} ist keine Methodenkonfigurationsdatei.

# Progress Messages
loadLibraryTask_name=Methodenbibliothek wird geladen...
moveDataTask_name=Daten werden verschoben...
saveLibraryTask_name=Methodenbibliothek wird gespeichert...
loadResourcesTask_name=Alle Ressourcen werden in den Hauptspeicher geladen...
migratingDiagram_name=Diagramme werden migriert...
migrateContentDescriptionsTask_name=Prozessinhaltsbeschreibungen werden migriert...
fixPresentationNameTask_name=Leere Pr\u00e4sentationsnamen werden korrigiert...
UnresolvedProxyMarkerManager_couldNotResolveProxy=Das mit ''{0}'' angegebene Element wurde nicht gefunden.
refreshLibraryFilesTask_name=Bibliotheksdateien im Arbeitsbereich werden aktualisiert.
cannot_create_dir_msg=Das Verzeichnis ''{0}'' konnte nicht erstellt werden.
unresolvedProxyLoggerJob_name=Markierung f\u00fcr Ladefehler erstellen
