# =====================================
# (c) Copyright IBM Corp. 2000, 2001.
# All Rights Reserved.
# =====================================
# @(#)TextMergeViewerResources.properties
#
# Resource strings for TextMergeViewer.java

title= Text Compare

saveDialog.title= Save Resource
saveDialog.message= Resource has been modified. Save changes?

compareProgressTask.title= Computing Differences...

tooComplexError.title= Error
tooComplexError.format= Too many differences. Try to turn on the ''Ignore White Space'' option or do a structure compare first.

#####################################################
# Toolbar actions
#####################################################

action.CopyLeftToRight.label=Copy Left to Right
action.CopyLeftToRight.tooltip=Copy All from Left to Right
action.CopyLeftToRight.image=copy_r_co.gif

action.CopyRightToLeft.label=Copy Right to Left
action.CopyRightToLeft.tooltip=Copy All from Right to Left
action.CopyRightToLeft.image=copy_l_co.gif

action.CopyDiffLeftToRight.label=Copy Current Diff
action.CopyDiffLeftToRight.tooltip=Copy Current Change from Left to Right
action.CopyDiffLeftToRight.image=copycont_r_co.gif

action.CopyDiffRightToLeft.label=Copy Current Diff
action.CopyDiffRightToLeft.tooltip=Copy Current Change from Right to Left
action.CopyDiffRightToLeft.image=copycont_l_co.gif

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.EnableAncestor.label=Enable Ancestor Pane
action.EnableAncestor.tooltip.unchecked=Show Ancestor Pane
action.EnableAncestor.tooltip.checked=Hide Ancestor Pane
action.EnableAncestor.description.unchecked=Show Ancestor Pane
action.EnableAncestor.description.checked=Hide Ancestor Pane
action.EnableAncestor.image=ancestorpane_co.gif

action.IgnoreAncestor.label=Ignore Ancestor
action.IgnoreAncestor.tooltip.unchecked=Two-Way Compare (Ignore Ancestor)
action.IgnoreAncestor.tooltip.checked=Three-Way Compare
action.IgnoreAncestor.description.unchecked=Two-Way Compare (Ignore Ancestor)
action.IgnoreAncestor.description.checked=Three-Way Compare
action.IgnoreAncestor.image=twowaycompare_co.gif


#####################################################
# Context menu actions
#####################################################

action.undo.label=Undo@Ctrl+Z
action.undo.tooltip=Undo Last Operation

action.redo.label=Redo@Ctrl+Y
action.redo.tooltip=Redo Last Operation

action.cut.label=Cut@Ctrl+X
action.cut.tooltip=Cut Text Selection to Clipboard

action.copy.label=Copy@Ctrl+C
action.copy.tooltip=Copy Text Selection to Clipboard

action.paste.label=Paste@Ctrl+V
action.paste.tooltip=Replace Text Selection with Clipboard

action.delete.label=Delete
action.delete.tooltip=Delete Current Text Selection

action.find.label=Find...@Ctrl+F
action.find.tooltip=Find Occurrence

action.selectAll.label=Select All@Ctrl+A
action.selectAll.tooltip=Select All Changes

action.save.label=Save@Ctrl+S
action.save.tooltip=Save Changes
