###############################################################################
#  Copyright (c) 2017 CEA LIST.
#
#  All rights reserved. This program and the accompanying materials
#  are made available under the terms of the Eclipse Public License v1.0
#  which accompanies this distribution, and is available at
#  http://www.eclipse.org/legal/epl-v10.html
#
#  Contributors:
#  		CEA LIST - Initial API and implementation
###############################################################################
# Copyright (c) 2013 CEA LIST.
# 
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
# 
# Contributors:
#   CEA LIST - Initial API and implementation
# 

pluginName = Papyrus CDO Model Repository Problems Model Edit Support (Incubation)
providerName = Eclipse Modeling Project

_UI_problem_type = Papyrus Problem

_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_EProblem_type = EProblem
_UI_EProblemsContainer_type = EProblems Container
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_UI_EProblem_severity_feature = Severity
_UI_EProblem_message_feature = Message
_UI_EProblem_source_feature = Source
_UI_EProblem_code_feature = Code
_UI_EProblem_element_feature = Element
_UI_EProblem_related_feature = Related
_UI_EProblem_container_feature = Container
_UI_EProblemsContainer_problems_feature = Problems
_UI_EProblemsContainer_subjects_feature = Subjects
_UI_EProblemsContainer_subcontainers_feature = Subcontainers
_UI_EProblemsContainer_container_feature = Container
_UI_Unknown_feature = Unspecified

_UI_ESeverity_OK_literal = OK
_UI_ESeverity_INFO_literal = INFO
_UI_ESeverity_WARNING_literal = WARNING
_UI_ESeverity_ERROR_literal = ERROR
_UI_ESeverity_CANCEL_literal = CANCEL
_UI_Attribute_type = Attribute
_UI_EProblem_type_feature = Type
_UI_EProblem_attributes_feature = Attributes
_UI_Attribute_key_feature = Name
_UI_Attribute_value_feature = Value

pluginDescription=EMF.Edit providers for the CDO model validation problems model.