# Copyright (c) 2014, 2015 Eike Stepper (Berlin, Germany) 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:
#    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_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_includeAllPlatforms_feature = Include All Platforms
_UI_Targlet_includeSources_feature = Include Sources
_UI_Targlet_includeAllRequirements_feature = Include All Requirements
_UI_Targlet_includeAllRequirements_description = Whether all transitive requirements must be satisfied for target platform resolution to succeed
_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
