# <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_zh_TW.properties,v 1.2 2008/08/29 02:06:07 klow 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 = \u5728 {1} \u7279\u6027\u4e0b\u5efa\u7acb\u65b0\u7684 {0}
_UI_CreateChild_description = \u70ba\u6240\u9078 {2} \u7684 {1} \u7279\u6027\u5efa\u7acb {0} \u985e\u578b\u7684\u5b50\u9805\u3002
_UI_CreateSibling_description = \u5728\u5176\u6bcd\u9805\u7684 {1} \u7279\u6027\u4e0b\uff0c\u70ba\u6240\u9078\u7684 {2} \u5efa\u7acb {0} \u985e\u578b\u7684\u65b0\u540c\u5c64\u7d1a\u9805\u3002

_UI_PropertyDescriptor_description = {1} \u7684 {0}

_UI_Diagram_type = \u5716\u89e3
_UI_Link_type = \u93c8\u7d50
_UI_LinkedObject_type = \u93c8\u7d50\u7684\u7269\u4ef6
_UI_NamedNode_type = \u5177\u540d\u7684\u7bc0\u9ede
_UI_Node_type = \u7bc0\u9ede
_UI_ActivityDiagram_type = \u6d3b\u52d5\u5716
_UI_TypedNode_type = \u8f38\u5165\u7684\u7bc0\u9ede
_UI_WorkProductDependencyDiagram_type = \u5de5\u4f5c\u6210\u679c\u76f8\u4f9d\u95dc\u4fc2\u5716
_UI_WorkProductNode_type = \u5de5\u4f5c\u6210\u679c\u7bc0\u9ede
_UI_ActivityDetailDiagram_type = \u6d3b\u52d5\u660e\u7d30\u5716
_UI_NodeContainer_type = \u7bc0\u9ede\u5132\u5b58\u5668
_UI_RoleNode_type = \u89d2\u8272\u7bc0\u9ede
_UI_RoleTaskComposite_type = \u89d2\u8272\u4f5c\u696d\u7d44\u5408
_UI_TaskNode_type = \u4f5c\u696d\u7bc0\u9ede
_UI_WorkProductDescriptorNode_type = \u5de5\u4f5c\u6210\u679c\u63cf\u8ff0\u5b50\u7bc0\u9ede
_UI_WorkBreakdownElementNode_type = \u5de5\u4f5c\u5206\u89e3\u5143\u7d20\u7bc0\u9ede
_UI_WorkProductComposite_type = \u5de5\u4f5c\u6210\u679c\u7d44\u5408
_UI_Unknown_type = \u7269\u4ef6

_UI_Unknown_datatype= \u503c

_UI_Link_source_feature = \u4f86\u6e90
_UI_Link_target_feature = \u76ee\u6a19
_UI_Link_bendpoints_feature = \u5f4e\u66f2\u9ede
_UI_Link_sourceEndPoint_feature = \u4f86\u6e90\u7aef\u9ede
_UI_Link_targetEndPoint_feature = \u76ee\u6a19\u7aef\u9ede
_UI_LinkedObject_linkedElement_feature = \u93c8\u7d50\u7684\u5143\u7d20
_UI_LinkedObject_object_feature = \u7269\u4ef6
_UI_NamedNode_name_feature = \u540d\u7a31
_UI_Node_location_feature = \u4f4d\u7f6e
_UI_Node_width_feature = \u5bec\u5ea6
_UI_Node_height_feature = \u9ad8\u5ea6
_UI_Node_incomingConnections_feature = \u9001\u5165\u7684\u9023\u7dda
_UI_Node_outgoingConnections_feature = \u9001\u51fa\u7684\u9023\u7dda
_UI_Node_readOnly_feature = \u552f\u8b80
_UI_TypedNode_type_feature = \u985e\u578b
_UI_WorkProductNode_type_feature = \u985e\u578b
_UI_NodeContainer_nodes_feature = \u7bc0\u9ede
_UI_WorkProductComposite_type_feature = \u985e\u578b
_UI_Unknown_feature = \u672a\u6307\u5b9a

_UI_Link_name_feature = \u540d\u7a31
_UI_ActivityDetailDiagram_autoLayout_feature = \u81ea\u52d5\u7248\u9762\u914d\u7f6e
_UI_TaskNode_index_feature = \u7d22\u5f15
_UI_RoleTaskComposite_rowIndex_feature = \u5217\u7d22\u5f15
_UI_WorkProductDescriptorNode_state_feature = \u72c0\u614b
