# <copyright>
#
# Copyright (c) 2008-2014 See4sys, itemis and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
#
# Contributors:
#     See4sys - Initial API and implementation
#     itemis - Enhancements and maintenance
#
# </copyright>

# ====================================================================
# 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 %%%
# ====================================================================

pluginName=Sphinx Examples Hummingbird 1.0 Edit Plug-in (Incubation)
providerName=Eclipse Modeling Project

_UI_CreateChild_text = {0}
_UI_CreateChild_text1 = {1} | {0}
_UI_CreateChild_text2 = {1} | {0}
_UI_CreateChild_text3 = {1}
_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.

_UI_PropertyDescriptor_description = The {0} of the {1}

_UI_Component_type = Component
_UI_Application_type = Application
_UI_Connection_type = Connection
_UI_Interface_type = Interface
_UI_Parameter_type = Parameter
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_UI_Component_name_feature = Name
_UI_Component_outgoingConnections_feature = Outgoing Connections
_UI_Component_implementedInterfaces_feature = Implemented Interfaces
_UI_Component_parameters_feature = Parameters
_UI_Component_incomingConnections_feature = Incoming Connections
_UI_Application_name_feature = Name
_UI_Application_components_feature = Components
_UI_Application_interfaces_feature = Interfaces
_UI_Connection_targetInterface_feature = Target Interface
_UI_Connection_targetComponent_feature = Target Component
_UI_Connection_sourceComponent_feature = Source Component
_UI_Connection_name_feature = Name
_UI_Interface_name_feature = Name
_UI_Interface_implementingComponents_feature = Implementing Components
_UI_Parameter_name_feature = Name
_UI_Parameter_value_feature = Value
_UI_Unknown_feature = Unspecified

_UI_Component_providedInterfaces_feature = Provided Interfaces
_UI_Connection_requiredInterface_feature = Required Interface
_UI_Interface_providingComponents_feature = Providing Components
