###############################################################################
# Copyright (c) 2000, 2004 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.filter.description= Enter member names that should be excluded from 'Compare With Each Other'.\nList is comma separated (e.g. '*.class, .project, bin/')
ComparePreferencePage.filter.label= &Filtered Members:
ComparePreferencePage.filter.invalidsegment.error= Filter is invalid: {0}

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

#
# ValidateEdit
#
ValidateEdit.error.unable_to_perform= Operation can\'t be performed.
ValidateEdit.error.fileModified= File ''{0}'' has been modified since the beginning of the operation.
ValidateEdit.error.stillReadonly= File ''{0}'' is readonly.
