# 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 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
