# Copyright (c) 2014, 2015 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 Setup Launching 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_LaunchTask_type = Launch
_UI_LaunchTask_launcher_feature = Launch Configuration
_UI_LaunchTask_launcher_description = The name of a launch configuration or the workspace absolute path of a launch configuration file
_UI_LaunchTask_launcher_description = The name of a launch configuration or the workspace absolute path of a launch configuration file
_UI_Unknown_feature = Unspecified


_UI_LaunchTask_runEveryStartup_feature = Run Every Startup
_UI_LaunchTask_runEveryStartup_description = Always run this launcher if triggered by STARTUP
