###############################################################################
# Copyright (c) 2000, 2016 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
#     Alex Weirig <alex.weirig@telewalfer.lu> - Collapse All (https://bugs.eclipse.org/bugs/show_bug.cgi?id=65268)
###############################################################################
pluginName= Default Text Editor
providerName= Eclipse.org

ExtPoint.markerUpdaters= Marker Updater
ExtPoint.documentProviders= Document Provider
ExtPoint.markerAnnotationSpecification= Marker Annotation Specification
ExtPoint.annotationTypes= Annotation Types
ExtPoint.editorTemplate= Editor Template

convertDelimiters.Windows.name= Convert Line Delimiters to Windows (CRLF, \\r\\n, 0D0A, \u00A4\u00B6)
convertDelimiters.Windows.label= &Windows (CRLF, \\r\\n, 0D0A, \u00A4\u00B6)
convertDelimiters.Windows.description= Converts the line delimiters to Windows (CRLF, \\r\\n, 0D0A, \u00A4\u00B6)

convertDelimiters.Unix.name= Convert Line Delimiters to Unix (LF, \\n, 0A, \u00B6)
convertDelimiters.Unix.label= &Unix (LF, \\n, 0A, \u00B6)
convertDelimiters.Unix.description= Converts the line delimiters to Unix (LF, \\n, 0A, \u00B6)

removeTrailingWhitespace.name= Remove Trailing Whitespace
removeTrailingWhitespace.description= Removes the trailing whitespace of each line

NewUntitledTextFile.label= Untitled Text File
NewUntitledTextFile.description= Create an empty untitled text file

ActionDefinition.quickDiff.name= Quick Diff Toggle
ActionDefinition.quickDiff.description= Toggles quick diff information display on the line number ruler

ActionDefinition.quickDiff.revert.name= Revert Lines
ActionDefinition.quickDiff.revert.description= Revert the current selection, block or deleted lines

ActionDefinition.quickDiff.revertLine.name= Revert Line
ActionDefinition.quickDiff.revertLine.description= Revert the current line

ActionDefinition.lineNumberToggle.name= Show Line Numbers
ActionDefinition.lineNumberToggle.description= Toggle display of line numbers

Editors.DefaultTextEditor= Text Editor
PreferencePages.GeneralTextEditors= Text Editors
PreferencePages.Annotations= Annotations
PreferencePages.QuickDiff= Quick Diff
PreferencePages.Accessibility= Accessibility
PreferencePages.Spelling= Spelling

lastSaveReferenceProvider.label= Version on &Disk

AddTask.label=Add &Task...
AddTask.tooltip=Add Task...
AddBookmark.label=Add Boo&kmark...
AddBookmark.tooltip=Add Bookmark...

BookmarkRulerAction.label= Text Editor Bookmark Ruler Action
SelectRulerAction.label= Text Editor Ruler Single-Click

textEditorAnnotationNavigationActionSet.label= Annotation Navigation

goToPreviousAnnotation.label= Previous Annotation
goToPreviousAnnotation.tooltip= Previous Annotation
goToNextAnnotation.label= Next Annotation
goToNextAnnotation.tooltip= Next Annotation

errors.label= Errors
warnings.label= Warnings
infos.label= Infos
tasks.label= Tasks
bookmarks.label= Bookmarks
changes.label= Diff Changes
additions.label= Diff Additions
deletions.label= Diff Deletions
spelling.label= Spelling Errors
revisionInfo.label= Revision Information

goToLastEditPosition.label= Last Edit Lo&cation
goToLastEditPosition.tooltip= Last Edit Location

textEditorNavigationActionSet.label= Editor Navigation

command.folding.expandAll.name = Expand All
command.folding.expandAll.description = Expands all folded regions
command.folding.collapseAll.name = Collapse All
command.folding.collapseAll.description = Collapses all folded regions
command.folding.toggle.name = Toggle Folding
command.folding.toggle.description = Toggles folding in the current editor
command.folding.expand.name = Expand
command.folding.expand.description = Expands the folded region at the current selection
command.folding.collapse.name = Collapse
command.folding.collapse.description = Collapses the folded region at the current selection
command.folding.restore.name = Reset Structure
command.folding.restore.description = Resets the folding structure

command.revisions.renderingCycle.name = Cycle Revision Coloring Mode
command.revisions.renderingCycle.description = Cycles through the available coloring modes for revisions
command.revisions.authorToggle.name = Toggle Revision Author Display
command.revisions.authorToggle.description = Toggles the display of the revision author
command.revisions.idToggle.name = Toggle Revision Id Display
command.revisions.idToggle.description = Toggles the display of the revision id

command.showChangeRulerInformation.name = Show Quick Diff Ruler Tooltip
command.showChangeRulerInformation.description = Displays quick diff or revision information for the caret line in a focused hover

command.showRulerAnnotationInformation.name = Show Ruler Annotation Tooltip
command.showRulerAnnotationInformation.description = Displays annotation information for the caret line in a focused hover

conversionActionSet.label= Convert Line Delimiters
conversionSubMenu.label= Con&vert Line Delimiters To

preferenceKeywords.general= pop-up text editor tabs spaces undo history ruler overview hyperlink overwrite colors range indicator typing appearance derived navigation smart caret positioning invisible whitespace characters drag drop dnd hovers popup sticky enrich rich
preferenceKeywords.tabWidth= tab width
preferenceKeywords.lineNumber= line numbers
preferenceKeywords.printMargin= print margin
preferenceKeywords.annotations= annotations vertical ruler overview colors text editor
preferenceKeywords.quickdiff= quick diff compare reference colors text editor changes
preferenceKeywords.accessibility= accessibility caret cursor quick diff text editor ruler
preferenceKeywords.spelling= spelling spell checking dictionary correction check text editor
preferenceKeywords.linkedmode= editor linked mode template
preferenceKeywords.hyperlinkDetectors= hyperlinking text editor on demand link navigation modifier key

#--- linked mode annotations
linked.focus.label= Current range
linked.slave.label= Range linked to current
linked.target.label= Editable range
linked.exit.label= Final caret location

editorLinkedMode=Linked Mode

#--- rulers
LineNumberRuler.name= Line Numbers
AnnotationRuler.name= Annotations

#--- Hyperlinking ---
TextEditorHyperlinkTarget= Textual Editors
URLHyperlinkDetector= URL
HyperlinkDetectorsPreferencePage= Hyperlinking

#--- Unused label ---
dummy=
