# <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 v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.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
