#########################################
# (c) Copyright IBM Corp. 2000, 2001.
# All Rights Reserved.
#########################################

AddIncludeOnSelection.description=Add include statement on selection
AddIncludeOnSelection.dialog.message=&Choose element to generate an include statement for:
AddIncludeOnSelection.dialog.title=Add Include
AddIncludeOnSelection.error.message1=Adding include statements failed
AddIncludeOnSelection.error.message2=Error
AddIncludeOnSelection.error.message3=Error
AddIncludeOnSelection.error.message4=BadLocationException: 
AddIncludeOnSelection.label=Add I&nclude@Ctrl+Shift+N
AddIncludeOnSelection.tooltip=Add Include Statement on Selection

ClassFileEditor.error.invalid_input_message=Invalid input for Class File Editor

ClassFileMarkerAnnotationModel.error.isAcceptable=ClassFileMarkerAnnotationModel.isAcceptable
ClassFileMarkerAnnotationModel.error.isAffected=ClassFileMarkerAnnotationModel.isAffected
ClassFileMarkerAnnotationModel.error.resourceChanged=ClassFileMarkerAnnotationModel.resourceChanged

CEditor.error.saving.message=Save could not be completed. {0}
CEditor.error.saving.title=Problems During Save As...

CEditorPreferencePage.description= C Editor Preferences

DeleteISourceManipulations.description=Delete the selected element in the editor
DeleteISourceManipulations.error.deleting.message1=Cannot delete element:
DeleteISourceManipulations.error.deleting.title1=Problems while deleting element
DeleteISourceManipulations.label=&Delete
DeleteISourceManipulations.tooltip=Delete the selected element in the editor

EditorDisplay.description=Display
EditorDisplay.label=D&isplay
EditorDisplay.tooltip=Display
EditorDisplay.error.title1=Cannot open Display viewer

JavaOutlinePage.ContextMenu.refactoring.label=&Refactor
JavaOutlinePage.HideFields.description.checked=Shows Fields
JavaOutlinePage.HideFields.description.unchecked=Hides Fields
JavaOutlinePage.HideFields.label=Hide Fields
JavaOutlinePage.HideFields.tooltip.checked=Show Fields
JavaOutlinePage.HideFields.tooltip.unchecked=Hide Fields
JavaOutlinePage.HideNonePublicMembers.description.checked=Shows non-public members
JavaOutlinePage.HideNonePublicMembers.description.unchecked=Hides non-public members
JavaOutlinePage.HideNonePublicMembers.label=Show Public Members Only
JavaOutlinePage.HideNonePublicMembers.tooltip.checked=Show Non-Public Members
JavaOutlinePage.HideNonePublicMembers.tooltip.unchecked=Hide Non-Public Members
JavaOutlinePage.HideStaticMembers.description.checked=Shows static members
JavaOutlinePage.HideStaticMembers.description.unchecked=Hides static members
JavaOutlinePage.HideStaticMembers.label=Hide Static Members
JavaOutlinePage.HideStaticMembers.tooltip.checked=Show Static Members
JavaOutlinePage.HideStaticMembers.tooltip.unchecked=Hide Static Members
JavaOutlinePage.Sort.description.checked=Disable Sorting
JavaOutlinePage.Sort.description.unchecked=Enable Sorting
JavaOutlinePage.Sort.label=Sort
JavaOutlinePage.Sort.tooltip.checked=Do Not Sort
JavaOutlinePage.Sort.tooltip.unchecked=Sort
JavaOutlinePage.error.ChildrenProvider.getChildren.message1=JavaOutlinePage.ChildrenProvider.getChildren
JavaOutlinePage.error.ChildrenProvider.hasChildren.message1=JavaOutlinePage.ChildrenProvider.hasChildren

OpenHierarchy.description=Show the type hierarchy of the selected element
OpenHierarchy.dialog.message=&Select the type to open:
OpenHierarchy.dialog.title=Open Type Hierarchy
OpenHierarchy.label=Open Type &Hierarchy@F4
OpenHierarchy.tooltip=Show the type hierarchy of the selected element

OpenDeclarations.description=Open an editor on the selected element's declaration(s)
OpenDeclarations.dialog.message=&Select or enter the element to open:
OpenDeclarations.dialog.title=Open Declarations
OpenDeclarations.label=&Open Declarations@F3
OpenDeclarations.tooltip=Open an editor on the selected element's declaration(s)

OrganizeImports.description=Evaluate all required imports and replace the current imports
OrganizeImports.error.message2=Syntax errors in compilation unit prevent correct evaluation\nof type references. Fix errors first.
OrganizeImports.error.title1=Organize Imports
OrganizeImports.error.title2=Organize Imports
OrganizeImports.label=Or&ganize Imports@Ctrl+Shift+O
OrganizeImports.ok_label=OK
OrganizeImports.tooltip=Evaluate All Required Imports and Replace the Current Imports

RunToLine.description=Run to line
RunToLine.error.message1=Unable to process run to line request.
RunToLine.error.title1=Run to Line
RunToLine.label=R&un to Line
RunToLine.tooltip=Run to line

TogglePresentation.label=Show Source of Selected Element Only
TogglePresentation.tooltip=Show Source of Selected Element Only

ToggleTextHover.label=Show Text Hover
ToggleTextHover.tooltip=Show Text Hover

NextError.label=Ne&xt Problem
NextError.tooltip=Go to Next Problem
NextError.description=Go to next problem

PreviousError.label=Previo&us Problem
PreviousError.tooltip=Go to Previous Problem
PreviousError.description=Go to previous problem

ContentAssistProposal.label=Co&ntent Assist@Ctrl+Space
ContentAssistProposal.tooltip=Content Assist
ContentAssistProposal.description=Content Assist

RunToLine.label=R&un to Line
RunToLine.description=Run to line
RunToLine.error.title1=Run To Line
RunToLine.error.message1=Unable to process run to line request.

Comment.label=&Comment
Comment.tooltip=Comment the Selected Lines
Comment.description=Turn the selected lines into C // style comments

Uncomment.label=Uncommen&t
Uncomment.tooltip=Uncomment the Selected C // comment Lines
Uncomment.description=Uncomment the selected C // comment lines

Format.label=F&ormat
Format.tooltip=Format the Selected Text
Format.description=Format the selected text

ShiftRight.label=Sh&ift Right@Ctrl+I
ShiftRight.tooltip=Shift Right
ShiftRight.description=Shift the selected text to the right

ShiftLeft.label=S&hift Left@Ctrl+Shift+I
ShiftLeft.tooltip=Shift Left
ShiftLeft.description=Shift the selected text to the left

CompilationUnitDocumentProvider.error.createElementInfo=CompilationUnitDocumentProvider.createElementInfo
CompilationUnitDocumentProvider.out_of_sync.message=Compilation unit buffer and document are out of sync

JavaEditor.Inspect.description=Inspect the result of evaluating the selected text
JavaEditor.Inspect.label=I&nspect
JavaEditor.Inspect.tooltip=Inspect the Result of Evaluating the Selected Text
