#-------------------------------------------------------------------------------
# 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

# Plug-in
pluginName=EPF - Benutzerschnittstelle f\u00fcr Authoring
providerName=Eclipse.org

# Category
methodCategoryName=Methode

# Perspective
authoringPerspectiveName=Authoring
browsingPerspectiveName=Browsing

# Views
libraryViewName=Bibliothek
configurationViewName=Konfiguration
contentViewName=Inhalt
configurationErrorLogViewName=Konfigurationsfehlerprotokoll

# Editors
methodElementEditorName=Editor f\u00fcr Methodenelemente
configurationEditorName=Konfigurationseditor
processEditorName=Prozesseditor
activityDiagramEditorName=Editor f\u00fcr Aktivit\u00e4tsdiagramme
activityDetailDiagramEditorName=Editor f\u00fcr Aktivit\u00e4tsdetaildiagramme
workProductDepedencyDiagramEditorName=Editor f\u00fcr Arbeitsergebnisabh\u00e4ngigkeitsdiagramme

# Cheat Sheets
methodAuthoringCheatSheetsName=Spickzettel f\u00fcr Methoden-Authoring
CheatsheetGetstartedCategoryText=Erste Schritte
CheatsheetReusableContentCategoryText=Wiederverwendbaren Methodeninhalt erstellen
CheatsheetWriteContentCategoryText=Methodeninhalt schreiben
CheatsheetProcessesCategoryText=Mit Prozessen arbeiten
CheatsheetNavigateMethodContent=Im Methodeninhalt navigieren
CheatsheetCreateMethodConfiguration=Eigene Methodenkonfiguration erstellen
CheatsheetCreateMethodPlugin=Eigenes Methoden-Plug-in erstellen
CheatsheetAddMethodContent=Neuen Methodeninhalt wie Rollen, Aufgaben, Arbeitsergebnisse oder Anleitungen hinzuf\u00fcgen
CheatsheetTailorMethodElements=Vorhandene Methodenelemente (Rollen, Aufgaben, Arbeitsergebnisse oder Anleitungen) mit Beitr\u00e4gen anpassen
CheatsheetReplaceMehtodElements=Vorhandene Methodenelemente (Rollen, Aufgaben, Arbeitsergebnisse oder Anleitungen) ersetzen
CheatsheetAddMethodRefOrHyperlink=Methodenreferenz oder Hyperlink (URL) hinzuf\u00fcgen
CheatsheetApplyCapabilityPattern=Prozessmuster anwenden
CheatsheetCreateProcess=Prozess erstellen (Prozessmuster oder Bereitstellungsprozess)

# Action Set
authoringActionSet=Authoring
cheatSheetsActionSet=Spickzettel

# Global Actions
newLibraryAction=Methodenbib&liothek
newLibraryActionTooltip=Neue Methodenbibliothek erstellen
newPluginAction=Methoden-&Plug-in
newPluginActionTooltip=Neues Methoden-Plug-in erstellen
newConfigAction=Methoden&konfiguration
newConfigActionTooltip=Neue Methodenkonfiguration erstellen
openLibraryAction=Methodenbib&liothek
openLibraryActionTooltip=Vorhandene Methodenbibliothek \u00f6ffnen
openConfigAction=Methoden&konfiguration
openConfigActionTooltip=Vorhandene Methodenkonfiguration \u00f6ffnen
openCheatSheets=Spickzettel...

# Library View Actions
linkWithEditor=Mit Editor verlinken
linkWithEditorTooltip=Mit Editor verlinken
showPresentationNames=Pr\u00e4sentationsnamen anzeigen
showPresentationNamesTooltip=Pr\u00e4sentationsnamen anzeigen

# Configuration View Actions
refreshConfig=Aktualisieren
refreshConfigTooltip=Konfiguration aktualisieren

# Preference Page
methodAuthoringPage=Methoden-Authoring
processEditor=Prozesseditor
libraryOptions=Bibliotheksoptionen
diagram=Diagramm
startupAndShutdown=Starten und beenden
debug=Debugging

# Command Handler
selectAll=Alles ausw\u00e4hlen

# Properties View
_UI_ProcessEditor_menu=Prozess
_UI_CreateChild_menu_item=&Neuer untergeordneter Eintrag
_UI_CreateSibling_menu_item=N&euer gleichgeordneter Eintrag
_UI_ShowPropertiesView_menu_item=E&igenschaftensicht anzeigen
_UI_RefreshViewer_menu_item=A&ktualisieren
_UI_Properties_General=Allgemein
_UI_Properties_Documentation=Dokumentation
_UI_Properties_Guidance=Anleitung
_UI_Properties_Work_Rollup=Arbeits-Rollup
_UI_Properties_Team_Rollup=Team-Rollup
## The following value of string should be "Work Product Rollup". But
## due to limitation/bug in Eclipse WTP, it's been truncated to 
## "Work Prod Rollup". So during translation, please take this into consideration.
_UI_Properties_WP_Rollup=Arbeitserg.-Rollup
_UI_Properties_Roles=Rollen
_UI_Properties_WorkProducts=Arbeitsergebnisse
_UI_Properties_Steps=Schritte
_UI_Properties_Teams=Teams
