# 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 UML DocumentStructureTemplate 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_StereotypePartTemplate_type = Stereotype Part Template
_UI_MandatoryStereotypeWithEClassTemplate_type = Mandatory Stereotype With EClass Template
_UI_MandatoryStereotypeTemplate_type = Mandatory Stereotype Template
_UI_StereotypeTemplate_type = Stereotype Template
_UI_IUMLBodyPartTemplateTitle_type = IUML Body Part Template Title
_UI_StereotypePropertyReferencePartTemplate_type = Stereotype Property Reference Part Template
_UI_StereotypePropertyTemplate_type = Stereotype Property Template
_UI_StereotypePropertyReference_type = Stereotype Property Reference
_UI_CommentAsParagraph_type = Comment As Paragraph
_UI_Comment_type = Comment
_UI_StereotypePropertyColumn_type = Stereotype Property Column
_UI_MandatoryStereotypePropertyTemplate_type = Mandatory Stereotype Property Template
_UI_StereotypePropertyReferenceTableView_type = Stereotype Property Reference Table View
_UI_StereotypeListItemTemplate_type = Stereotype List Item Template
_UI_StereotypePropertyReferenceListItemTemplate_type = Stereotype Property Reference List Item Template
_UI_StereotypePropertyListItemTemplate_type = Stereotype Property List Item Template
_UI_StereotypePropertyAttributeListItemTemplate_type = Stereotype Property Attribute List Item Template
_UI_StereotypePropertyAttribute_type = Stereotype Property Attribute
_UI_Unknown_type = Object
_UI_Unknown_datatype= Value
_UI_StereotypeTemplate_stereotypeFilterRule_feature = Stereotype Filter Rule
_UI_StereotypeTemplate_stereotypeQualifiedName_feature = Stereotype Qualified Name
_UI_StereotypePropertyTemplate_propertyName_feature = Property Name
_UI_CommentAsParagraph_commentChoice_feature = Comment Choice
_UI_Unknown_feature = Unspecified
_UI_StereotypeFilterBehavior_STEREOTYPE_TYPE_OF_literal = STEREOTYPE_TYPE_OF
_UI_StereotypeFilterBehavior_STEREOTYPE_KIND_OF_literal = STEREOTYPE_KIND_OF
_UI_CommentChoice_FIRST_OWNED_COMMENT_literal = FIRST_OWNED_COMMENT
_UI_CommentChoice_ALL_OWNED_COMMENTS_literal = ALL_OWNED_COMMENTS
