###############################################################################
# Copyright (c) 2000, 2019 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
#     Pierre-Yves B., pyvesdev@gmail.com - Bug 121634: [find/replace] status bar must show the string being searched when "String Not Found"
###############################################################################


## Errors ##

Editor_error_no_provider=Text editor does not have a document provider

Editor_error_save_title=Save Problems
Editor_error_save_message=Save could not be completed. Try File > Save As... if the problem persists.

Editor_error_save_deleted_title=Cannot Save
Editor_error_save_deleted_message=The file has been deleted or is not accessible.

Editor_error_init= Editor could not be initialized.

Editor_error_save_outofsync_title=Update conflict
Editor_error_save_outofsync_message=The file ''{0}'' has been changed on the file system. Do you want to overwrite the changes made on the file system?

Editor_error_activated_outofsync_title=File Changed
Editor_error_activated_outofsync_message=The file ''{0}'' has been changed on the file system. Do you want to replace the editor contents with these changes?

Editor_error_replace_button_label=&Replace
Editor_error_dontreplace_button_label=&Do not replace

Editor_error_activated_deleted_save_title=File Not Accessible
Editor_error_activated_deleted_save_message=The file ''{0}'' has been deleted or is not accessible. Do you want to save your changes or close the editor without saving?
Editor_error_activated_deleted_save_button_save=Save
Editor_error_activated_deleted_save_button_close=Close
Editor_error_activated_deleted_close_title=File Not Accessible
Editor_error_activated_deleted_close_message=The file ''{0}'' has been deleted or is not accessible. This editor will be closed.

Editor_error_refresh_outofsync_title=Problems loading File
Editor_error_refresh_outofsync_message=The file ''{0}'' could not be loaded from the file system.

Editor_error_revert_title=Problems while reverting to saved state
Editor_error_revert_message=Could not revert to saved state.
Editor_error_setinput_title=Problem opening
Editor_error_setinput_message=Cannot open input element:

Editor_error_validateEdit_title= Problems editing file
Editor_error_validateEdit_message= The file cannot be edited.

Editor_error_HyperlinkDetector_couldNotCreate_message= The ''{0}'' extension from plug-in ''{1}'' to the ''org.eclipse.ui.workbench.texteditor.hyperlinkDetectors'' extension point failed to load the hyperlink detector.
Editor_error_HyperlinkDetector_invalidElementName_message= An extension from plug-in ''{0}'' to the ''org.eclipse.ui.workbench.texteditor.hyperlinkDetectors'' extension point was ignored because it contains the following invalid element: ''{1}''.
Editor_error_HyperlinkDetector_invalidExtension_message= The ''{0}'' extension from plug-in ''{1}'' to the ''org.eclipse.ui.workbench.texteditor.hyperlinkDetectors'' extension point will be ignored because it contains invalid attributes.
Editor_error_HyperlinkDetectorTarget_invalidElementName_message= An extension from plug-in ''{0}'' to the ''org.eclipse.ui.workbench.texteditor.hyperlinkDetectorTargets'' extension point was ignored because it contains the following invalid element: ''{1}''.
Editor_error_HyperlinkDetectorTarget_invalidExtension_message= The ''{0}'' extension from plug-in ''{1}'' to the ''org.eclipse.ui.workbench.texteditor.hyperlinkDetectorTargets'' extension point will be ignored because it contains invalid attributes.

AbstractDocumentProvider_error_save_inuse=File is either open in another editor or in use by another operation.

Editor_mark_status_message_mark_set=Mark set
Editor_mark_status_message_mark_cleared=Mark cleared
Editor_mark_status_message_mark_swapped=Mark swapped
MarkRegionTarget_markNotSet=mark not set
MarkRegionTarget_markNotVisible=mark not in visible region

# Incremental Find Status field
Editor_FindIncremental_name= Incremental Find
Editor_FindIncremental_reverse_name= Reverse Incremental Find
Editor_FindIncremental_not_found_pattern={0}{1} {2} not found
Editor_FindIncremental_found_pattern={0}{1}: {2}
Editor_FindIncremental_render_tab=<TAB>

# The following two properties must end in a space
Editor_FindIncremental_wrapped=Wrapped
Editor_FindIncremental_reverse=Reverse

Editor_ConvertLineDelimiter_title=Converting line delimiters...

## Status line ##
Editor_statusline_state_readonly_label=Read-Only
Editor_statusline_state_writable_label=Writable
Editor_statusline_mode_insert_label=Insert
Editor_statusline_mode_overwrite_label=Overwrite
Editor_statusline_mode_smartinsert_label=Smart Insert
Editor_statusline_position_pattern={0} : {1}
Editor_statusline_error_label=?

## Others ##
WorkbenchChainedTextFontFieldEditor_defaultWorkbenchTextFont=<Using Workbench Text Font>

FindReplace_title= Find/Replace
FindReplace_Find_label=&Find:
FindReplace_Replace_label=R&eplace with:
FindReplace_Direction=Direction
FindReplace_ForwardRadioButton_label=F&orward
FindReplace_BackwardRadioButton_label=&Backward
FindReplace_Scope=Scope
FindReplace_GlobalRadioButton_label=A&ll
FindReplace_SelectedRangeRadioButton_label=Selec&ted lines
FindReplace_Options=Options
FindReplace_CaseCheckBox_label=&Case sensitive
FindReplace_WrapCheckBox_label=Wra&p search
FindReplace_WholeWordCheckBox_label=&Whole word
FindReplace_IncrementalCheckBox_label=&Incremental
FindReplace_RegExCheckbox_label= Regular e&xpressions
FindReplace_FindNextButton_label=Fi&nd
FindReplace_ReplaceFindButton_label=Replace/Fin&d
FindReplace_ReplaceSelectionButton_label=&Replace
FindReplace_ReplaceAllButton_label=Replace &All
FindReplace_CloseButton_label=Close
FindReplace_Status_noMatch_label=String not found
FindReplace_Status_noMatchWithValue_label=String ''{0}'' not found
FindReplace_Status_replacement_label=1 match replaced
FindReplace_Status_replacements_label={0} matches replaced
FindReplace_Status_wrapped_label=Wrapped search

FindNext_Status_noMatch_label=String ''{0}'' not found

AbstractDocumentProvider_ok=OK
AbstractDocumentProvider_error=ERROR
FindReplaceDialog_read_only=Cannot replace. File is read-only.

Editor_MoveLines_IllegalMove_status= Move not possible - Uncheck "Show Source of Selected Element Only" to see the entire document

Editor_error_clipboard_copy_failed_message= Copy to clipboard failed.
Editor_font_reset_message=reset \u2192 {0}
Editor_font_zoom_message={0} \u2192 {1}
