# <copyright>
# 
# Copyright (c) 2008-2010 See4sys 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
# 
# </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 Team Subversive UI Plug-in (Incubation)
providerName=Eclipse Sphinx

CompareWithLatestFromRepositoryAction.label=Latest from Repository
CompareWithLatestFromRepositoryAction.tooltip=Compare the current working copy with the last version on the repository