###############################################################################
# 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
###############################################################################

# @(#)DiffTreeViewerResources.properties
#
# Resource strings for DiffTreeViewer.java

title= Structure Compare
defaultLabel= <no name>

#####################################################
# Dummy menu item for empty context menu
#####################################################

emptyMenuItem= <Empty Menu>

#####################################################
# Actions
#####################################################

action.Smart.label=Smart
action.Smart.tooltip=Guess Similar Elements
action.Smart.image=smartmode_co.gif

action.ExpandAll.label=Expand All
action.ExpandAll.tooltip=Expand All Nodes

action.CompareContents.label= Show Content Comparison
action.CompareContents.tooltip= Show content comparison

action.NextDiff.label=Next
action.NextDiff.tooltip=Select Next Change
action.NextDiff.image=next_nav.gif

action.PrevDiff.label=Previous
action.PrevDiff.tooltip=Select Previous Change
action.PrevDiff.image=prev_nav.gif

action.TakeLeft.label=Copy Left to Right
action.TakeLeft.tooltip=Copy Selected Nodes from Left to Right
action.TakeLeft.image=copycont_r_co.gif

action.TakeRight.label=Copy Right to Left
action.TakeRight.tooltip=Copy Selected Nodes from Right to Left
action.TakeRight.image=copycont_l_co.gif
