#########################################
# (c) Copyright IBM Corp. 2000, 2001.
# All Rights Reserved.
#########################################
#
# Resource strings for Compare Plug-in
#
pluginName= Compare Support
providerName=Eclipse.org

#
# 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= Restore From Local Histor&y...
addFromHistoryAction.tooltip= Restore 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
# Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=19211
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
# Fix for http://dev.eclipse.org/bugs/show_bug.cgi?id=20077
ComparePreferencePage.ignoreWhitespace.label= Ignore &white space

# New UI
ComparePreferencePage.useSplines.label= [Experimental] Use splines in center panel
ComparePreferencePage.useSingleLine.label= [Experimental] Connect ranges with single line
ComparePreferencePage.useResolveUI.label= [Experimental] Use new resolve UI

#
# 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
action.Next.image=elcl16/next_nav.gif

action.Previous.label=Previous Difference
action.Previous.tooltip=Go to Previous Difference
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
