# <copyright>
#------------------------------------------------------------------------------
# Copyright (c) 2000, 2008 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_CN.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 \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
