# <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>

pluginName=Sphinx Examples Hummingbird 2.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_Identifiable_type = Identifiable
_UI_Description_type = Description
_UI_Platform_type = Platform
_UI_ComponentType_type = Component Type
_UI_Port_type = Port
_UI_Interface_type = Interface
_UI_Parameter_type = Parameter
_UI_Application_type = Application
_UI_Component_type = Component
_UI_Connection_type = Connection
_UI_ParameterValue_type = Parameter Value
_UI_ParameterExpression_type = Parameter Expression
_UI_Formula_type = Formula
_UI_AnyType_type = Any Type
_UI_ProcessingInstruction_type = Processing Instruction
_UI_SimpleAnyType_type = Simple Any Type
_UI_XMLTypeDocumentRoot_type = Document Root
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_UI_Identifiable_name_feature = Name
_UI_Identifiable_description_feature = Description
_UI_Description_mixed_feature = Mixed
_UI_Platform_componentTypes_feature = Component Types
_UI_Platform_interfaces_feature = Interfaces
_UI_Platform_mixed_feature = Mixed
_UI_Platform_xSISchemaLocation_feature = XSI Schema Location
_UI_ComponentType_providedInterfaces_feature = Provided Interfaces
_UI_ComponentType_ports_feature = Ports
_UI_ComponentType_parameters_feature = Parameters
_UI_Port_owner_feature = Owner
_UI_Port_requiredInterface_feature = Required Interface
_UI_Port_minProviderCount_feature = Min Provider Count
_UI_Port_maxProviderCount_feature = Max Provider Count
_UI_Interface_providingComponentTypes_feature = Providing Component Types
_UI_Interface_requiringPorts_feature = Requiring Ports
_UI_Parameter_dataType_feature = Data Type
_UI_Parameter_optional_feature = Optional
_UI_Application_components_feature = Components
_UI_Application_mixed_feature = Mixed
_UI_Application_xSISchemaLocation_feature = XSI Schema Location
_UI_Application_mixedOuterContent_feature = Mixed Outer Content
_UI_Component_type_feature = Type
_UI_Component_outgoingConnections_feature = Outgoing Connections
_UI_Component_incomingConnections_feature = Incoming Connections
_UI_Component_parameterValues_feature = Parameter Values
_UI_Component_parameterExpressions_feature = Parameter Expressions
_UI_Connection_sourceComponent_feature = Source Component
_UI_Connection_sourcePort_feature = Source Port
_UI_Connection_targetComponent_feature = Target Component
_UI_ParameterValue_type_feature = Type
_UI_ParameterValue_value_feature = Value
_UI_ParameterExpression_mixed_feature = Mixed
_UI_ParameterExpression_expressions_feature = Expressions
_UI_Formula_value_feature = Value
_UI_AnyType_mixed_feature = Mixed
_UI_AnyType_any_feature = Any
_UI_AnyType_anyAttribute_feature = Any Attribute
_UI_ProcessingInstruction_data_feature = Data
_UI_ProcessingInstruction_target_feature = Target
_UI_SimpleAnyType_rawValue_feature = Raw Value
_UI_SimpleAnyType_value_feature = Value
_UI_SimpleAnyType_instanceType_feature = Instance Type
_UI_XMLTypeDocumentRoot_mixed_feature = Mixed
_UI_XMLTypeDocumentRoot_xMLNSPrefixMap_feature = XMLNS Prefix Map
_UI_XMLTypeDocumentRoot_xSISchemaLocation_feature = XSI Schema Location
_UI_XMLTypeDocumentRoot_cDATA_feature = CDATA
_UI_XMLTypeDocumentRoot_comment_feature = Comment
_UI_XMLTypeDocumentRoot_processingInstruction_feature = Processing Instruction
_UI_XMLTypeDocumentRoot_text_feature = Text
_UI_Unknown_feature = Unspecified

_UI_Translation_type = Translation
_UI_Description_language_feature = Language
_UI_Description_translations_feature = Translations
_UI_Translation_language_feature = Language
_UI_Translation_resourceURI_feature = Resource URI
_UI_LanguageCultureName_enUS_literal = en-US
_UI_LanguageCultureName_deDE_literal = de-DE
_UI_LanguageCultureName_frFR_literal = fr-FR
