###############################################################################
# Copyright (c) 2000, 2016 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
#
# Resource strings for Compare Plug-in
#
pluginName= Compare Support
providerName=Eclipse.org

#
# Extension point names
#
streamMergers= Stream Merger
structureCreators= Structure Creator
structureMergeViewers= Structure Merge Viewer
contentMergeViewers= Content Merge Viewer
contentViewers= Content Viewer
compareFilters= Compare Filters

#
# CompareUIPlugin
#
CompareUIPlugin.dialogTitle=Compare
CompareUIPlugin.noActiveWorkbenchPage=Cannot find active workbench page
CompareUIPlugin.compareFailed=Compare Failed
CompareUIPlugin.openEditorError=Problems Opening Editor
CompareUIPlugin.noDifferences=There are no differences between the selected inputs.

CompareUIPlugin.targetIdAttributeMissing=target id attribute ''{0}'' missing
CompareUIPlugin.contentTypeNotFound=content type ''{0}'' not found
CompareUIPlugin.targetNotFound=target ''{0}'' not found
CompareUIPlugin.unexpectedTag=expected tag ''{1}'', got ''{0}''

#
# Compare Editor
#
defaultCompareEditor.name= Default Compare Editor
CompareEditor.saveError.title= Save Error
CompareEditor.cantSaveError= Cannot save contents ({0})
CompareEditor.invalidInput=Invalid input: not a CompareEditorInput
CompareEditor.error.setinput.title=Problem opening input
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 Changes from Left to Right

Command.switchLeftAndRight.name= Swap Left and Right View
Command.switchLeftAndRight.description= Switch the left and right sides in the compare editor

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

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

Command.ignoreWhiteSpace.name= Ignore White Space
Command.ignoreWhiteSpace.description= Ignore white space where applicable

Command.compareWithOther.name= Compare With Other Resource
Command.compareWithOther.description= Compare resources, clipboard contents or editors

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

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

CompareWithOtherResource.label= &Other Resource...
CompareWithOtherResource.tooltip= Open the 'Compare With' Dialog

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.structureOutline.label= Show structure compare in Outline &view when possible
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 browsing patches

ComparePreferencePage.regex.description=Enter regular expressions used to identify added or removed lines in a patch\n(e.g. '^\\+\\s*\\S' for an added line with at least one word character).
ComparePreferencePage.regexAdded.label=Added lines
ComparePreferencePage.regexRemoved.label=Removed lines

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 ancestor 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.highlightTokenChanges.label=&Highlight individual changes
ComparePreferencePage.disableCapping.label=Disable &capping when comparing large documents
ComparePreferencePage.swapped.label=S&wap left and right

ComparePreferencePage.preview.label= Pre&view 3-way compare:
ComparePreferencePage.preview-2way.label= Preview 2-w&ay compare:
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
ComparePreferencePage.workingCopy.label= Working Copy
ComparePreferencePage.baseline.label= Baseline

# Compare editor contents for Compare preview page
ComparePreferencePage.previewAncestor= 1\n2\n3\nconflicting change\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
ComparePreferencePage.baseline= \nline 1\nline 2\nremoved line 2a\nremoved line 2b\nline 3\nline 4\nline 5\nline 6\nline to modify 7\nline 8\nremoved words in line 9\n
ComparePreferencePage.workingCopy= line 1\nline 2\nline 3\nadded words in line 4\nline 5\nadded line 5a\nadded line 6b\nline 6\nmodified line 7\nline 8\nline 9

ComparePreferencePage.colorAndFontLink=See <a>''{0}''</a> preferences for text compare colors and fonts.

textCompareAppearance.label=Text Compare

compareIncomingColor.label= Incoming change color
compareIncomingColor.description= The color used to indicate an incoming change in compare and merge tools.
compareOutgoingColor.label= Outgoing change color
compareOutgoingColor.description= The color used to indicate an outgoing change in compare and merge tools.
compareConflictColor.label= Conflicting change color
compareConflictColor.description= The color used to indicate a conflicting change in compare and merge tools.
compareResolvedColor.label= Resolved change color
compareResolvedColor.description= The color used to indicate a resolved change in merge tools.
compareAdditionColor.label= Addition color
compareAdditionColor.description= The color used to indicate addition in compare tools.
compareDeletionColor.label= Deletion color
compareDeletionColor.description= The color used to indicate deletion in compare tools.
compareEditionColor.label= Edition color
compareEditionColor.description= The color used to indicate edition in compare tools.

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


preferenceKeywords.general=merge merging whitespace filter synchronize scrolling ancestor conflict line pseudo navigation next previous capping swap left right change difference

# 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.png

action.Next.label=Next Difference
action.Next.tooltip=Next Difference
action.Next.image=elcl16/next_diff_nav.png

action.Previous.label=Previous Difference
action.Previous.tooltip=Previous Difference
action.Previous.image=elcl16/prev_diff_nav.png

#
# Built in Structure Creators
#
ZipStructureCreator.name=Zip Archive Compare

#
# Compare With Each Other
#
ResourceCompare.taskName=Operation in Progress...
ResourceCompare.twoWay.title=Compare (''{0}'' - ''{1}'')
ResourceCompare.twoWay.tooltip=Two-way compare of ''{0}'' with ''{1}''
ResourceCompare.threeWay.title=Compare (''{0}'' - ''{1}'' - ''{2}'')
ResourceCompare.threeWay.tooltip=Three-way compare of ''{1}'' and ''{2}'' relative to common ancestor ''{0}''

#
# 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 cannot be performed.
ValidateEdit.error.fileModified= File ''{0}'' has been modified since the beginning of the operation.
ValidateEdit.error.stillReadonly= File ''{0}'' is read-only.

context.description = Comparing in an Editor
context.name = Comparing in an Editor

BinaryCompare.label=Binary Compare
TextCompare.label=Text Compare
ImageCompare.label=Image Compare
