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

# Complete new strings need translation.
previous_name_null1=Navne\u00e6ndring kan ikke fortrydes, hvis det forrige navn er tomt.
err_name_empty=Navnet skal udfyldes. Angiv et gyldigt navn.
moveAction_label=Flyt

AbstractDiagram_Select_text=V\u00e6lg
AbstractDiagram_Select_tooltip=V\u00e6lg node eller link
AbstractDiagram_AddNode_title=Tilf\u00f8j node
AbstractDiagram_AddNode_err_msg=IXRD0002W: Noden kan ikke tilf\u00f8jes til diagram
AbstractDiagram_Link_text=Link
AbstractDiagram_Link_select=V\u00e6lg link
AbstractDiagram_Link_tooltip=Opret nyt link
ActivityDiagram_StartNode_text=Startnode
ActivityDiagram_StartNode_tooltip=Opret startnode
AbstractDiagram_FreeText_text=Fritekst
AbstractDiagram_FreeText_tooltip=Opret ny fritekst
ActivityDiagram_SyncBar_text=Synkroniseringslinje
ActivityDiagram_SyncBar_tooltip=Opret ny synkroniseringslinje
ActivityDiagram_DecisionNode_text=Beslutningsnode
ActivityDiagram_DecisionNode_tooltip=Opret beslutningsnode
ActivityDiagram_EndNode_text=Slutnode
ActivityDetailDiagram_prefix=Aktivitetsoplysning:
ActivityDiagram_EndNode_tooltip=Opret slutnode
ActivityDiagram_Activity_text=Aktivitet
ActivityDiagram_Activity_tooltip=Opret aktivitet
ActivityDiagram_Iteration_text=Gentagelse
ActivityDiagram_Iteration_tooltip=Opret gentagelse
ActivityDiagram_Phase_text=Fase
ActivityDiagram_Phase_tooltip=Opret fase
AbstractDiagram_TaskDescriptor_text=Opgavedeskriptor
AbstractDiagram_RoleDescriptor_text=Rolledeskriptor
WorkProductDependencyDiagram_prefix=Diagram for arbejdsproduktafh\u00e6ngighed:
AbstractDiagram_RoleDescriptor_tooltip=Opret rolledeskriptor
AbstractDiagram_TaskDescriptor_tooltip=Opret opgavedeskriptor
ActvitivityDiagram_DeliveryProcess_text=Leveringsproces
ActvitivityDiagram_CapabilityPattern_text=Funktionsm\u00f8nster
ActvitivityDiagram_Phase_tex=Fase
ActvitivityDiagram_Iteration_text=Gentagelse
ActvitivityDiagram_Activity_text=Aktivitet
AbstractDiagram_WorkProductDescriptor_text=Arbejdsproduktdeskriptor
AbstractDiagram_WorkProductDescriptor_tooltip=Opret arbejdsproduktdeskriptor

AbstractDiagramEditor_alignMenu_text=Just\u00e9r
AbstractDiagramEditor_refreshFromBaseActivity_text=Opfrisk fra basisaktivitet
AbstractDiagramEditor_formatTextBoxActivity_text=Format\u00e9r tekstboks...
AbstractDiagramEditor_hAlignAverageAction_text=Vandret til gennemsnit
AbstractDiagramEditor_hAlignFirstSelectedAction_text=Vandret til f\u00f8rste valgte
AbstractDiagramEditor_vAlignAverageAction_text=Lodret til gennemsnit
AbstractDiagramEditor_vAlignFirstSelectedAction_text=Lodret til f\u00f8rste valgte
AbstractDiagramEditor_Save_text=Gem
AbstractDiagramEditor_Save_message=Gemmer {0}
AbstractDiagramEditor_MoveNode_label=Flyt node
AbstractDiagramEditorrefreshfrombase=Opfrisk fra basis
AbstractDiagram_BendPoint_create=Opret b\u00f8jningspunkt

ActivityDiagram_openActivityDetailDiagram_text=\u00c5bn aktivitetsoplysningsdiagram
refreshAction_label=Opfrisk
refreshFromBaseCmd_label=Opfrisk fra basis
diagram_saveError=IUPD0001W: Diagram kan ikke gemmes

DeleteDiagram_text=Slet diagram
DeleteDiagram_prompt=Er du sikker p\u00e5, at du vil slette dette diagram?\n\u00c6ndringen er permanent og kan ikke fortrydes.
align_bend_point_text=Just\u00e9r b\u00f8jningspunkt
ConfigurationEditorInput_configeditor0=Konfigurationseditor
diagram_node_property_value_problem_msg=Fejl i nodens egenskabsv\u00e6rdi.
diagram_errorDialog_title=Fejl

ActivityDetailDiagramEditor_ResetDiagramLayout_text=Reset diagramlayout
errorDialog_title=Fejl
command_cannotEdit=IUPD0003E: Kan ikke redigere diagram

AbstractDiagramEditor_ParentEditorClose_title=Overordnet editor lukket
AbstractDiagramEditor_ParentEditorClose_text={0} er lukket. Vil du ogs\u00e5 lukke {1}?

#Below three strings moved from AuthoringUI resources.properties.
DiagramValidation_err_cannot_connect_text=IUPA0032W: Kan ikke oprette forbindelse
DiagramValidation_err_samepredandsuc_text=IUPA0033W: Kan ikke have det samme nedbrydningselement som forg\u00e6nger eller efterf\u00f8lger
DiagramValidation_err_cannot_delete_text=Kan ikke slette
deleteCommand_label=Slet
deleteLinkCommand_label=Slet forbindelse

ActivityDiagram_Milestone_text=Milep\u00e6l
ActivityDiagram_Milestone_tooltip=Opret milep\u00e6l
ActivityDiagram_Join_Node_text=Sammenk\u00e6dningsnode
ActivityDiagram_Join_Node_tooltip=Opret sammenk\u00e6dningsnode
ActivityDiagram_Merge_Node_text=Flettenode
ActivityDiagram_Merge_Node_tooltip=Opret flettenode
ActivityDiagram_Fork_Node_text=Forgreningsnode
ActivityDiagram_Fork_Node_tooltip=Opret forgreningsnode
ActivityDiagram_Partition_Node_text=Aktivitetsdeling
ActivityDiagram_Palette_flows_title=Flow
ActivityDiagram_Palette_nodes_titles=Noder
ActivityDiagram_Palette_flows_create_text=Oprettelsesv\u00e6rkt\u00f8j til flow
ActivityDiagram_Palette_nodes_group_text=Oprettelsesv\u00e6rkt\u00f8jsgruppe til noder
ActivityDiagram_Palette_control_flow_text=Kontrolflow
ActivityDiagram_Palette_control_flow_create_text=Opret kontrolflow
ActivityDiagram_Partition_Node_tooltip=Opret aktivitetsdeling

ActivityDiagram_New_Task_Descriptor=Ny opgavedeskriptor
ActivityDiagram_New_Milestone=Ny milep\u00e6l
WPDD_New_WorkProductDescriptor=Ny arbejdsproduktdeskriptor
ActivityDiagram_New_Activity=Ny aktivitet
ActivityDiagram_New_Phase=Ny fase
ActivityDiagram_New_Iteration=Ny gentagelse
Progress_Saving_message=Gemmer {0}
Warning_Saving_Diagram=IUPD0001W: Diagram kan ikke gemmes

ActivityDiagram_kind=Aktivitetsdiagram
ActivityDetail_Diagram_kind=Aktivitetsoplysningsdiagram
WorkProductDependency_Diagram_kind=Diagram for arbejdsproduktafh\u00e6ngighed
WPDD_Palette_control_flow_text=Arbejdsproduktafh\u00e6ngighed
WPDD_Palette_control_flow_create_text=Opret en arbejdsproduktafh\u00e6ngighed 
