# <copyright>
# 
# Copyright (c) 2008-2015 See4sys, itemis and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
# 
# Contributors: 
#     See4sys - Initial API and implementation
#     itemis - [457704] Integrate EMF compare 3.x in Sphinx
# 
# </copyright>

# ====================================================================
# To code developer:
#   Do NOT change the properties between this line and the
#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
#   Make a new property name, append to the end of the file and change
#   the code to use the new property.
# ====================================================================

# ====================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# ====================================================================

pluginName=Sphinx EMF Compare UI Plug-in (Incubation)
providerName=Eclipse Modeling Project

sphinx.emf.compare.editor.model.name=Model Compare Editor

sphinx.emf.compare.ui.actions.compareWithEachOther.label=&Each Other
sphinx.emf.compare.ui.actions.compareWithEachOther.tooltip=Compare the Selected Files

sphinx.emf.compare.ui.menus.mergeWith.label=Merge With
sphinx.emf.compare.ui.actions.mergeWithEachOther.label=&Each Other
sphinx.emf.compare.ui.actions.mergeWithEachOther.tooltip=Merge the Selected Files
