# Copyright (c) 2019 CEA LIST.
# 
#  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:
#  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation

pluginName = Papyrus-Model2Doc - Papyrus GMF DocumentStructureTemplate Integration Edit Support (Incubation)
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_PapyrusGMFDiagramView_type = Papyrus GMF Diagram View
_UI_Diagram_type = Diagram
_UI_Unknown_type = Object
_UI_Unknown_datatype= Value
_UI_PapyrusGMFDiagramView_diagramKindId_feature = Diagram Kind Id
_UI_PapyrusGMFDiagramView_diagramType_feature = Diagram Type
_UI_Unknown_feature = Unspecified
_UI_PapyrusGMFDiagramView_contextFilterRule_feature = Context Filter Rule
_UI_ContextFilterBehavior_SEMANTIC_CONTEXT_literal = SEMANTIC_CONTEXT
_UI_ContextFilterBehavior_GRAPHICAL_CONTEXT_literal = GRAPHICAL_CONTEXT
_UI_ContextFilterBehavior_BOTH_literal = BOTH
_UI_PapyrusGMFDiagramView_diagramImageMargin_feature = Diagram Image Margin
_UI_PapyrusGMFDiagramView_fileExtension_feature = File Extension
_UI_PapyrusGMFDiagramView_imageFormat_feature = Image Format
