#  Copyright (c) 2011 Atos Origin.
#  
#  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:
#  Atos Origin - Initial API and implementation
# 

pluginName = SysMLdiff 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_SysMLDiffExtension_type = Sys ML Diff Extension
_UI_SysMLBlockChange_type = Sys ML Block Change
_UI_SysMLBlockChangeLeftTarget_type = Sys ML Block Change Left Target
_UI_SysMLBlockChangeRightTarget_type = Sys ML Block Change Right Target
_UI_Unknown_type = Object

_UI_Unknown_datatype= Value

_UI_Unknown_feature = Unspecified

_UI_SysMLStereotypeAttributeChange_type = Sys ML Stereotype Attribute Change
_UI_SysMLStereotypePropertyChangeLeftTarget_type = Sys ML Stereotype Property Change Left Target
_UI_SysMLStereotypePropertyChangeRightTarget_type = Sys ML Stereotype Property Change Right Target

_UI_UMLStereotypeUpdateAttribute_type = Attribute {0} in {1} has changed from {2} to {3}
_UI_UMLStereotypeUpdateAttribute_conflicting = Attribute {0} : remote = {1}, local = {2}
_UI_UMLRemoteStereotypeUpdateAttribute_type = Attribute {0} in {1} has been remotely changed from {2} to {3}

_UI_AddUMLStereotypeAttribute_type = The value {0} has been added to the attribute {1} in {2}
_UI_RemoteRemoveUMLStereotypeAttribute_type = {0} has been remotely removed from attribute {1} in {2}

_UI_RemoveUMLStereotypeAttribute_type = The value {0} has been removed from the attribute {1} in {2}
_UI_RemoteAddUMLStereotypeAttribute_type = {0} has been remotely added to attribute {1} in {2}

_UI_RemoteRemoveUMLStereotypeReferenceValue_type = {0} has been remotely removed from reference {1} in {2}
_UI_AddUMLStereotypeReferenceValue_type = {0} has been added to reference {1} in {2}
_UI_RemoteAddUMLStereotypeReferenceValue_type = {0} has been remotely added to reference {1} in {2}
_UI_RemoveUMLStereotypeReferenceValue_type = {0} has been removed from reference {1} in {2}

_UI_UpdateStereotypeReference_type = Reference {0} in {1} changed from {2} to {3}
_UI_UpdateStereotypeReference_conflicting = Reference {0} in {1} : remote = {2}, local = {3}
_UI_RemoteStereotypeUpdateReference_type = Reference {0} in {1} has been remotely changed from {2} to {3}
_UI_StereotypeReferenceOrderChange_type = The order of the reference {0} values has changed

_UI_SysMLStereotypeReferenceChangeLeftTarget_type = Sys ML Stereotype Reference Change Left Target
_UI_SysMLStereotypeReferenceChangeRightTarget_type = Sys ML Stereotype Reference Change Right Target
_UI_UMLStereotypeAttributeChangeLeftTarget_type = UML Stereotype Attribute Change Left Target
_UI_SysMLStereotypeAttributeChangeRightTarget_type = Sys ML Stereotype Attribute Change Right Target
_UI_SysMLStereotypeReferenceOrderChange_type = Sys ML Stereotype Reference Order Change
_UI_SysMLStereotypeUpdateAttribute_type = Sys ML Stereotype Update Attribute
_UI_SysMLStereotypeUpdateReference_type = Sys ML Stereotype Update Reference
