# Copyright (c) 2014-2016 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 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_Unknown_type = Object
_UI_Unknown_datatype= Value
_UI_Unknown_feature = Unspecified

_UI_TargletTask_type = Targlets
_UI_TargletTask_targlets_feature = Targlets
_UI_TargletTask_targletURIs_feature = Targlet URIs
_UI_TargletTask_operatingSystem_feature = Operating System
_UI_TargletTask_windowingSystem_feature = Windowing System
_UI_TargletTask_architecture_feature = Architecture
_UI_TargletTask_locale_feature = Locale
_UI_TargletTask_programArguments_feature = Program Arguments
_UI_TargletTask_vMArguments_feature = VM Arguments
_UI_TargletTask_implicitDependencies_feature = Implicit Dependencies

_UI_ImplicitDependency_type = Implicit Dependency
_UI_ImplicitDependency_iD_feature = ID
_UI_ImplicitDependency_version_feature = Version
_UI_TargletTask_targetName_feature = Target Name
_UI_TargletTask_activateTarget_feature = Activate Target
