# Copyright (c) 2014-2017 Eike Stepper (Loehne, Germany) 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
# http://www.eclipse.org/legal/epl-v20.html
#
# Contributors:
#    Eike Stepper - initial API and implementation

pluginName = Oomph Targlets Edit Support
providerName = Eclipse Oomph Project

_UI_CreateChild_text = {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_CSpecGenerator_type = Buckminster CSpec Generator
_UI_CSpexGenerator_type = Buckminster CSpex Generator
_UI_CategoryGenerator_type = Category Generator
_UI_ComponentDefGenerator_type = Component Definition Generator
_UI_ComponentDefinition_iD_feature = ID
_UI_ComponentDefinition_type = Component Definition
_UI_ComponentDefinition_version_feature = Version
_UI_ComponentExtGenerator_type = Component Extension Generator
_UI_ComponentExtension_requirements_feature = Requirements
_UI_ComponentExtension_type = Component Extension
_UI_DropinLocation_recursive_feature = Recursive
_UI_DropinLocation_rootFolder_feature = Root Folder
_UI_DropinLocation_type = Dropin Location
_UI_FeatureGenerator_type = Feature Generator
_UI_IUGenerator_type = IU Generator
_UI_InstallableUnitGenerator_type = Installable Unit Generator
_UI_PluginGenerator_type = Plugin Generator
_UI_ProductGenerator_type = Product Generator
_UI_ProjectNameGenerator_type = Project Name Generator
_UI_SiteGenerator_type = Site Generator
_UI_TargletContainer_iD_feature = ID
_UI_TargletContainer_targlets_feature = Targlets
_UI_TargletContainer_type = Targlet Container
_UI_Targlet_activeRepositories_feature = Active Repositories
_UI_Targlet_activeRepositoryListName_feature = Active Repository List Name
_UI_Targlet_activeRepositoryList_feature = Active Repository List
_UI_Targlet_dropinLocations_feature = Dropin Locations
_UI_Targlet_includeAllPlatforms_feature = Include All Platforms
_UI_Targlet_includeAllRequirements_description = Whether all transitive requirements must be satisfied for target platform resolution to succeed
_UI_Targlet_includeAllRequirements_feature = Include All Requirements
_UI_Targlet_includeSources_feature = Include Sources
_UI_Targlet_installableUnitGenerators_feature = Installable Unit Generators
_UI_Targlet_name_feature = Name
_UI_Targlet_repositoryLists_feature = Repository Lists
_UI_Targlet_requirements_feature = Requirements
_UI_Targlet_sourceLocators_feature = Source Locators
_UI_Targlet_type = Targlet
_UI_Unknown_datatype= Value
_UI_Unknown_feature = Unspecified
_UI_Unknown_type = Object
_UI_Targlet_includeBinaryEquivalents_feature = Include Binary Equivalents
_UI_Targlet_profileProperties_feature = Profile Properties
_UI_Targlet_profileProperties_description = A comma-separated list of key=value pairs representing profile properties
