# 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 - DocumentStructure 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_TextDocument_type = Text Document
_UI_TextDocumentPart_type = Text Document Part
_UI_Document_type = Document
_UI_Body_type = Body
_UI_BodyPart_type = Body Part
_UI_DataSource_type = Data Source
_UI_Paragraph_type = Paragraph
_UI_ComposedBodyPart_type = Composed Body Part
_UI_Title_type = Title
_UI_Image_type = Image
_UI_LeafBodyPart_type = Leaf Body Part
_UI_EMFDataSource_type = EMF Data Source
_UI_TableOfContents_type = Table Of Contents
_UI_ExtendedBasicTable_type = Extended Basic Table
_UI_ExtendedTextCell_type = Extended Text Cell
_UI_ExtendedBasicList_type = Extended Basic List
_UI_ExtendedTextListItem_type = Extended Text List Item
_UI_Unknown_type = Object
_UI_Unknown_datatype= Value
_UI_TextDocument_mainTitle_feature = Main Title
_UI_TextDocument_textDocumentPart_feature = Text Document Part
_UI_Document_documentGeneratorConfiguration_feature = Document Generator Configuration
_UI_Body_bodyPart_feature = Body Part
_UI_BodyPart_dataSource_feature = Data Source
_UI_Paragraph_text_feature = Text
_UI_ComposedBodyPart_subBodyPart_feature = Sub Body Part
_UI_Title_title_feature = Title
_UI_Image_imagePath_feature = Image Path
_UI_Image_caption_feature = Caption
_UI_EMFDataSource_eobject_feature = Eobject
_UI_EMFDataSource_feature_feature = Feature
_UI_TableOfContents_tocTitle_feature = Toc Title
_UI_ExtendedTextCell_dataSource_feature = Data Source
_UI_ExtendedTextListItem_datasource_feature = Datasource
_UI_Unknown_feature = Unspecified
_UI_Document_author_feature = Author
_UI_Version_type = Version
_UI_StringVersion_type = String Version
_UI_Document_version_feature = Version
_UI_StringVersion_version_feature = Version
_UI_InsertedFile_type = Inserted File
_UI_TableOfFigures_type = Table Of Figures
_UI_TableOfFigures_tofTitle_feature = Tof Title
_UI_EmptyLine_type = Empty Line
