################################################################################
# Copyright (c) 2012 Obeo.
# 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:
#     Obeo - initial API and implementation
################################################################################
pluginName = EMF Compare Diagram Comparison Edit Support
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_Show_type = Show
_UI_Hide_type = Hide
_UI_NodeChange_type = Node Change
_UI_EdgeChange_type = Edge Change
_UI_LabelChange_type = Label Change
_UI_DiagramDiff_type = Diagram Diff
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_UI_LabelChange_left_feature = Left
_UI_LabelChange_right_feature = Right
_UI_LabelChange_origin_feature = Origin
_UI_DiagramDiff_semanticDiff_feature = Semantic Diff
_UI_DiagramDiff_view_feature = View
_UI_Unknown_feature = Unspecified

_UI_CoordinatesChange_type = Coordinates Change
_UI_DiagramChange_type = Diagram Change
