# <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.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 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
