# <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.properties,v 1.2 2008/08/29 01:40:36 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 \u56fe\u7f16\u8f91\u652f\u6301
providerName=Eclipse.org

_UI_CreateChild_text = {0}
_UI_CreateChild_text2 = {1} {0}
_UI_CreateChild_text3 = {1}
_UI_CreateChild_tooltip = \u5728 {1} \u529f\u80fd\u90e8\u4ef6\u4e0b\u521b\u5efa\u65b0\u7684 {0}
_UI_CreateChild_description = \u4e3a\u9009\u62e9\u7684 {2} \u7684 {1} \u529f\u80fd\u90e8\u4ef6\u521b\u5efa {0} \u7c7b\u578b\u7684\u65b0\u5b50\u4ee3\u3002
_UI_CreateSibling_description = \u5728\u9009\u5b9a\u7684 {2} \u7236\u4ee3\u7684 {1} \u529f\u80fd\u90e8\u4ef6\u4e0b\uff0c\u4e3a {2} \u521b\u5efa {0} \u7c7b\u578b\u7684\u65b0\u540c\u4ee3\u3002

_UI_PropertyDescriptor_description = {1} \u7684 {0}

_UI_Diagram_type = \u56fe
_UI_Link_type = \u94fe\u63a5
_UI_LinkedObject_type = \u94fe\u63a5\u7684\u5bf9\u8c61
_UI_NamedNode_type = \u547d\u540d\u7684\u8282\u70b9
_UI_Node_type = \u8282\u70b9
_UI_ActivityDiagram_type = \u6d3b\u52a8\u56fe
_UI_TypedNode_type = \u8f93\u5165\u7684\u8282\u70b9
_UI_WorkProductDependencyDiagram_type = \u5de5\u4f5c\u4ea7\u54c1\u4f9d\u8d56\u5173\u7cfb\u56fe
_UI_WorkProductNode_type = \u5de5\u4f5c\u4ea7\u54c1\u8282\u70b9
_UI_ActivityDetailDiagram_type = \u6d3b\u52a8\u8be6\u7ec6\u4fe1\u606f\u56fe
_UI_NodeContainer_type = \u8282\u70b9\u5bb9\u5668
_UI_RoleNode_type = \u89d2\u8272\u8282\u70b9
_UI_RoleTaskComposite_type = \u89d2\u8272\u4efb\u52a1\u7ec4\u5408\u4f53
_UI_TaskNode_type = \u4efb\u52a1\u8282\u70b9
_UI_WorkProductDescriptorNode_type = \u5de5\u4f5c\u4ea7\u54c1\u63cf\u8ff0\u7b26\u8282\u70b9
_UI_WorkBreakdownElementNode_type = \u5de5\u4f5c\u5206\u89e3\u5143\u7d20\u8282\u70b9
_UI_WorkProductComposite_type = \u5de5\u4f5c\u4ea7\u54c1\u7ec4\u5408\u4f53
_UI_Unknown_type = \u5bf9\u8c61

_UI_Unknown_datatype= \u503c

_UI_Link_source_feature = \u6e90
_UI_Link_target_feature = \u76ee\u6807
_UI_Link_bendpoints_feature = \u5f2f\u66f2\u70b9
_UI_Link_sourceEndPoint_feature = \u6e90\u7ec8\u70b9
_UI_Link_targetEndPoint_feature = \u76ee\u6807\u7ec8\u70b9
_UI_LinkedObject_linkedElement_feature = \u94fe\u63a5\u5143\u7d20
_UI_LinkedObject_object_feature = \u5bf9\u8c61
_UI_NamedNode_name_feature = \u540d\u79f0
_UI_Node_location_feature = \u4f4d\u7f6e
_UI_Node_width_feature = \u5bbd\u5ea6
_UI_Node_height_feature = \u9ad8\u5ea6
_UI_Node_incomingConnections_feature = \u5165\u7ad9\u8fde\u63a5
_UI_Node_outgoingConnections_feature = \u51fa\u7ad9\u8fde\u63a5
_UI_Node_readOnly_feature = \u53ea\u8bfb
_UI_TypedNode_type_feature = \u7c7b\u578b
_UI_WorkProductNode_type_feature = \u7c7b\u578b
_UI_NodeContainer_nodes_feature = \u8282\u70b9
_UI_WorkProductComposite_type_feature = \u7c7b\u578b
_UI_Unknown_feature = \u672a\u6307\u5b9a

_UI_Link_name_feature = \u540d\u79f0
_UI_ActivityDetailDiagram_autoLayout_feature = \u81ea\u52a8\u5e03\u5c40
_UI_TaskNode_index_feature = \u7d22\u5f15
_UI_RoleTaskComposite_rowIndex_feature = \u884c\u7d22\u5f15
_UI_WorkProductDescriptorNode_state_feature = \u72b6\u6001
