# Copyright (c) 2014 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 Project Set 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_GitCloneTask_type = Git Clone
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_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_Unknown_feature = Unspecified

_UI_ProjectSetImportTask_type = Project Set Import
_UI_ProjectSetImportTask_uRL_feature = URL
