# 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:
#  Yupanqui Munoz (CEA LIST) yupanqui.munozjulho@cea.fr - Initial API and implementation
#  Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation

pluginName = Papyrus-Model2Doc - DocumentView 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_Document_type = Document
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_UI_Document_name_feature = Name
_UI_Document_documentKind_feature = Document Kind
_UI_Document_doi_feature = Doi
_UI_Document_templateStyleFileURI_feature = Template Style File URI
_UI_Document_owner_feature = Owner
_UI_Document_context_feature = Context
_UI_Document_description_feature = Description
_UI_Unknown_feature = Unspecified

_UI_Document_DOI_feature = DOI
_UI_Document_generatedDocumentFileURI_feature = Generated Document File URI
_UI_Document_documentRepresentationKindId_feature = Document Representation Kind Id
