#-------------------------------------------------------------------------------
# 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

################################################################################
# BEGIN NO TRANSLATION
################################################################################

# Role diagram fonts and layout
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name=Arial
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_ja=\u30c0\u30a4\u30a2\u30ed\u30b0
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_ko=\ub300\ud654 \uc0c1\uc790
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_zh=\u5bf9\u8bdd\u6846
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_zh_TW=Dialog
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_win32=Arial
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_win32_ja=MS Gothic
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_win32_ko=\uad74\ub9bc\uccb4
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_win32_zh=\u9ed1\u4f53
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_name_win32_zh_TW=\u7d30\u660e\u9ad4
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_size=10
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagramFont_size_win32=10
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagram_xMargin=200
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagram_xSpacing=70
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
roleDiagram_ySpacing=30

################################################################################
# END NO TRANSLATION
################################################################################

unknown_text=Unbekannt

# Error Reasons
emptyLibraryPathError_reason=Der Pfad der Methodenbibliothek ist leer.
missingLibraryFileError_reason=Die Modelldatei f\u00fcr die Methodenbibliothek ist nicht vorhanden.
unresolvedProxyError_reason=Die ausgew\u00e4hlte Methodenbibliothek enth\u00e4lt nicht aufgel\u00f6ste Elementreferenzen. Dieses Problem tritt in der Regel auf, wenn XMI-Dateien im Bibliotheksordner fehlen oder an die falsche Position kopiert wurden.\n\nSchlie\u00dfen Sie den Dialog und rufen Sie die Sicht "Probleme" auf, um die nicht aufgel\u00f6sten Referenzen zu ermitteln. Um die Bibliothek nicht zu besch\u00e4digen, wird dringend empfohlen, die Referenzen zuerst aufzul\u00f6sen, bevor der Bibliothek weitere \u00c4nderungen hinzugef\u00fcgt werden.

# Warning Messages
configClosureWarning_msg1=IUPL0007W: In mindestens einem untergeordneten Element fehlen Referenzen.
configClosureWarning_msg2=IUPL0008W: Dieses Element sollte ausgew\u00e4hlt werden, um fehlende Referenzen aufzul\u00f6sen.
configClosureWarning_msg3=IUPL0009W: Dieses Element verweist auf mindestens ein Element in einem nicht ausgew\u00e4hlten Paket.

ElementError_missing_element=''{0}'' verweist auf nicht ausgew\u00e4hltes Element ''{1}''.
ElementError_contributor_missing_base=''{0}'' ist ein Beitrag zu dem nicht ausgew\u00e4hlten Element ''{1}''.
ElementError_extender_missing_base=''{0}'' erweitert nicht ausgew\u00e4hltes Element ''{1}''.
ElementError_replacer_missing_base=''{0}'' ersetzt nicht ausgew\u00e4hltes Element ''{1}''.
ElementError_missing_primary_performer=Prim\u00e4rer Ausf\u00fchrender ''{1}'' fehlt f\u00fcr ''{0}''.
ElementError_missing_mandatory_input=Verbindliche Eingabe ''{1}'' fehlt f\u00fcr ''{0}''.
ElementError_missing_output=Ausgabe ''{1}'' fehlt f\u00fcr ''{0}''.

# Error Messages
loadResourcesError_msg=IUPL0000E: Die Methodenbibliothek wurde zwar geladen, aber es sind einige Fehler aufgetreten.
unsupportedGuidanceTypeError_msg=IUPL0001E: Diese Anleitung kann nicht in einen anderen Typ konvertiert werden.
convertGuidanceError_msg=IUPL0002E: Diese Anleitung kann nicht in den Zieltyp konvertiert werden.
saveConvertedGuidanceError_msg=IUPL0003E: Die konvertierte Anleitung ''{0}'' kann nicht gespeichert werden.

# Convert activity
convertActivityError_title=Fehler beim Konvertieren des Aktivit\u00e4tstyps
convertActivityError_msg=IUPL0006E: Diese Aktivit\u00e4t kann nicht in den Zieltyp konvertiert werden.
saveConvertedActivityError_msg=IUPL0007E: Die konvertierte Aktivit\u00e4t ''{0}'' kann nicht gespeichert werden.

# Error Reasons
error_reason=IUPL0004E: Es ist ein Fehler aufgetreten. Klicken Sie auf "OK", um weitere Informationen zu erhalten.
unsupportedGuidanceTypeError_reason=Es ist kein kompatibler Anleitungstyp f\u00fcr {0} vorhanden.
invalidLibraryPathError_reason=Ung\u00fcltiger Bibliothekspfad. Die Datei mit der Erweiterung .project konnte nicht erstellt werden.
couldNotLockLibrary_reason=Die Bibliothek konnte nicht gesperrt werden.

# Progress Messages
copyingAttachmentsTask_name=Anh\u00e4nge werden kopiert...

# Convert Guidance Dialog
convertGuidanceDialog_title=Anleitungstyp konvertieren
convertGuidanceDialog_text=W\u00e4hlen Sie den Zielanleitungstyp aus.

# Guidance type names for Convert Guidance Dialog
checklist_text=Pr\u00fcfliste
concept_text=Konzept
example_text=Beispiel
guideline_text=Richtlinie
estimate_text=Sch\u00e4tzen
estimatingMetric_text=Sch\u00e4tzmetrik
estimationConsiderations_text=Hinweise zum Sch\u00e4tzen
report_text=Bericht
template_text=Vorlage
supportingMaterial_text=Unterst\u00fctzendes Material
toolMentor_text=Toolmentor
whitepaper_text=White Paper
termDefinition_text=Begriffsdefinition
practice_text=Verfahren
reusableAsset_text=Wiederverwendbares Asset

#activity breakdown info strings
ActivityLayout_primaryTasks_text=Ausf\u00fchrung als Eigner
ActivityLayout_additionalTasks_text=Ausf\u00fchrung als zus\u00e4tzlicher Ausf\u00fchrender

# Convert Guidance Error Messages
convertGuidanceError_title=Fehler beim Konvertieren des Anleitungstyps

# Load Resources Error Dialog
loadResourcesError_title=Fehler beim \u00d6ffnen der Methodenbibliothek
loadResourcesError_reason=Einige Bibliotheksressourcen konnten nicht geladen werden.\n\nKlicken Sie auf Details, um sich die Fehler anzusehen und zu beheben, bevor Sie der Bibliothek weitere \u00c4nderungen hinzuf\u00fcgen.

# Role Diagrams
roleDiagramPerforms_text=f\u00fchrt aus
roleDiagramResponsibleFor_text=verantwortlich f\u00fcr

DefaultContentValidator_MSG0=Referenziertes Element: {0}
DefaultContentValidator_MSG1=Info: {0}
DefaultContentValidator_MSG4=Warnung: {0}
DefaultContentValidator_MSG7=Fehler: {0}
DefaultContentValidator_MSG10=Das referenzierte Element {0} ist nicht vorhanden.
DefaultContentValidator_MSG11=Element f\u00fcr guid {0} wurde nicht gefunden.
DefaultContentValidator_MSG12=Die Datei ''{0}'' verweist auf die nicht vorhandene Ressource ''{1}''.
DefaultContentValidator_MSG15=Die Ressourcendatei ''{0}'' ist nicht vorhanden.
DefaultContentValidator_MSG17=Es kann keine Verbindung zum URL ''{0}'' hergestellt werden.
DefaultContentValidator_MSG19=Es kann keine Verbindung zum URL ''{0}'' hergestellt werden: {1}
ImportExportUtil_MSG8=Die Datei ''{0}'' wurde nicht gefunden.
ImportExportUtil_MSG9=Das tempor\u00e4re Verzeichnis ''{0}'' konnte nicht erstellt werden.
unknownGuidance_text=Unbekannt

CopyAttachmentsToNewLocation_log_noContentPath=CopyAttachmentsToNewLocation.HandleAttachmentsPlugin: Es ist kein contentPath f\u00fcr {0} vorhanden.
LibraryModificationHelper_cannotUpdate=IUPL0006W: {0} {1} kann nicht aktualisiert werden.
warningDlg_title=Warnung
errorDlg_title=Fehler
errorDlg_saveError=IUPL0005E: Fehler beim Speichern der \u00c4nderungen in der Datei ''{0}''

# activity diagram names
activityDiagramName=Aktivit\u00e4tsdiagramm: {0}
activityDetailDiagramName=Aktivit\u00e4tsdetaildiagramm: {0}
wpDependencyDiagramName=Arbeitsergebnisabh\u00e4ngigkeitsdiagramm: {0}

# localize the value based on locale.  for example, 
# for English, the value is ". "
#colon_with_space=: 
# for French, the value is " . ", you need to use a \ to preserve the leading space
#colon_with_space=\ : 
# for Chinese, the colon should be double bytes
# Don't trim the spaces after the colon.
colon_with_space=: 

oldToolVersion_err_msg=Diese Version von {0} ist nicht kompatibel mit Ihrer Bibliotheksdatei ''{2}''. Sie m\u00fcssen ein Upgrade von {0} auf Version {1} oder h\u00f6her durchf\u00fchren, um sie \u00f6ffnen zu k\u00f6nnen.
toolVersionMismatch_err_msg=Diese Version von {0} ist nicht kompatibel mit Ihrer Bibliotheksdatei ''{2}''. Sie m\u00fcssen ein Upgrade von {0} auf eine h\u00f6here Version durchf\u00fchren, um sie \u00f6ffnen zu k\u00f6nnen.
libUpgradeRequired_err_msg=Die angegebene Bibliothek muss auf die neue Bibliotheksstruktur aktualisiert werden. \u00d6ffnen Sie die Bibliothek, um das Upgrade durchzuf\u00fchren, und wiederholen Sie den Vorgang.
