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

_UI_Content_group=Metodeindhold

_UI_Disciplines_group=Discipliner
_UI_Domains_group=Dom\u00e6ner
_UI_WorkProductTypes_group=Arbejdsprodukttyper
_UI_Role_Sets_group=Rolles\u00e6t
_UI_Tools_group=V\u00e6rkt\u00f8jer
_UI_Standard_Categories_group=Standardkategorier
_UI_Custom_Categories_group=Tilpassede kategorier
_UI_MethodContent_group=Indholdspakker
_UI_Categories_group=Kategorier

_UI_Processes_group=Processer
_UI_PlanningTemplates_group=Planl\u00e6gningsskabeloner

_UI_CapabilityPatterns_text=Funktionsm\u00f8nstre
_UI_DeliveryProcesses_text=Leveringsprocesser
_UI_ProcessContributions_text=Forskelsprocesser
_UI_PlanningTemplates_text=Planl\u00e6gningsskabeloner

_UI_CapabilityPattern_text=Funktionsm\u00f8nster
_UI_DeliveryProcess_text=Leveringsproces
_UI_ProcessContribution_text=Forskelsproces

_UI_Configurations_text=Konfigurationer

_UI_ProcessFamilies_text=Procesfamilier

_UI_Uncategorized_text=Ukategoriseret
_UI_Uncategorized_Tasks_text=Ukategoriserede opgaver
_UI_Uncategorized_Roles_text=Ukatagoriserede roller

_UI_Guidances_group=Vejledning
_UI_Guidances_Checklists=Tjeklister
_UI_Guidances_Concepts=Begreber
_UI_Guidances_Examples=Eksempler
_UI_Guidances_EstimationConsiderations=Estimeringsovervejelser
_UI_Guidances_Practices=Fremgangsm\u00e5der
_UI_Guidances_Reports=Rapporter
_UI_Guidances_ReusableAssets=Genanvendelige aktiver
_UI_Guidances_Roadmap=Vejviser
_UI_Guidances_SupportingMaterials=St\u00f8ttemateriale
_UI_Guidances_Techniques=Teknikker
_UI_Guidances_Templates=Skabeloner
_UI_Guidances_TermDefinitions=Udtryksdefinitioner
_UI_Guidances_ToolMentors=V\u00e6rkt\u00f8jsmentorer
_UI_Guidances_Whitepapers=Hvidb\u00f8ger
_UI_Guidances_WorkProductGuidelines=Retningslinjer
_UI_Key_Concepts=N\u00f8glebegreber


_UI_Roles_group=Roller
_UI_Tasks_group=Opgaver
_UI_WorkProducts_group=Arbejdsprodukter
_UI_Activities_group=Aktiviteter

# Breakdown structure column display names
BS_Column_name=Navn
BS_Column_prefix=Pr\u00e6fiks
BS_Column_id=Indeks
BS_Column_predecessors=Forg\u00e6ngere
BS_Column_is_repeatable=Kan gentages
BS_Column_is_ongoing=Igangv\u00e6rende
BS_Column_is_event_driven=Aktivitetsstyret
BS_Column_entry_state=Indgangstilstand
BS_Column_exit_state=Udgangstilstand
BS_Column_teams=Team
BS_Column_type=Type
BS_Column_model_info=Modeloplysninger
BS_Column_presentation_name=Pr\u00e6sentationsnavn
BS_Column_deliverable=Leverance
BS_Column_is_optional=Valgfrit
BS_Column_is_planned=Planlagt
BS_Column_has_multiple_occurrences=Flere forekomster
