#########################################
# (c) Copyright IBM Corp. 2000, 2001.
# All Rights Reserved.
#########################################
#
# Resource strings for Compare Plug-in
#
pluginName= Compare Support

#
# Extension point names
#
structureCreators= Structure Creator
structureMergeViewers= Structure Merge Viewer
contentMergeViewers= Content Merge Viewer
contentViewers= Content Viewer

#
# CompareUIPlugin
#
CompareUIPlugin.dialogTitle=Compare
CompareUIPlugin.noActiveWorkbenchPage=Can't find active workbench page
CompareUIPlugin.compareFailed=Compare Failed
CompareUIPlugin.openEditorError=Problems Opening Editor
CompareUIPlugin.noDifferences=There are no differences between the selected inputs.

#
# Compare Editor
#
defaultCompareEditor.name= Default Compare Editor
CompareEditor.saveError.title= Save Error
CompareEditor.cantSaveError= Can''t save contents ({0})
CompareEditor.invalidInput=Invalid Input: Must be CompareEditorInput

#
# Context menu & actions
#
CompareWithMenu.label= Comp&are With

CompareWithEachOtherAction.label= &Each Other
CompareWithEachOtherAction.tooltip= Compare the Selected Resources

CompareWithPatchAction.label= P&atch...
CompareWithPatchAction.tooltip= Compare the Selected Resource with a Patch

CompareWithHistoryAction.label= &Local History...
CompareWithHistoryAction.tooltip= Compare the Selected Resource with Local History

ReplaceWithMenu.label= Rep&lace With

ReplaceFromHistoryAction.label= &Local History...
ReplaceFromHistoryAction.tooltip= Replace the Selected Resource with Local History

ReplaceWithPreviousFromHistoryAction.label= &Previous From Local History
ReplaceWithPreviousFromHistoryAction.tooltip= Replace the Selected Resource with the Previous from Local History

addFromHistoryAction.label= Add From Local Histor&y...
addFromHistoryAction.tooltip= Add Deleted Files From Local History

#
# Preference Page
#
ComparePreferencePage.name= Compare
ComparePreferencePage.initiallyShowAncestorPane.label= Initially show a&ncestor pane
ComparePreferencePage.showPseudoConflicts.label= Show &pseudo conflicts
ComparePreferencePage.synchronizeScrolling.label= Synchronize &scrolling between panes in compare viewers
ComparePreferencePage.textFont.label= Text Font
ComparePreferencePage.showMoreInfo.label= Show additional compare &information in the status line
ComparePreferencePage.preview.label= Preview:
ComparePreferencePage.ancestor.label= Common Ancestor
ComparePreferencePage.left.label= Local
ComparePreferencePage.right.label= Remote
ComparePreferencePage.structureCompare.label= &Open structure compare automatically
ComparePreferencePage.generalTab.label= &General
ComparePreferencePage.textCompareTab.label= &Text Compare
ComparePreferencePage.backgroundColor1.label= Bac&kground Color:
ComparePreferencePage.backgroundColor2.label= S&ystem Default
ComparePreferencePage.backgroundColor3.label= C&ustom

#
# Toolbar actions
#
action.IgnoreWhiteSpace.label=Ignore White Space
action.IgnoreWhiteSpace.tooltip=Ignore White Space Where Applicable
action.IgnoreWhiteSpace.image=etool16/ignorews_edit.gif

action.Next.label=Next Difference
action.Next.tooltip=Go To Next Difference  Ctrl+E
action.Next.image=elcl16/next_nav.gif

action.Previous.label=Previous Difference
action.Previous.tooltip=Go To Previous Difference  Ctrl+Shift+E
action.Previous.image=elcl16/prev_nav.gif

#
# Built in Structure Creators
#
ZipStructureCreator.name=Zip Archive Compare

#
# Compare Dialog
#
CompareDialog.commit.label=Commit
CompareDialog.saveErrorTitle=Save Error 
CompareDialog.saveErrorMessage=Can't save

#
# Compare With Each Other
#
ResourceCompare.taskName=Operation in Progress...
ResourceCompare.twoWay.title=Compare ({0}-{1})
ResourceCompare.threeWay.title=Compare ({0}-{1}-{2})

#
# DiffTreeViewer & DiffNodes
#
DiffTreeViewer.title= Structure Compare
DiffNode.noName= <no name>
DiffNode.nameFormat= {0} / {1}

#
# Differencing engine
#
Differencer.progressFormat= Comparing {0}

#
# Patch: rejected patch markers
#
rejectedPatchMarker.name= Rejected Patch
