# Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
# 
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
# 
# Contributors:
# Johannes Faltermeier - initial API and implementation

pluginName = Section Edit Support
providerName = Eclipse Modeling 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_Section_type = Section
_UI_SectionItem_type = Item
_UI_SectionNode_type = Node
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_UI_Section_root_feature = Root
_UI_SectionNode_childItems_feature = Child Items
_UI_Unknown_feature = Unspecified

_UI_SectionNode_collapsed_feature = Collapsed
_UI_SectionItem_parentCollapsed_feature = Parent Collapsed
_UI_SectionedArea_type = Sectioned Area
_UI_SectionedArea_root_feature = Root
_UI_Section_childItems_feature = Child Items
_UI_Section_collapsed_feature = Collapsed
