# 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 Setup Git 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_Unknown_type = Object
_UI_Unknown_datatype= Value
_UI_Unknown_feature = Unspecified

_UI_GitCloneTask_type = Git Clone
_UI_GitCloneTask_location_feature = Location
_UI_GitCloneTask_remoteName_feature = Remote Name
_UI_GitCloneTask_remoteURI_feature = Remote URI
_UI_GitCloneTask_pushURI_feature = Push URI
_UI_GitCloneTask_userID_feature = User ID
_UI_GitCloneTask_checkoutBranch_feature = Checkout Branch

_UI_GitCloneTask_recursive_feature = Recursive
_UI_ConfigSection_type = Config Section
_UI_ConfigSubsection_type = Config Subsection
_UI_ConfigProperty_type = Config Property
_UI_GitCloneTask_configSections_feature = Config Sections
_UI_ConfigSection_subsections_feature = Subsections
_UI_ConfigSubsection_name_feature = Name
_UI_ConfigSubsection_properties_feature = Properties
_UI_ConfigProperty_key_feature = Key
_UI_ConfigProperty_value_feature = Value
