# =====================================
# (c) Copyright IBM Corp. 2002.
# All Rights Reserved.
# =====================================

#
# 'Compare with Patch' Action
#
PatchAction.ExceptionTitle=Saving Resources
PatchAction.Exception=Unexpected exception. See log for details
PatchAction.SavingDirtyEditorsTask=Saving dirty editors
PatchAction.AlwaysSaveQuestion=&Always save all modified resources automatically prior to patching
PatchAction.SaveAllQuestion=Save all modified resources
PatchAction.SaveAllDescription=All modified resources must be saved before this operation.\nPress OK to confirm or Cancel otherwise

#
# PatchWizard
#
PatchWizard.title=Resource Patcher

#
# InputPatchPage
#
InputPatchPage.title= Patch Input Specification
InputPatchPage.message= Define what resource to patch with which patch
InputPatchPage.Clipboard=Clipboard
InputPatchPage.SelectInput=Select a single file or folder to patch:
InputPatchPage.PatchErrorDialog.title=Patch Error
InputPatchPage.PatchErrorDialog=Patch Error
InputPatchPage.SelectPatch.title=Select Patch
InputPatchPage.FileButton.text=File
InputPatchPage.ChooseFileButton.text=&Browse...
InputPatchPage.UseClipboardButton.text=Clipboard
InputPatchPage.NothingSelected.message=Nothing selected to apply patch to
InputPatchPage.ClipboardIsEmpty.message=Clipboard is empty
InputPatchPage.NoTextInClipboard.message=Clipboard does not contain text
InputPatchPage.CouldNotReadClipboard.message=Couldn\'t retrieve clipboard contents
InputPatchPage.CannotLocatePatch.message=Can\'t locate patch file: 
InputPatchPage.NoFileName.message=No file name
InputPatchPage.SelectPatchFileDialog.title=Select Patch File
InputPatchPage.PatchFileNotFound.message=Patch file not found.
InputPatchPage.ParseError.message=Error while parsing patch
InputPatchPage.NoDiffsFound.message=No diffs found in 

#
# PreviewPatchPage
#
PreviewPatchPage.title= Verify Patch
PreviewPatchPage.message= The tree shows the contents of the patch.\nA checked item indicates that a patch could be applied succesfully. Uncheck an item if you want to exclude it.
PreviewPatchPage.Left.title= Original
PreviewPatchPage.Right.title= Result
PreviewPatchPage.PatchOptions.title=Patch Options
PreviewPatchPage.IgnoreSegments.text=Ignore leading path name segments:
PreviewPatchPage.ReversePatch.text=Reverse Patch
PreviewPatchPage.FuzzFactor.text=Maximum fuzz factor:
PreviewPatchPage.FuzzFactor.tooltip=Allow context to shift this number of lines from the original place
PreviewPatchPage.IgnoreWhitespace.text=Ignore Whitespace
PreviewPatchPage.NoName.text=no name
PreviewPatchPage.FileExists.error=(file already exists)
PreviewPatchPage.FileDoesNotExist.error=(file doesn\'t exist)
PreviewPatchPage.NoMatch.error=(no match)

#
# Patcher
#
Patcher.ErrorDialog.title=title
Patcher.DeleteError.message=Error while deleting resource
Patcher.UpdateError.message=Error while updating resource
Patcher.RefreshError.message=Error while refreshing from local
Patcher.Marker.message=Rejected patch

#
# PatchCompareInput
#
PatchCompareInput.RightTitle.format= Patch: {0}
