# <copyright>
#------------------------------------------------------------------------------
# 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
#------------------------------------------------------------------------------
# </copyright>
#
# $Id: plugin_da.properties,v 1.1 2008/08/24 23:52:03 jtham Exp $

# ====================================================================
# To code developer:
#   Do NOT change the properties between this line and the
#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
#   Make a new property name, append to the end of the file and change
#   the code to use the new property.
# ====================================================================

# ====================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# ====================================================================
# NLS_MESSAGEFORMAT_VAR

pluginName=EPF Diagram Edit Support
providerName=Eclipse.org

_UI_CreateChild_text = {0}
_UI_CreateChild_text2 = {1} {0}
_UI_CreateChild_text3 = {1}
_UI_CreateChild_tooltip = Opret ny {0} under funktionen {1}
_UI_CreateChild_description = Opret en ny underordnet type {0} for funktionen {1} for den valgte {2}.
_UI_CreateSibling_description = Opret en ny sideordnet af typen {0} for den valgte {2}, under funktionen {1} for deres overordnede.

_UI_PropertyDescriptor_description = {0} af {1}

_UI_Diagram_type = Diagram
_UI_Link_type = Link
_UI_LinkedObject_type = Linket objekt
_UI_NamedNode_type = Navngiven node
_UI_Node_type = Node
_UI_ActivityDiagram_type = Aktivitetsdiagram
_UI_TypedNode_type = TYPE-node
_UI_WorkProductDependencyDiagram_type = Diagram for arbejdsproduktafh\u00e6ngighed
_UI_WorkProductNode_type = Arbejdsproduktnode
_UI_ActivityDetailDiagram_type = Aktivitetsoplysningsdiagram
_UI_NodeContainer_type = Nodeopbevaringssted
_UI_RoleNode_type = Rollenode
_UI_RoleTaskComposite_type = Sammensat rolleopgave
_UI_TaskNode_type = Opgavenode
_UI_WorkProductDescriptorNode_type = Arbejdsproduktdeskriptornode
_UI_WorkBreakdownElementNode_type = Arbejdsnedbrydningselementnode
_UI_WorkProductComposite_type = Sammensat arbejdsprodukt
_UI_Unknown_type = Objekt

_UI_Unknown_datatype= V\u00e6rdi

_UI_Link_source_feature = Kilde
_UI_Link_target_feature = M\u00e5l
_UI_Link_bendpoints_feature = B\u00f8jningspunkter
_UI_Link_sourceEndPoint_feature = Kildeafslutningspunkt
_UI_Link_targetEndPoint_feature = M\u00e5lafslutningspunkt
_UI_LinkedObject_linkedElement_feature = Linket element
_UI_LinkedObject_object_feature = Objekt
_UI_NamedNode_name_feature = Navn
_UI_Node_location_feature = Placering
_UI_Node_width_feature = Bredde
_UI_Node_height_feature = H\u00f8jde
_UI_Node_incomingConnections_feature = Indg\u00e5ende forbindelser
_UI_Node_outgoingConnections_feature = Udg\u00e5ende forbindelser
_UI_Node_readOnly_feature = Skrivebeskyttet
_UI_TypedNode_type_feature = Type
_UI_WorkProductNode_type_feature = Type
_UI_NodeContainer_nodes_feature = Noder
_UI_WorkProductComposite_type_feature = Type
_UI_Unknown_feature = Uspecificeret

_UI_Link_name_feature = Navn
_UI_ActivityDetailDiagram_autoLayout_feature = Automatisk layout
_UI_TaskNode_index_feature = Indeks
_UI_RoleTaskComposite_rowIndex_feature = R\u00e6kkeindeks
_UI_WorkProductDescriptorNode_state_feature = Stat
