# 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 Predicates 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_AndPredicate_operands_feature = Operands
_UI_AndPredicate_type = And Predicate
_UI_BuilderPredicate_builder_feature = Builder
_UI_BuilderPredicate_type = Builder Predicate
_UI_CommentPredicate_pattern_feature = Pattern
_UI_CommentPredicate_type = Comment Predicate
_UI_FilePredicate_contentPattern_feature = Content Pattern
_UI_FilePredicate_filePattern_feature = File Pattern
_UI_FilePredicate_type = File Predicate
_UI_LocationPredicate_pattern_feature = Pattern
_UI_LocationPredicate_type = Location Predicate
_UI_NamePredicate_pattern_feature = Pattern
_UI_NamePredicate_type = Name Predicate
_UI_NaturePredicate_nature_feature = Nature
_UI_NaturePredicate_type = Nature Predicate
_UI_NotPredicate_operand_feature = Operand
_UI_NotPredicate_type = Not Predicate
_UI_OrPredicate_operands_feature = Operands
_UI_OrPredicate_type = Or Predicate
_UI_Predicate_type = Predicate
_UI_RepositoryPredicate_project_feature = Project
_UI_RepositoryPredicate_type = Repository Predicate
_UI_Unknown_datatype= Value
_UI_Unknown_feature = Unspecified
_UI_Unknown_type = Object
_UI_WorkspaceRootProvider_type = Workspace Root Provider
_UI_NamePredicate_pattern_description = A regular expression used to match the name of the resource
_UI_CommentPredicate_pattern_description = A reguar expression used to match the comment of the resource's project
_UI_LocationPredicate_pattern_description = A regular expression used to match the location of the resource
_UI_RepositoryPredicate_project_description = A project used to determine whether a resource is in the same repository as that project
_UI_NaturePredicate_nature_description = A nature ID used to determine if a resource's project has that nature
_UI_BuilderPredicate_builder_description = A builder ID used to determine if a resource's project has that builder
_UI_FilePredicate_filePattern_description = An Ant-style file pattern (*, **, ?) used to match paths of the resource's children
_UI_FilePredicate_contentPattern_description = A regular expression used to match the contents of at least one of files filtered by the file pattern
