# <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_ja.properties,v 1.2 2008/08/29 00:37:22 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 = {1} \u6a5f\u80fd\u306e\u4e0b\u306b\u65b0\u3057\u3044 {0} \u3092\u751f\u6210\u3059\u308b
_UI_CreateChild_description = \u9078\u629e\u3057\u305f {2} \u306e {1} \u6a5f\u80fd\u306b\u5bfe\u3057\u3066\u30bf\u30a4\u30d7\u304c {0} \u306e\u65b0\u3057\u3044\u5b50\u3092\u751f\u6210\u3057\u307e\u3059\u3002
_UI_CreateSibling_description = \u9078\u629e\u3057\u305f {2} \u306b\u5bfe\u3057\u3001\u89aa\u306e {1} \u6a5f\u80fd\u306e\u4e0b\u306b\u3001\u30bf\u30a4\u30d7\u304c {0} \u306e\u65b0\u3057\u3044\u5144\u5f1f\u3092\u751f\u6210\u3057\u307e\u3059\u3002

_UI_PropertyDescriptor_description = {1} \u306e {0}

_UI_Diagram_type = \u30c0\u30a4\u30a2\u30b0\u30e9\u30e0
_UI_Link_type = \u30ea\u30f3\u30af
_UI_LinkedObject_type = \u30ea\u30f3\u30af\u3057\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8
_UI_NamedNode_type = \u540d\u524d\u4ed8\u304d\u30ce\u30fc\u30c9
_UI_Node_type = \u30ce\u30fc\u30c9
_UI_ActivityDiagram_type = \u30a2\u30af\u30c6\u30a3\u30d3\u30c6\u30a3\u30fc\u56f3
_UI_TypedNode_type = \u578b\u4ed8\u304d\u30ce\u30fc\u30c9
_UI_WorkProductDependencyDiagram_type = \u30ef\u30fc\u30af\u30fb\u30d7\u30ed\u30c0\u30af\u30c8\u4f9d\u5b58\u95a2\u4fc2\u56f3
_UI_WorkProductNode_type = \u30ef\u30fc\u30af\u30fb\u30d7\u30ed\u30c0\u30af\u30c8\u30fb\u30ce\u30fc\u30c9
_UI_ActivityDetailDiagram_type = \u30a2\u30af\u30c6\u30a3\u30d3\u30c6\u30a3\u30fc\u8a73\u7d30\u56f3
_UI_NodeContainer_type = \u30ce\u30fc\u30c9\u30fb\u30b3\u30f3\u30c6\u30ca\u30fc
_UI_RoleNode_type = \u30ed\u30fc\u30eb\u30fb\u30ce\u30fc\u30c9
_UI_RoleTaskComposite_type = \u30ed\u30fc\u30eb\u30fb\u30bf\u30b9\u30af\u30fb\u30b3\u30f3\u30dd\u30b8\u30c3\u30c8
_UI_TaskNode_type = \u30bf\u30b9\u30af\u30fb\u30ce\u30fc\u30c9
_UI_WorkProductDescriptorNode_type = \u30ef\u30fc\u30af\u30fb\u30d7\u30ed\u30c0\u30af\u30c8\u8a18\u8ff0\u5b50\u30ce\u30fc\u30c9
_UI_WorkBreakdownElementNode_type = \u30ef\u30fc\u30af\u30fb\u30d6\u30ec\u30fc\u30af\u30c0\u30a6\u30f3\u30fb\u30a8\u30ec\u30e1\u30f3\u30c8\u30fb\u30ce\u30fc\u30c9
_UI_WorkProductComposite_type = \u30ef\u30fc\u30af\u30fb\u30d7\u30ed\u30c0\u30af\u30c8\u30fb\u30b3\u30f3\u30dd\u30b8\u30c3\u30c8
_UI_Unknown_type = \u30aa\u30d6\u30b8\u30a7\u30af\u30c8

_UI_Unknown_datatype= \u5024

_UI_Link_source_feature = \u30bd\u30fc\u30b9
_UI_Link_target_feature = \u30bf\u30fc\u30b2\u30c3\u30c8
_UI_Link_bendpoints_feature = \u66f2\u304c\u308a\u70b9
_UI_Link_sourceEndPoint_feature = \u30bd\u30fc\u30b9\u306e\u7d42\u4e86\u30dd\u30a4\u30f3\u30c8
_UI_Link_targetEndPoint_feature = \u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u7d42\u4e86\u30dd\u30a4\u30f3\u30c8
_UI_LinkedObject_linkedElement_feature = \u30ea\u30f3\u30af\u3057\u305f\u8981\u7d20
_UI_LinkedObject_object_feature = \u30aa\u30d6\u30b8\u30a7\u30af\u30c8
_UI_NamedNode_name_feature = \u540d\u524d
_UI_Node_location_feature = \u5834\u6240
_UI_Node_width_feature = \u5e45
_UI_Node_height_feature = \u9ad8\u3055
_UI_Node_incomingConnections_feature = \u7740\u4fe1\u63a5\u7d9a
_UI_Node_outgoingConnections_feature = \u767a\u4fe1\u63a5\u7d9a
_UI_Node_readOnly_feature = \u8aad\u307f\u53d6\u308a\u5c02\u7528
_UI_TypedNode_type_feature = \u30bf\u30a4\u30d7
_UI_WorkProductNode_type_feature = \u30bf\u30a4\u30d7
_UI_NodeContainer_nodes_feature = \u30ce\u30fc\u30c9
_UI_WorkProductComposite_type_feature = \u30bf\u30a4\u30d7
_UI_Unknown_feature = \u672a\u6307\u5b9a

_UI_Link_name_feature = \u540d\u524d
_UI_ActivityDetailDiagram_autoLayout_feature = \u81ea\u52d5\u30ec\u30a4\u30a2\u30a6\u30c8
_UI_TaskNode_index_feature = \u7d22\u5f15
_UI_RoleTaskComposite_rowIndex_feature = \u884c\u306e\u7d22\u5f15
_UI_WorkProductDescriptorNode_state_feature = \u72b6\u614b
