# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# 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

# Plug-in
providerName=Eclipse.org
pluginName=EPF - Bibliothek bearbeiten

_UI_Content_group=Methodeninhalt

_UI_Disciplines_group=Disziplinen
_UI_Domains_group=Dom\u00e4nen
_UI_WorkProductTypes_group=Arten von Arbeitsergebnissen
_UI_Role_Sets_group=Rollengruppen
_UI_Tools_group=Tools
_UI_Standard_Categories_group=Standardkategorien
_UI_Custom_Categories_group=Angepasste Kategorien
_UI_MethodContent_group=Inhaltspakete
_UI_Categories_group=Kategorien

_UI_Processes_group=Prozesse
_UI_PlanningTemplates_group=Planungsvorlagen

_UI_CapabilityPatterns_text=Prozessmuster
_UI_DeliveryProcesses_text=Bereitstellungsprozesse
_UI_ProcessContributions_text=Unterschiedliche Prozesse
_UI_PlanningTemplates_text=Planungsvorlagen

_UI_CapabilityPattern_text=Prozessmuster
_UI_DeliveryProcess_text=Bereitstellungsprozess
_UI_ProcessContribution_text=Unterschiedlicher Prozess

_UI_Configurations_text=Konfigurationen

_UI_ProcessFamilies_text=Prozessfamilien

_UI_Uncategorized_text=Nicht kategorisiert
_UI_Uncategorized_Tasks_text=Nicht kategorisierte Aufgaben
_UI_Uncategorized_Roles_text=Nicht kategorisierte Rollen

_UI_Guidances_group=Anleitung
_UI_Guidances_Checklists=Pr\u00fcflisten
_UI_Guidances_Concepts=Konzepte
_UI_Guidances_Examples=Beispiele
_UI_Guidances_EstimationConsiderations=Hinweise zum Sch\u00e4tzen
_UI_Guidances_Practices=Verfahren
_UI_Guidances_Reports=Berichte
_UI_Guidances_ReusableAssets=Wiederverwendbare Assets
_UI_Guidances_Roadmap=Roadmap
_UI_Guidances_SupportingMaterials=Unterst\u00fctzendes Material
_UI_Guidances_Techniques=Techniken
_UI_Guidances_Templates=Vorlagen
_UI_Guidances_TermDefinitions=Begriffsdefinitionen
_UI_Guidances_ToolMentors=Toolmentoren
_UI_Guidances_Whitepapers=White Paper
_UI_Guidances_WorkProductGuidelines=Richtlinien
_UI_Key_Concepts=Schl\u00fcsselkonzepte


_UI_Roles_group=Rollen
_UI_Tasks_group=Aufgaben
_UI_WorkProducts_group=Arbeitsergebnisse
_UI_Activities_group=Aktivit\u00e4ten

# Breakdown structure column display names
BS_Column_name=Name
BS_Column_prefix=Pr\u00e4fix
BS_Column_id=Index
BS_Column_predecessors=Vorg\u00e4nger
BS_Column_is_repeatable=Wiederholt anwendbar
BS_Column_is_ongoing=Fortlaufend
BS_Column_is_event_driven=Ereignisgesteuert
BS_Column_entry_state=Anfangszustand
BS_Column_exit_state=Endzustand
BS_Column_teams=Team
BS_Column_type=Typ
BS_Column_model_info=Modellinfo
BS_Column_presentation_name=Pr\u00e4sentationsname
BS_Column_deliverable=Liefergegenstand
BS_Column_is_optional=Optional
BS_Column_is_planned=Geplant
BS_Column_has_multiple_occurrences=Mehrere Vorkommen
