###############################################################################
# Copyright (c) 2001, 2004 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
#     Jens Lukowski/Innoopract - initial renaming/restructuring
#     
###############################################################################
Macro_must_have_a_name_INFO_=IWAK0003I Macro must have a name
Macro_name_can_not_start_w_INFO_=IWAK0004I Macro name can not start with whitespace
Rename_Macro_UI_=Rename Macro
Copy_Macro_UI_=Copy Macro
New_Macro_UI_=New Macro
Source__UI_=Source:
The_maximum_width_must_be__UI_=The maximum width must be an integer
Only_whitespace_characters_UI_=Only whitespace characters are allowed in the indentation
The_number_of_spaces_must__UI_=The number of spaces must be an integer
Alphabetically_sort_the_li_UI_=Alphabetically sort the list of proposals
Prompt_when_these_characte_UI_=Prompt when these characters are inserted:
This_encoding({0})_is_not__WARN_=IWAK0005W This encoding({0}) is not supported. Continue ?
The_encoding_of_Preference_WARN_=IWAK0006W The encoding of Preference({0}) and the encoding in the document({1}) are different. {1} will be used. Continue ?
Begin/End_Comment_UI_=Begin/End Comment
Commented_Text_UI_=Commented Text
Begin/End_CDATA_UI_=Begin/End CDATA
CDATA_UI_=CDATA
Begin/End_Processing_Instr_UI_=Begin/End Processing Instruction
Processing_Instruction_Con_UI_=Processing Instruction Content
Start/End_Markup_UI_=Start/End Markup
Names_UI_=Names
## on the following line solely translate:  Begin
Begin_DOCTYPE_UI_=Begin DOCTYPE
## on the following line solely translate:  keyword
DOCTYPE_SYSTEM/PUBLIC_keyw_UI_=DOCTYPE SYSTEM/PUBLIC keyword
## on the following line solely translate:  End
End_DOCTYPE_UI_=End DOCTYPE
Click_on_the_sample_text_w_UI_=Click on the sample text whose style you want to customize:
1This_encoding({0})_is_not__WARN_=IWAK0007W This encoding({0}) is not supported. The default encoding will be used instead.
Encoding_warning_UI_=Encoding warning
A_temporary_backup_version_WARN_=IWAK0008W A temporary backup version of the file {0} was found in {1}.\n\nThis indicates a previous editing session with this file did not end normally and the file you are trying to edit might have been damaged. Would you like to use the backup version?
Improper_shutdown_warning_UI_=Improper shutdown warning
Editing_canceled_at_users__INFO_=IWAK0009I Editing canceled at users request
Unable_to_save_the_documen_ERROR_=IWAK0010E Unable to save the document. Output file not found.
Unable_to_save_the_documen1_ERROR_=IWAK0011E Unable to save the document. Unsupported encoding.
Unable_to_save_the_documen2_ERROR_=IWAK0012E Unable to save the document. An I/O error occurred while saving the document.
Unable_to_save_the_documen3_ERROR_=IWAK0013E Unable to save the document. An severe I/O error occurred while saving the document.
An_I/O_error_while_creatin_ERROR_=IWAK0014E An I/O error while creating temporary backup copy
An_severe_I/O_error_while__ERROR_=IWAK0015E An severe I/O error while creating temporary backup copy
&Undo_Text_Change_@Ctrl+Z_UI_=&Undo Text Change @Ctrl+Z
Undo_Text_Change._UI_=Undo Text Change.
&Undo_{0}_@Ctrl+Z_UI_=&Undo {0} @Ctrl+Z
Undo__{0}._UI_=Undo: {0}.
&Redo_Text_Change_@Ctrl+Y_UI_=&Redo Text Change @Ctrl+Y
Redo_Text_Change._UI_=Redo Text Change.
&Redo_{0}_@Ctrl+Y_UI_=&Redo {0} @Ctrl+Y
Redo__{0}._UI_=Redo: {0}.
Cleanup_Document_UI_=Cleanup Document
Format_Document_UI_=Format Document
Format_Active_Elements_UI_=Format Active Elements
Text_Cut_UI_=Text Cut
Text_Paste_UI_=Text Paste
Source_UI_=Source
Invalid_Input__Must_be_IFi_ERROR_=IWAK0016E Invalid Input: Must be IFileEditorInput
An_error_has_occurred_when1_ERROR_=IWAK0017E An error has occurred when initializing the input for the the editor's source page.
No_known_attribute__UI_=No known attribute
Content_Assist_not_availab_UI_=Content Assist not available at the current location
SEVERE_internal_error_occu_UI_=SEVERE internal error occurred
Double_Quotes_UI_=Double Quotes
Single_Quotes_UI_=Single Quotes
ContentAssistProposals.label=Con&tent Assist
ContentAssistProposals.tooltip=Content Assist
ContentAssistProposals.image=
ContentAssistProposals.description=Content Assist
QuickFix.label=&Quick Fix
QuickFix.tooltip=Quick Fix
QuickFix.image=
QuickFix.description=Quick Fix
Comment.label=Co&mment
Comment.tooltip=Comment
Comment.image=
Comment.description=Comment
Uncomment.label=&Uncomment
Uncomment.tooltip=Uncomment
Uncomment.image=
Uncomment.description=Uncomment
ToggleComment.label=Togg&le Comment
ToggleComment.tooltip=Toggle Comment
ToggleComment.image=
ToggleComment.description=Toggle Comment
AddBlockComment.label=Add &Block Comment
AddBlockComment.tooltip=Add Block Comment
AddBlockComment.image=
AddBlockComment.description=Add Block Comment
RemoveBlockComment.label=Remove Bloc&k Comment
RemoveBlockComment.tooltip=Remove Block Comment
RemoveBlockComment.image=
RemoveBlockComment.description=Remove Block Comment
CleanupDocument.label=C&leanup Document...
CleanupDocument.tooltip=Cleanup Document
CleanupDocument.image=
CleanupDocument.description=Cleanup Document
FormatDocument.label=&Document
FormatDocument.tooltip=Format Document
FormatDocument.image=
FormatDocument.description=Format Document
FormatActiveElements.label=Act&ive Elements
FormatActiveElements.tooltip=Format Active Elements
FormatActiveElements.image=
FormatActiveElements.description=Format Active Elements
OpenFileFromSource.label=Op&en Selection
OpenFileFromSource.tooltip=Open an editor on the selected link
OpenFileFromSource.image=
OpenFileFromSource.description=Open an editor on the selected link
ShowTooltipDesc.label=Show &Tooltip Description
ShowTooltipDesc.tooltip=Displays the hover help for the selected element
ShowTooltipDesc.image=
ShowTooltipDesc.description=Displays the hover help for the selected element
StructureSelectEnclosing.label=&Enclosing Element
StructureSelectEnclosing.tooltip=Expand selection to include enclosing element
StructureSelectEnclosing.description=Expand selection to include enclosing element
StructureSelectNext.label=&Next Element
StructureSelectNext.tooltip=Expand selection to include next sibling
StructureSelectNext.description=Expand selection to include next sibling
StructureSelectPrevious.label=&Previous Element
StructureSelectPrevious.tooltip=Expand selection to include previous sibling
StructureSelectPrevious.description=Expand selection to include previous sibling
StructureSelectHistory.label=&Restore Last Selection
StructureSelectHistory.tooltip=Restore last selection
StructureSelectHistory.description=Restore last selection
Save.label=&Save
An_error_has_occurred_when_ERROR_=IWAK0018E An error has occurred when retrieving resources for the source editor. The Eclipse Workbench installation may have been corrupted.
No_content_model_found_UI_=No content model found
## save as problems (next two) should match what is in workbench
Problems_During_Save_As_UI_=Problems During Save As...
Save_could_not_be_complete_UI_=Save could not be completed.
2concat=Macro name \"{0}\" is already in use
3concat=Close with \"{0}\"
5concat=Close with \"></{0}>\"
8concat=<{0}> has no known child tags
27concat=No known child tag names of <{0}> begin with \"{1}\"
28concat=<{0}> has no known child tags
15concat=End with {0}>
17concat=End with \"</{0}>\"
18concat=The document element <{0}> is already present.
29concat=No definition was found for element <{0}> in {1}
20concat=No definition was found for element <{0}>
24concat=No content model found for {0}.
25concat=Element <{0}> is unknown.
30concat=<{0}> has no known child tags.
31concat=Element <{0}> is unknown.
11concat=No known child tag names of <{0}> begin with \"{1}\".
14concat=<{0}> has no known child tags.
9concat=Close with {0}
6concat=comment {0}
Capitalization_style_of_pr_UI_=Capitalization style of proposals:
CSS_Cleanup_UI_=CSS Cleanup
Cleanup_UI_=Cleanup
Identifier_case__UI_=Identifier case:
Property_name_case__UI_=Property name case:
model_did_not_existing_dur_UI_=model did not existing during reload request in FileModelProvider
new_File_was_null_after_mo_UI_=new File was null after move ... should be impossible
Property_value_case__UI_=Property value case:
Selector_tag_name_case__UI_=Selector tag name case:
Quote_values_UI_=Quote values
The_line_width_must_be_an__EXC_=IWAK0019E The line width must be an integer
Incorrect_call_UI_=Incorrect call
1concat_ERROR_=IWAK0020E {0} has no available child tags.
Edit_Document_Type_UI_=Edit Document Type
DocumentType_name__UI_=DocumentType name:
Public_identifier__UI_=Public identifier:
System_reference__UI_=System reference:
All_UI_=All
Tag_UI_=Tag
Attribute_UI_=Attribute
Attribute_Value_UI_=Attribute Value
1concat={0} has no available child tags.
Text_Shift_Right_UI_=Text Shift Right
Text_Shift_Left_UI_=Text Shift Left
4concat_EXC_=IWAK0021E {0} is in use.
7concat_ERROR_=IWAK0022E One or more characters could not be decoded according to the encoding parameter {1}. Position of first invalid character is {0}.
8concat_ERROR_=IWAK0023E One or more characters could not be decoded according to the encoding parameter {1}. Position of first invalid character is greater than {0}.
12concat_ERROR_=IWAK0024E {0}  was in use or open in an editor.
23concat_EXC_=IWAK0025E Resource {0} does not exist.
32concat_EXC_=IWAK0026E Editor could not be open on {0}
Add..._UI_=Add...
Error_opening_file_UI_=Error opening file
Error_during_save_UI_=Error during save
Operation_could_not_be_com_ERROR_=IWAK0027E Operation could not be completed. Be sure to save your work in any open editors.
Java_Content_Assist_is_not_UI_=Java Content Assist is not available for the current cursor location
End_with=End with
Close_with=Close with
4concat=''{0}'' is not a valid input
## The following strings are for "XML->XML Source" Preferences and "Web Tools->Source" Preferences
Formatting_UI_=Formatting
Line_width__UI_=Line &width:
Clear_all_blank_lines_UI_=Clear all &blank lines
Source_page_UI_=Source page
Show_line_numbers_UI_=Show line &numbers
Show_overview_ruler_UI_=Show o&verview ruler
Tab_width__UI_=&Tab width:
Content_assist_UI_=Content assist
Automatically_make_suggest_UI_=Automatically ma&ke suggestions
Prompt_when_these_characte_UI_=P&rompt when these characters are inserted:
Preferred_markup_case_UI_=Preferred markup case for content assist, and code generation
Tag_names__UI_=Tag names:
Tag_names_Upper_case_UI_=&Uppercase
Tag_names_Lower_case_UI_=&Lowercase
Attribute_names__UI_=Attribute names:
Attribute_names_Upper_case_UI_=U&ppercase
Attribute_names_Lower_case_UI_=L&owercase
## The following strings are for "XML->XML Source->Macros" Preferences and "Web Tools->Source->Macros" Preferences
New..._UI_=Ne&w...
Copy..._UI_=&Copy...
Rename..._UI_=&Rename...
Remove_UI_=Re&move
Enabled_at_Location__UI_=&Enabled at Location:
Content__UI_=Co&ntent:
Set_Cursor_Position_UI_=&Set Cursor Position
Macro_name__UI_=&Macro name:
New_macro_name__UI_=New &macro name:
## The following strings are for "XML->XML Source->XML Style" Preferences, "Web Tools->Source->HTML Style" Preferences, and "Web Tools->Source->JavaScript Style" Preferences
Content_type__UI_=Co&ntent type:
Foreground_UI_=&Foreground:
Background_UI_=&Background:
Bold_UI_=B&old
Restore_Default_UI_=&Restore Default
Sample_text__UI_=&Sample text:
## The following strings are for the XML/HTML Cleanup dialog
As-is_UI_=As-is
Lower_UI_=Lower
Upper_UI_=Upper
Tag_name_case_for_HTML_UI_=Tag name case for HTML:
Tag_name_case_As-is_UI_=&As-is
Tag_name_case_Lower_UI_=&Lower
Tag_name_case_Upper_UI_=&Upper
Attribute_name_case_for_HTML_UI_=Attribute name case for HTML:
Attribute_name_case_As-is_UI_=A&s-is
Attribute_name_case_Lower_UI_=L&ower
Attribute_name_case_Upper_UI_=U&pper
Compress_empty_element_tags_UI_=&Compress empty element tags
Insert_required_attributes_UI_=Insert &required attributes
Insert_missing_tags_UI_=&Insert missing tags
Quote_attribute_values_UI_=&Quote attribute values
Format_source_UI_=&Format source
Convert_EOL_codes_UI_=Convert line &delimiters to
EOL_Windows_UI=&Windows
EOL_Unix_UI=U&NIX
EOL_Mac_UI=&Mac
CSS_Cleanup_..._UI_=&CSS Cleanup ...
##
AddBreakpoint.label=Add &Breakpoint
AddBreakpoint.tooltip=Add Breakpoint
AddBreakpoint.description=Add Breakpoint
AddBreakpoint.error.dialog.title=Add Breakpoint
AddBreakpoint.error.dialog.message=Cannot add breakpoint
##
ToggleBreakpoint.label=Toggle Breakpoint
ToggleBreakpoint.tooltip=Toggle Breakpoint
ToggleBreakpoint.description=Toggle Breakpoint
##
EnableBreakpoint.label=Enable Breakpoint
EnableBreakpoint.tooltip=Enable Breakpoint
EnableBreakpoint.description=Enable Breakpoint
##
DisableBreakpoint.label=Disable Breakpoint
DisableBreakpoint.tooltip=Disable Breakpoint
DisableBreakpoint.description=Disable Breakpoint
##
ManageBreakpoints.add.label=Add &Breakpoint
ManageBreakpoints.remove.label=Remove Breakpoint
ManageBreakpoints.tooltip=Add/Remove Breakpoint
ManageBreakpoints.error.adding.title1=Add Breakpoint
ManageBreakpoints.error.adding.message1=Cannot add breakpoint
ManageBreakpoints.error.removing.title1=Remove Breakpoint
ManageBreakpoints.error.removing.message1=Cannot remove breakpoint
ManageBreakpoints.error.retrieving.message=Retrieving markers failed:
Hide_Hover_Help_1=Hide Hover Help
Show_Hover_Help_2=Show Hover Help
&Hover_Help_3=&Hover Help
AbstractColorPageDescription=Customize the syntax highlighting by selecting the type of text whose style you want to customize from either the combo box or the sample text area
JSPSourcePreferencePageDescription=Embedded content type\'s source preferences will be used. Select the file type for customization
Creating_or_saving_files=Creating or saving files
End-of-line_code_desc=The following line delimiter will apply:
End-of-line_code=&Line delimiter:
Creating_files=Creating files
Encoding_desc=The following encoding will apply:
Encoding=En&coding:
XMLMacroPageDescription=Create, remove or edit Macros
&Split_lines_1=&Split lines
Split_&multiple_attributes_2=Split &multiple attributes each on a new line
&Indent_using_tabs_3=&Indent using tabs
Bad_attribute_name_1=Bad attribute name
## tag info
Element____1=Element :
Content_Model____2=Content Model :
Attribute____3=Attribute :
Data_Type____4=Data Type :
Enumerated_Values____5=Enumerated Values :
## 
Source_Menu_UI=&Source
Highlight_Current_Line=Hi&ghlight current line
Show_Attributes=Show Attributes
Grammar_Constraints=Grammar Constraints
Use_inferred_grammar_in_absence_of_DTD/Schema=Use inferred grammar in absence of DTD/Schema
Text_font=Text font:
C&hange...=C&hange...
NodeName_may_not_have_nested_content={0} may not have nested content
##
Editor.Cut.label=Cu&t@Ctrl+X
Editor.Cut.tooltip=Cut
Editor.Cut.image=
Editor.Cut.description=Cut

Editor.Copy.label=&Copy@Ctrl+C
Editor.Copy.tooltip=Copy
Editor.Copy.image=
Editor.Copy.description=Copy

Editor.Paste.label=&Paste@Ctrl+V
Editor.Paste.tooltip=Paste
Editor.Paste.image=
Editor.Paste.description=Paste

Editor.Delete.label=&Delete@Delete
Editor.Delete.tooltip=Delete
Editor.Delete.image=
Editor.Delete.description=Delete
## These are copied from org.eclipse.ui.texteditor.EditorMessages.properties
## They are needed temporarily until CMVC defect 203158 / Bugzilla defect 20054 is fixed
Editor.ManageBookmarks.tooltip=Adds and Removes Bookmarks
Editor.ManageBookmarks.image=
Editor.ManageBookmarks.description=Adds and removes Bookmarks
Editor.ManageBookmarks.add.label=Add Boo&kmark...
Editor.ManageBookmarks.remove.label=Remove Boo&kmark
Editor.ManageBookmarks.add.dialog.title=Add Bookmark
Editor.ManageBookmarks.add.dialog.message=Enter Bookmark name
Editor.ManageBookmarks.error.dialog.title=Managing Bookmarks
Editor.ManageBookmarks.error.dialog.message=Problems managing bookmarks

Editor.ManageTasks.tooltip=Adds and Removes Tasks
Editor.ManageTasks.image=
Editor.ManageTasks.description=Adds and removes Tasks
Editor.ManageTasks.add.label=Add &Task...
Editor.ManageTasks.remove.label=Remove &Task
Editor.ManageTasks.add.dialog.title=Add Task
Editor.ManageTasks.add.dialog.message=Enter Task description
Editor.ManageTasks.error.dialog.title=Managing Tasks
Editor.ManageTasks.error.dialog.message=Problems managing tasks

# web content settings
UI_Description_of_role_of_following_DOCTYPE=Use the following default document type when no DOCTYPE is declared in a file:
UI_Default_HTML_DOCTYPE_ID___1=&Document type:
UI_CSS_profile___2=&CSS profile:
UI_Target_Device___3=&Target device:
UI_none=none
UI_Public_ID=Public ID:
UI_System_ID=System ID:
ERROR_CORE_CSSContentSettingsPropertyPage_is_instantiated_by_choosing_resource_except_any_file_1=CSSContentSettingsPropertyPage is instantiated by choosing resource except any file
ERROR_CORE_index_is_out_of_range_in_applySelectedPropertyValue()_in_class_CSSContentSettingsPropertyPage_2=index is out of range in applySelectedPropertyValue() in class CSSContentSettingsPropertyPage
ERROR_CORE_index_is_out_of_range_in_deleteNoneProperty()_in_class_CSSContentSettingsPropertyPage_3=index is out of range in deleteNoneProperty() in class CSSContentSettingsPropertyPage
ERROR_CORE_the_number_of_items_is_different_in_list_and_Combo__1=the number of items is different in list and Combo
#
ERROR_COREDEV_HTMLContentSettingsPropertyPage_is_instantiated_by_choosing_resource_except_any_file_1=HTMLContentSettingsPropertyPage is instantiated by choosing resource except any file
ERROR_COREDEV_index_is_out_of_range_in_applySelectedPropertyValue()_in_class_HTMLContentSettingsPropertyPage_2=index is out of range in applySelectedPropertyValue() in class HTMLContentSettingsPropertyPage
ERROR_COREDEV_index_is_out_of_range_in_deleteNoneProperty()_in_class_HTMLContentSettingsPropertyPage_3=index is out of range in deleteNoneProperty() in class HTMLContentSettingsPropertyPage
ERROR_COREDEV_ProjectContentSettingsPropertyPage_is_instantiated_by_choosing_resource_except_project_1=ProjectContentSettingsPropertyPage is instantiated by choosing resource except project
ERROR_COREDEV_index_is_out_of_range_in_applySelectedPropertyValue()_in_class_ProjectContentSettingsPropertyPage_2=index is out of range in applySelectedPropertyValue() in class ProjectContentSettingsPropertyPage
ERROR_COREDEV_index_is_out_of_range_in_deleteNoneProperty()_in_class_ProjectContentSettingsPropertyPage_3=index is out of range in deleteNoneProperty() in class ProjectContentSettingsPropertyPage
# jspf,jsf content settings
_UI_Content_Type_Label_=&Content type:
_UI_Language_Label_=&Language:
_UI_Character_Code_Label_=&Encoding:
_UI_IANA_=IANA:
_UI_Error_Msg_Content_Type_=Invalid Content Type
_UI_Error_Msg_Language_=Invalid Language
_UI_Description_J2EE_Project_=The properties for J2EE Web projects act as "project" default to be lookup when no properties are specified for a particular JSP fragment file.
_UI_Description_JSPF_File_=The properties are used instead of the page directive that cannot be specified in JSP fragment files. The project setting is used if you specify "none".

#
_UI_File_is_read_only=File {0} is read-only.
This_encoding_({0})_is_not_supported._The_default_encoding_({1})_will_be_used_instead._1=This encoding ({0}) is not supported. The default encoding ({1}) will be used instead.
This_encoding_({0})_is_not_supported._Continue_the_save_using_the_default_({1})__2=This encoding ({0}) is not supported. Continue the save using the default ({1})?
#
cannot_convert_some_characters=The encoding ({0}) cannot convert some characters (such as the one in position {1}). Press ''OK'' to save anyway (and some characters will be converted to ''?'' in the saved file), or press ''Cancel'' to return to the editor.
cannot_convert_some_characters2=The encoding ({0}) cannot convert some characters. Press ''OK'' to save anyway (and some characters will be converted to ''?'' in the saved file), or press ''Cancel'' to return to the editor.
# The following lines copied from org\eclipse\ui\editors\text\TextEditorMessages.properties in org.eclipse.ui plugin
Editor.error.save.message=Save could not be completed. {0}
Editor.error.save.title=Problems During Save As...
Editor.warning.save.delete=The original file ''{0}'' has been deleted.
FileDocumentProvider.task.saving=Saving
Set_color_and_visibilty_of_editor_annotations=Set color and visibilty of editor annotations:
Analyze_annotations_while_typing=Analyze syntax &while typing
Analyze_validity_while_typing=Analyze &validity while typing
Annotation_Presentation=Annotation Presentation:
Show_in_text=Show in &text
Show_in_overview_ruler=Show in overview &ruler
Color=C&olor
Show_hover_help=Show hov&er help
#
Multiple_errors=Multiple annotations found at this line:
Ill-formed_syntax=Ill-formed syntax:
Style_Rule_declares_nothing=Style Rule declares nothing
Style_Declaration_declares_nothing=Style Declaration declares nothing
Attribute_{0}_is_missing_a_value=Attribute \"{0}\" is missing a value
Attribute_{0}_has_no_value=Attribute \"{0}\"  has no value
End_tag_has_attributes=End tag has attributes
Invalid_value_{0}=Invalid value \"{0}\"
Unknown_attribute_{0}=Unknown attribute \"{0}\"
Missing_required_attribute_{0}=Missing required attribute \"{0}\"
Unknown_element_{0}=Unknown element \"{0}\"
Missing_end_tag_{0}=Missing end tag \"{0}\"
Missing_start_tag_{0}=Missing start tag \"{0}\"

# actions
Previous_error=Go to Previous Problem
Next_error=Go to Next Problem
# Annotation Types
AnnotationTypes.Errors=Errors
AnnotationTypes.Warnings=Warnings
AnnotationTypes.Tasks=Tasks
AnnotationTypes.SearchResults=Search Results
AnnotationTypes.Bookmarks=Bookmarks
AnnotationTypes.Others=Others

Editor.ConvertToWindows.label=&Windows
Editor.ConvertToWindows.tooltip=Converts line delimiters to Windows
Editor.ConvertToWindows.image=
Editor.ConvertToWindows.description=Converts line delimiters to Windows

Editor.ConvertToUNIX.label=&UNIX
Editor.ConvertToUNIX.tooltip=Converts line delimiters to UNIX
Editor.ConvertToUNIX.image=
Editor.ConvertToUNIX.description=Converts line delimiters to UNIX

Editor.ConvertToMac.label=&Mac
Editor.ConvertToMac.tooltip=Converts line delimiters to Mac
Editor.ConvertToMac.image=
Editor.ConvertToMac.description=Converts line delimiters to Mac

Editor.ToggleInsertMode.label=Sma&rt Insert Mode

EditPreferences.label=Pre&ferences...
EditPreferences.tooltip=Display preferences for this editor
EditPreferences.description=Display preferences for this editor
##########################################################################
# These strings are used in Workbench menu bar
##########################################################################
ExpandSelectionToMenu.label=E&xpand Selection To
SourceMenu.label=&Source
FormatMenu.label=F&ormat
ConvertLineDelimitersMenu.label=Co&nvert Line Delimiters to
FindOccurrences.label=O&ccurrences in File
#
FindOccurrencesActionProvider.0=Current selection does not resolve to a searchable element
RemoveAction.0=Remove Property
ShowPropertiesAction.0=P&roperties
StructuredContentOutlineConfiguration.0=Collapse All
StructuredContentOutlineConfiguration.1=Link with Editor
AbstractOpenOn.0=Current text selection does not resolve to a file
FormatActionDelegate.jobName=Formatting documents
FormatActionDelegate.errorStatusMessage=Exceptions occurred while formatting documents
FormatActionDelegate.3=Formatting {0}
FormatActionDelegate.4=Exception occurred while formatting document {0}
FormatActionDelegate.5=MalformedInputException occurred while formatting document {0}
ConvertLineDelimitersToCRLFActionDelegate.jobName=Converting line delimiters
ConvertLineDelimitersToCRLFActionDelegate.errorStatusMessage=Exceptions occurred while converting line delimiters
ConvertLineDelimitersToCRLFActionDelegate.3=Converting line delimiters for {0}
ConvertLineDelimitersToCRLFActionDelegate.4=Exception occurred while converting line delimiters for document {0}
TranslucencyPreferenceTab.0=Read-Only text style
TranslucencyPreferenceTab.1=Read-Only contrast percentage:
StructuredTextEditorPreferencePage.1=Line number foreground
StructuredTextEditorPreferencePage.2=Matching brackets highlight
StructuredTextEditorPreferencePage.3=Current line highlight
StructuredTextEditorPreferencePage.4=Print margin
StructuredTextEditorPreferencePage.5=Link
StructuredTextEditorPreferencePage.6=The following preferences apply to the HTML, JSP, XML, and other source editors.
StructuredTextEditorPreferencePage.7=S&upport hyperlink style navigation for "Open Declaration"
StructuredTextEditorPreferencePage.8=Hyperlink style navigation key &modifier:
StructuredTextEditorPreferencePage.15=The modifier 'Shift' is not allowed because 'Shift' + click sets a new selection.
StructuredTextEditorPreferencePage.16=Displayed &tab width:
StructuredTextEditorPreferencePage.17=Print margin col&umn:
StructuredTextEditorPreferencePage.18=Show overview &ruler
StructuredTextEditorPreferencePage.19=Show lin&e numbers
StructuredTextEditorPreferencePage.20=Highlight &matching brackets
StructuredTextEditorPreferencePage.21=Hi&ghlight current line
StructuredTextEditorPreferencePage.22=Sho&w print margin
StructuredTextEditorPreferencePage.23=Appearance co&lor options:
StructuredTextEditorPreferencePage.24=C&olor:
StructuredTextEditorPreferencePage.25=Always &show Quick Diff coloring
StructuredTextEditorPreferencePage.26=Show changes using &characters instead of colors (on line number bar only)
StructuredTextEditorPreferencePage.27=Quickdiff &reference providers:
StructuredTextEditorPreferencePage.28=Make &Default
StructuredTextEditorPreferencePage.29=(default)
StructuredTextEditorPreferencePage.30=A&nalyze annotations while typing
StructuredTextEditorPreferencePage.31=Show &quick fixables
StructuredTextEditorPreferencePage.32=Annotation presentation options
StructuredTextEditorPreferencePage.33=Annotations
StructuredTextEditorPreferencePage.34=Nav&igation
StructuredTextEditorPreferencePage.35=&Quick Diff
StructuredTextEditorPreferencePage.36=(default)
StructuredTextEditorPreferencePage.37=Empty input
StructuredTextEditorPreferencePage.38=is not a valid input.
StructuredTextEditorPreferencePage.39=is not a valid input.
TaskTagPreferenceTab.0=High
TaskTagPreferenceTab.1=Low
TaskTagPreferenceTab.2=Normal
TaskTagPreferenceTab.3=N/A
TaskTagPreferenceTab.5=Task Tag
TaskTagPreferenceTab.6=Tag
TaskTagPreferenceTab.7=Priority
TaskTagPreferenceTab.8=High
TaskTagPreferenceTab.9=Normal
TaskTagPreferenceTab.10=Low
TaskTagPreferenceTab.12=Tag
TaskTagPreferenceTab.13=Priority
TaskTagPreferenceTab.14=New...
TaskTagPreferenceTab.15=Edit...
TaskTagPreferenceTab.16=Remove
TaskTagPreferenceTab.17=Move Up
TaskTagPreferenceTab.18=Move Down
TaskTagPreferenceTab.19=Note: changes may not be visible until the workspace is rebuilt
TaskTagPreferenceTab.20=Task Tags
TaskTagPreferenceTab.22=Task Tags Settings Changed
TaskTagPreferenceTab.23=The task tags settings have changed.  A full rebuild is required to make changes effective.  Do the full build now?
TaskTagPreferenceTab.24=Yes
TaskTagPreferenceTab.25=No
TaskTagPreferenceTab.26=Cancel
TaskTagPreferenceTab.27=Detecting tasks for task tags
TaskTagPreferenceTab.28=build aborted
TaskTagPreferenceTab.29=build completed
TaskTagPreferenceTab.30=build had errors
TaskTagPreferenceTab.31=Search for Task Tags
FilePreferencePage.0=Expand the tree to edit preferences for a specific content type.
NoModificationCompletionProposal.0=No corrections available
ToggleBreakpointAction.0=Toggle &Breakpoints
ManageBreakpointAction.0=&Enable Breakpoints
ManageBreakpointAction.1=&Disable Breakpoints
EditBreakpointAction.0=Breakpoint &Properties...
ReconcileStepForMarkup.0=Missing closing quote
ReconcileStepForMarkup.1=Missing quotes for attribute value
ReconcileStepForMarkup.2=A tagname cannot start with a space
ReconcileStepForMarkup.3=Empty tags are not allowed
ReconcileStepForMarkup.4=Namespaces are not allowed in a Processing Instruction target
ReconcileStepForMarkup.5=Spaces are not allowed before a Processing Instruction
ReconcileStepForMarkup.6=Tag missing closing bracket '>'
## Used in Structured Text Editor Preference Page / Hovers Tab
TextHoverPreferenceTab.title=Hovers
TextHoverPreferenceTab.annotationRollover=&Enable annotation roll-over (on new editors)
TextHoverPreferenceTab.showAffordance=&Show affordance in hover on how to make it sticky
TextHoverPreferenceTab.hoverPreferences=Text &Hover key modifier preferences:
TextHoverPreferenceTab.enabled=&Enabled
TextHoverPreferenceTab.keyModifier=Pressed key &modifier while hovering:
TextHoverPreferenceTab.description=Description:
TextHoverPreferenceTab.modifierIsNotValid=Modifier ''{0}'' is not valid.
TextHoverPreferenceTab.modifierIsNotValidForHover=Modifier ''{0}'' for ''{1}'' hover is not valid.
TextHoverPreferenceTab.duplicateModifier=''{0}'' hover uses the same modifier as ''{1}'' hover.
TextHoverPreferenceTab.nameColumnTitle=Text Hover Name
TextHoverPreferenceTab.modifierColumnTitle=Pressed Key Modifier While Hovering
TextHoverPreferenceTab.delimiter=+
TextHoverPreferenceTab.insertDelimiterAndModifierAndDelimiter=\ + {0} +
TextHoverPreferenceTab.insertModifierAndDelimiter=\ {0} +
TextHoverPreferenceTab.insertDelimiterAndModifier=\ + {0}
combinationHover.label=Combined Hover
combinationHover.desc=Tries the hovers in the sequence listed in the table below this one and uses the one which fits best for the selected element and the current context.
problemHover.label=Problem Description
problemHover.desc=Shows the description of the selected problem.
documentationHover.label=Documentation Description
documentationHover.desc=Shows the documentation of the selected element.
annotationHover.label=Annotation Description
annotationHover.desc=Shows the description of the selected annotation.
EditStructuredTextEditorPreferencesAction.0=Editor Preferences
StructuredTextEditorPreferencePage.0=Appearance
BasicFindOccurrencesAction.0=region match:
BasicSearchLabelProvider.0=line
PreferenceManager.0=Original Error:
NavigationPreferenceTab.0=Modifier ''{0}'' is not valid.
OccurrencesSearchQuery.0={0} - {1} Occurrences in {2}
OccurrencesSearchQuery.1={0} - 1 Occurrence in {1}
OccurrencesSearchQuery.2=file
EOL_Windows=Windows
EOL_Unix=UNIX
EOL_Mac=Mac
EOL_NoTranslation=No translation
FileModelProvider.0=Error reloading {0}
JFaceNodeAdapter.0=Update Outline
Information=Information
PluginAction.operationNotAvailableMessage=The chosen operation is not currently available.
ShowView.errorTitle=Problems Showing View
