###############################################################################
# Copyright (c) 2000, 2003 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials 
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

# @(#)CompareWithEditionAction.properties
#
# Resources for CompareWithEditionAction.java

title= Compare with Local History

treeTitleFormat= Local History of ''{0}''
dateIcon= obj16/day_obj.gif
timeIcon= obj16/resource_obj.gif

treeFormat= {0}
workspaceTreeFormat= {0} (Workspace File)
parseErrorFormat= {0} (Parse Error)

editionLabel= Local History ({0})
workspaceEditionLabel= Workspace File

targetLabel= Editor Buffer
workspaceTargetLabel= Workspace File

todayFormat= Today ({0})
yesterdayFormat= Yesterday ({0})
dayFormat= {0}

closeButton.label=Close

noLocalHistoryError= No local history available for selected resource.
