###############################################################################
# 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
###############################################################################
#
# 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: not a CompareEditorInput
CompareEditor.error.setinput.title=Problem while opening
CompareEditor.error.setinput.message=Cannot open input:

#
# Commands
#
compareCategory.name= Compare
compareCategory.description= Compare command category

Command.copyRightToLeft.name= Copy from Right to Left
Command.copyRightToLeft.description= Copy Current Change from Right to Left

Command.copyLeftToRight.name= Copy from Left to Right
Command.copyLeftToRight.description= Copy Current Change from Left to Right

Command.copyAllRightToLeft.name= Copy All from Right to Left
Command.copyAllRightToLeft.description= Copy All Changes from Right to Left

Command.copyAllLeftToRight.name= Copy All from Left to Right
Command.copyAllLeftToRight.description= Copy All Change from Left to Right

Command.selectNextChange.name= Select Next Change
Command.selectNextChange.description= Select Next Change

Command.selectPreviousChange.name= Select Previous Change
Command.selectPreviousChange.description= Select Previous Change


#
# Context menu & actions
#
CompareWithMenu.label= Comp&are With

CompareWithEachOtherAction.label= &Each Other
CompareWithEachOtherAction.tooltip= Compare the Selected Resources

TeamMenu.label= T&eam

CompareWithPatchAction.label= &Apply Patch...
CompareWithPatchAction.tooltip= Apply a Patch to the Selected Resources

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/Patch

ComparePreferencePage.generalTab.label= &General

ComparePreferencePage.structureCompare.label= &Open structure compare automatically
ComparePreferencePage.showMoreInfo.label= &Show additional compare information in the status line
ComparePreferencePage.ignoreWhitespace.label= Ignore &white space
ComparePreferencePage.saveBeforePatching.label= A&utomatically save dirty editors before patching

ComparePreferencePage.textCompareTab.label= &Text 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.useSingleLine.label= Connect &ranges with single line

ComparePreferencePage.preview.label= Preview:
ComparePreferencePage.ancestor.label= Common Ancestor
ComparePreferencePage.left.label= Local
ComparePreferencePage.right.label= Remote
ComparePreferencePage.backgroundColor1.label= Bac&kground Color:
ComparePreferencePage.backgroundColor2.label= S&ystem Default
ComparePreferencePage.backgroundColor3.label= C&ustom

# Compare editor contents for Compare preview page
ComparePreferencePage.previewAncestor= 1\n2\n3\nconflict\n4\n5
ComparePreferencePage.previewLeft= 1\n2\noutgoing addition\n3\noutgoing change\n4\npseudo conflict\n5
ComparePreferencePage.previewRight= 1\nincoming addition\nincoming addition\n2\n3\nincoming change\n4\npseudo conflict\n5

compareFontDefiniton.label= Compare Text Font
compareFontDefiniton.description= The compare text font is used by textual compare/merge editors.

# New UI
#ComparePreferencePage.useSplines.label= Use splines in center panel
#ComparePreferencePage.useResolveUI.label= Use new resolve UI

CompareEditorInput.defaultTitle= Compare

#
# 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.commitAction.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.twoWay.tooltip={0}-{1}
ResourceCompare.threeWay.title=Compare ({0}-{1}-{2})
ResourceCompare.threeWay.tooltip={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
