# <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_ko.properties,v 1.1 2008/08/25 00:52:05 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 \ub2e4\uc774\uc5b4\uadf8\ub7a8 \ud3b8\uc9d1 \uc9c0\uc6d0
providerName=Eclipse.org

_UI_CreateChild_text = {0}
_UI_CreateChild_text2 = {1} {0}
_UI_CreateChild_text3 = {1}
_UI_CreateChild_tooltip = {1} \uae30\ub2a5 \uc544\ub798\uc5d0 \uc0c8 {0} \uc791\uc131
_UI_CreateChild_description = \uc120\ud0dd\ub41c {2}\uc758 {1} \uae30\ub2a5\uc5d0 \ub300\ud55c {0} \uc720\ud615\uc758 \uc0c8 \ud558\uc704\ub97c \uc791\uc131\ud558\uc2ed\uc2dc\uc624.
_UI_CreateSibling_description = \uc120\ud0dd\ub41c {2}\uc5d0 \ub300\ud55c {0} \uc720\ud615\uc758 \uc0c8 \ub3d9\uc704\ub97c \uc0c1\uc704\uc758 {1} \uae30\ub2a5 \uc544\ub798\uc5d0 \uc791\uc131\ud558\uc2ed\uc2dc\uc624.

_UI_PropertyDescriptor_description = {1}\uc758 {0}

_UI_Diagram_type = \ub2e4\uc774\uc5b4\uadf8\ub7a8
_UI_Link_type = \ub9c1\ud06c
_UI_LinkedObject_type = \ub9c1\ud06c\ub41c \uc624\ube0c\uc81d\ud2b8
_UI_NamedNode_type = \uc774\ub984 \uc9c0\uc815\ub41c \ub178\ub4dc
_UI_Node_type = \ub178\ub4dc
_UI_ActivityDiagram_type = \ud65c\ub3d9 \ub2e4\uc774\uc5b4\uadf8\ub7a8
_UI_TypedNode_type = \uc720\ud615 \uc9c0\uc815\ub41c \ub178\ub4dc
_UI_WorkProductDependencyDiagram_type = \uc911\uac04 \uc0b0\ucd9c\ubb3c \uc885\uc18d\uc131 \ub2e4\uc774\uc5b4\uadf8\ub7a8
_UI_WorkProductNode_type = \uc911\uac04 \uc0b0\ucd9c\ubb3c \ub178\ub4dc
_UI_ActivityDetailDiagram_type = \ud65c\ub3d9 \uc138\ubd80\uc0ac\ud56d \ub2e4\uc774\uc5b4\uadf8\ub7a8
_UI_NodeContainer_type = \ub178\ub4dc \ucee8\ud14c\uc774\ub108
_UI_RoleNode_type = \uc5ed\ud560 \ub178\ub4dc
_UI_RoleTaskComposite_type = \uc5ed\ud560 \ud0c0\uc2a4\ud06c \ucef4\ud3ec\uc9c0\ud2b8
_UI_TaskNode_type = \ud0c0\uc2a4\ud06c \ub178\ub4dc
_UI_WorkProductDescriptorNode_type = \uc911\uac04 \uc0b0\ucd9c\ubb3c \uc124\uba85\uc790 \ub178\ub4dc
_UI_WorkBreakdownElementNode_type = \uc791\uc5c5\ubd84\ub958 \uc694\uc18c \ub178\ub4dc
_UI_WorkProductComposite_type = \uc911\uac04 \uc0b0\ucd9c\ubb3c \ucef4\ud3ec\uc9c0\ud2b8
_UI_Unknown_type = \uc624\ube0c\uc81d\ud2b8

_UI_Unknown_datatype= \uac12

_UI_Link_source_feature = \uc18c\uc2a4
_UI_Link_target_feature = \ub300\uc0c1
_UI_Link_bendpoints_feature = \uad74\uace1\uc810
_UI_Link_sourceEndPoint_feature = \uc18c\uc2a4 \uc5d4\ub4dc\ud3ec\uc778\ud2b8
_UI_Link_targetEndPoint_feature = \ub300\uc0c1 \uc5d4\ub4dc\ud3ec\uc778\ud2b8
_UI_LinkedObject_linkedElement_feature = \ub9c1\ud06c\ub41c \uc694\uc18c
_UI_LinkedObject_object_feature = \uc624\ube0c\uc81d\ud2b8
_UI_NamedNode_name_feature = \uc774\ub984
_UI_Node_location_feature = \uc704\uce58
_UI_Node_width_feature = \ub108\ube44
_UI_Node_height_feature = \ub192\uc774
_UI_Node_incomingConnections_feature = \uc785\ub825 \uc5f0\uacb0
_UI_Node_outgoingConnections_feature = \ucd9c\ub825 \uc5f0\uacb0
_UI_Node_readOnly_feature = \uc77d\uae30 \uc804\uc6a9
_UI_TypedNode_type_feature = \uc720\ud615
_UI_WorkProductNode_type_feature = \uc720\ud615
_UI_NodeContainer_nodes_feature = \ub178\ub4dc
_UI_WorkProductComposite_type_feature = \uc720\ud615
_UI_Unknown_feature = \uc9c0\uc815\ub418\uc9c0 \uc54a\uc74c

_UI_Link_name_feature = \uc774\ub984
_UI_ActivityDetailDiagram_autoLayout_feature = \uc790\ub3d9 \ub808\uc774\uc544\uc6c3
_UI_TaskNode_index_feature = \uc0c9\uc778
_UI_RoleTaskComposite_rowIndex_feature = \ud589 \uc0c9\uc778
_UI_WorkProductDescriptorNode_state_feature = \uc0c1\ud0dc
