###############################################################################
# Copyright (c) 2000, 2017 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
#     Sebastian Davids (sdavids@gmx.de)
#        - Fix for Bug 57087
#        - Fix for Bug 138034 [Preferences] Label decorations page - extra space
#        - Fix for Bug 128529
#     Semion Chichelnitsky (semion@il.ibm.com) - bug 278064
#     Tristan Hume - <trishume@gmail.com> -
#     		Fix for Bug 2369 [Workbench] Would like to be able to save workspace without exiting
#     		Implemented workbench auto-save to correctly restore state in case of crash.
#     Andrey Loskutov <loskutov@gmx.de> - Bug 445538
#     Alain Bernard <alain.bernard1224@gmail.com> - Bug 281490
#     Lars Vogel <Lars.Vogel@vogella.com> - Bug 407432
#     Patrik Suzzi <psuzzi@gmail.com> - Bug 491572, 491785, 501811, 511198
###############################################################################

# package: org.eclipse.ui

PlatformUI_NoWorkbench = Workbench has not been created yet.

Workbench_CreatingWorkbenchTwice = Workbench already exists and cannot be created again.

# ==============================================================================
# Workbench Actions
# ==============================================================================

# --- File Menu ---
NewWizardAction_text = &Other...
NewWizardAction_toolTip = New
CloseAllAction_text = C&lose All
CloseAllAction_toolTip = Close All
CloseOthersAction_text = Close O&thers
CloseOthersAction_toolTip = Close Others
CloseAllSavedAction_text = Cl&ose All Saved
CloseAllSavedAction_toolTip = Close All Saved
CloseEditorAction_text = &Close
CloseEditorAction_toolTip = Close
NewEditorAction_text=New &Editor
NewEditorAction_tooltip=New Editor
SaveAction_text = &Save
SaveAction_toolTip = Save
SaveAs_text = Save &As...
SaveAs_toolTip = Save As
SaveAll_text = Sav&e All
SaveAll_toolTip = Save All
Workbench_revert = Rever&t
Workbench_revertToolTip = Revert
Workbench_missingPropertyMessage=Unable to relaunch the platform with the current workspace because the ''{0}'' property has not been set.
Workbench_move = Mo&ve...
Workbench_moveToolTip = Move
Workbench_rename = Rena&me...
Workbench_renameToolTip = Rename
Workbench_refresh = Re&fresh
Workbench_refreshToolTip = Refresh
Workbench_properties = P&roperties
Workbench_propertiesToolTip = Properties
Workbench_print = &Print...
Workbench_printToolTip = Print
ExportResourcesAction_text = E&xport...
ExportResourcesAction_fileMenuText = Exp&ort...
ExportResourcesAction_toolTip = Export
ImportResourcesAction_text = &Import...
ImportResourcesAction_toolTip = Import
OpenRecent_errorTitle = Problems opening editor
OpenRecent_unableToOpen = Unable to open ''{0}''.
Exit_text = E&xit
Exit_toolTip = Exit Workbench


# --- Edit Menu ---
Workbench_undo = &Undo
Workbench_undoToolTip = Undo
Workbench_redo = &Redo
Workbench_redoToolTip = Redo
Workbench_cut = Cu&t
Workbench_cutToolTip = Cut
Workbench_copy = &Copy
Workbench_copyToolTip = Copy
Workbench_paste = &Paste
Workbench_pasteToolTip = Paste
Workbench_delete = &Delete
Workbench_deleteToolTip = Delete
Workbench_selectAll = Select &All
Workbench_selectAllToolTip = Select All
Workbench_findReplace = &Find/Replace...
Workbench_findReplaceToolTip = Find/Replace

# --- Navigate Menu ---
Workbench_goInto = Go &Into
Workbench_goIntoToolTip = Go Into
Workbench_back = &Back
Workbench_backToolTip = Back
Workbench_forward = &Forward
Workbench_forwardToolTip = Forward
Workbench_up = &Up One Level
Workbench_upToolTip = Up
Workbench_next = Ne&xt
Workbench_nextToolTip = Next
Workbench_previous = Pre&vious
Workbench_previousToolTip = Previous

NavigationHistoryAction_forward_text=&Forward
NavigationHistoryAction_forward_toolTip=Forward
NavigationHistoryAction_backward_text=&Back
NavigationHistoryAction_backward_toolTip=Back
NavigationHistoryAction_forward_toolTipName=Forward to {0}
NavigationHistoryAction_backward_toolTipName=Back to {0}
NavigationHistoryAction_locations = {0} ({1} locations)

Workbench_showInNoTargets = <No Applicable Views>
Workbench_showInNoPerspectives = <No Applicable Perspectives>
Workbench_noApplicableItems = <No Applicable Items>

OpenPreferences_text = &Preferences
OpenPreferences_toolTip = Preferences

# --- Window Menu ---
PerspectiveMenu_otherItem = &Other...
SelectPerspective_shellTitle = Open Perspective
SelectPerspective_selectPerspectiveHelp = Use F2 to display the description for a selected perspective.
SelectPerspective_noDesc = No description available.
SelectPerspective_open_button_label=&Open
Workbench_showPerspectiveError = Problems opening perspective ''{0}''
ChangeToPerspectiveMenu_errorTitle = Problems Changing Perspective

ShowView_title = &Other...
ShowView_shellTitle = Show View
ShowView_selectViewHelp = Use F2 to display the description for a selected view.
ShowView_noDesc = No description available.
ShowView_open_button_label=&Open

ToggleEditor_hideEditors = Hide &Editors
ToggleEditor_showEditors = Show &Editors
ToggleEditor_toolTip = Hide/Show Editors

LockToolBarAction_toolTip = Toggle Lock Toolbars

# --- Customize Perspective Dialog ---
EditActionSetsAction_text = Customi&ze Perspective...
EditActionSetsAction_toolTip = Customize Perspective
ActionSetSelection_customize = Customize Perspective - {0}
ActionSetDialogInput_viewCategory = Show View
ActionSetDialogInput_perspectiveCategory = Open Perspective
ActionSetDialogInput_wizardCategory = New

Shortcuts_shortcutTab = Shortcuts
Shortcuts_selectShortcutsLabel = Select the shortcuts that you want to see added as cascade items to the following submenus.  The selections made will only affect the current perspective ({0}).
Shortcuts_availableMenus = &Submenus:
Shortcuts_availableCategories = Shortcut &Categories:
Shortcuts_allShortcuts = S&hortcuts:

ActionSetSelection_actionSetsTab = Action Set Availability
ActionSetSelection_selectActionSetsLabel = Select the action sets that you want to see added to the current perspective ({0}).  The details field identifies which menu items and/or toolbar items are added to the perspective by the selected action set.
ActionSetSelection_availableActionSets = Available &action sets:
ActionSetSelection_menubarActions = &Menubar details:
ActionSetSelection_toolbarActions = &Toolbar details:
ActionSetSelection_descriptionColumnHeader = Description
ActionSetSelection_menuColumnHeader = Shortcut

HideItems_itemInActionSet = Contributed by the <a>''{0}'' action set</a>.
HideItems_itemInUnavailableActionSet = This item cannot be made visible because the <a>action set ''{0}''</a> which contributes it is unavailable.
HideItems_itemInUnavailableCommand = This command cannot be made visible in this dialog.
HideItems_unavailableChildCommandGroup = This item cannot be made visible because all of its children are in the unavailable <a href="{0}">action set ''{1}''</a>.
HideItems_unavailableChildCommandGroups = This item cannot be made visible because all of its children are in unavailable action sets: {0}
HideItems_keyBindings = Key bindings: <a>{0}</a>.
HideItems_keyBindingsActionSetUnavailable = Key bindings (cannot be used because action set is unavailable): <a>{0}</a>
HideItems_noKeyBindings = No <a>key bindings</a>
HideItems_noKeyBindingsActionSetUnavailable = No key bindings (to edit, make action set available).
HideItems_commandGroupTitle = &Action Sets:
HideItems_turnOnActionSets = &Filter by action set


HideItems_dynamicItemName = [Dynamic]
HideItems_dynamicItemDescription = The labels and number of menu items contributed by this dynamic entry are variable.
HideItems_dynamicItemList = The items which are currently being displayed are:
HideItems_dynamicItemEmptyList = There are no items which are currently being displayed.

HideItemsCannotMakeVisible_dialogTitle = Make Item Visible
HideItemsCannotMakeVisible_unavailableCommandGroupText = ''{0}'' cannot be made visible because it is in the unavailable ''{1}'' action set.
HideItemsCannotMakeVisible_unavailableCommandItemText = ''{0}'' command cannot be made visible in this dialog.
HideItemsCannotMakeVisible_switchToCommandGroupTab = Would you like to switch to the Action Set Availability tab?
HideItemsCannotMakeVisible_unavailableChildrenText = ''{0}'' cannot be made visible because all of its children are in unavailable action sets.

HideMenuItems_menuItemsTab = Menu Visibility
HideMenuItems_chooseMenuItemsLabel = Choose which menu items to display.
HideMenuItems_menuStructure = &Menu Structure:

HideToolBarItems_toolBarItemsTab = Tool Bar Visibility
HideToolBarItems_chooseToolBarItemsLabel = Choose which tool bar items to display.
HideToolBarItems_toolBarStructure = &Tool Bar Structure:

SavePerspective_text = Save Perspective &As...
SavePerspective_toolTip = Save Perspective As
SavePerspective_shellTitle = Save Perspective As...
SavePerspective_saveButtonLabel = &Save
SavePerspectiveDialog_description = Enter or select a name to save the current\nperspective as.
SavePerspective_name = &Name:
SavePerspective_existing = &Existing Perspectives:
SavePerspective_overwriteTitle = Overwrite Perspective
SavePerspective_overwriteQuestion = A perspective with the name ''{0}'' already exists. Do you want to overwrite?
SavePerspective_singletonQuestion = The current perspective can only be opened once and cannot be saved using a new name. Do you want to overwrite?
SavePerspective_errorTitle = Cannot Save Perspective
SavePerspective_errorMessage = Invalid Perspective Descriptor

ResetPerspective_text = &Reset Perspective...
ResetPerspective_toolTip = Reset Perspective
ResetPerspective_message = Do you want to reset the current {0} perspective to its defaults?
ResetPerspective_title = Reset Perspective
RevertPerspective_note='Revert' removes the customization from the selected perspective.\nThis only applies to newly opened perspectives.

RevertPerspective_title = Reset Perspective
RevertPerspective_message = Do you want to reset the current {0} perspective to its saved state?
RevertPerspective_option = &Also discard perspective's customization

ClosePerspectiveAction_text = &Close Perspective
ClosePerspectiveAction_toolTip = Close Perspective
CloseAllPerspectivesAction_text = Close A&ll Perspectives
CloseAllPerspectivesAction_toolTip = Close All Perspectives

OpenInNewWindowAction_text = Open in &New Window
OpenInNewWindowAction_toolTip = Open in New Window
OpenInNewWindowAction_errorTitle = Problems Opening New Window
CycleEditorAction_next_text = Next &Editor
CycleEditorAction_next_toolTip = Next Editor
CycleEditorAction_prev_text = P&revious Editor
CycleEditorAction_prev_toolTip = Previous Editor
CycleEditorAction_header=Editors
CyclePartAction_next_text = Next &View
CyclePartAction_next_toolTip = Next View
CyclePartAction_prev_text = Previ&ous View
CyclePartAction_prev_toolTip = Previous View
CyclePartAction_header = Views
CyclePartAction_editor = Editor
CyclePerspectiveAction_next_text = Next &Perspective
CyclePerspectiveAction_next_toolTip = Next Perspective
CyclePerspectiveAction_prev_text = Previo&us Perspective
CyclePerspectiveAction_prev_toolTip = Previous Perspective
CyclePerspectiveAction_header=Perspectives
ActivateEditorAction_text = &Activate Editor
ActivateEditorAction_toolTip = Activate Editor
MaximizePartAction_toolTip = Toggles Maximize/Restore State of Active View or Editor
MinimizePartAction_toolTip = Minimizes the Active View or Editor
# --- Filtered Table Base ---
FilteredTableBase_Filter=Filter


# --- Help Menu ---
AboutAction_text = &About {0}
AboutAction_toolTip = About {0}
HelpContentsAction_text = &Help Contents
HelpContentsAction_toolTip= Help Contents
HelpSearchAction_text = S&earch
HelpSearchAction_toolTip= Search Help
DynamicHelpAction_text = &Show Contextual Help
DynamicHelpAction_toolTip = Show Contextual Help
AboutDialog_shellTitle = About {0}
AboutDialog_defaultProductName =
AboutDialog_DetailsButton=&Installation Details
ProductInfoDialog_errorTitle = Problems Opening Link
ProductInfoDialog_unableToOpenWebBrowser = Unable to open web browser on {0}
PreferencesExportDialog_ErrorDialogTitle=Error
AboutPluginsDialog_shellTitle = About {0} Plug-ins
AboutPluginsDialog_pluginName = Plug-in Name
AboutPluginsDialog_pluginId = Plug-in Id
AboutPluginsDialog_version = Version
AboutPluginsDialog_provider = Provider
AboutPluginsDialog_signed = Signed
AboutPluginsDialog_state_installed = Installed
AboutPluginsDialog_state_resolved = Resolved
AboutPluginsDialog_state_starting = Starting
AboutPluginsDialog_state_stopping = Stopping
AboutPluginsDialog_state_uninstalled = Uninstalled
AboutPluginsDialog_state_active = Active
AboutPluginsDialog_state_unknown = Unknown State
AboutPluginsDialog_moreInfo = &Legal Info
AboutPluginsDialog_signingInfo_show = &Show Signing Info
AboutPluginsDialog_signingInfo_hide = &Hide Signing Info
AboutPluginsDialog_columns = C&olumns...
AboutPluginsDialog_errorTitle = Problems Opening File
AboutPluginsDialog_unableToOpenFile = Unable to find file {0} in plug-in {1}.
AboutPluginsDialog_filterTextMessage=type filter text
AboutPluginsPage_Load_Bundle_Data=Loading Bundle Data...
AboutFeaturesDialog_shellTitle = About {0} Features
AboutFeaturesDialog_featureName = Feature Name
AboutFeaturesDialog_featureId = Feature Id
AboutFeaturesDialog_version = Version
AboutFeaturesDialog_provider = Provider
AboutFeaturesDialog_moreInfo = &License
AboutFeaturesDialog_pluginsInfo = &Plug-in Details
AboutFeaturesDialog_columns = C&olumns...
AboutFeaturesDialog_noInformation = No further information is available for this feature.
AboutFeaturesDialog_pluginInfoTitle = Feature Plug-ins
AboutFeaturesDialog_pluginInfoMessage = Plug-ins contributed by feature: {0}
AboutFeaturesDialog_noInfoTitle = No Further Information
AboutFeaturesDialog_SimpleTitle=Features
AboutSystemDialog_browseErrorLogName = &View Error Log
AboutSystemDialog_copyToClipboardName = Copy &to Clipboard
AboutSystemDialog_noLogTitle = Error Log Not Found
AboutSystemDialog_noLogMessage = The error log was not found at {0}.  No errors have been reported in this workspace.
AboutSystemPage_FetchJobTitle=Configuration Fetch Job
AboutSystemPage_RetrievingSystemInfo=Retrieving system information...

# --- Shortcutbar ---
PerspectiveBarContributionItem_toolTip = {0} perspective
PerspectiveBarNewContributionItem_toolTip = Open Perspective

#--- Coolbar ---
WorkbenchWindow_HelpToolbar = Help
WorkbenchWindow_FileToolbar = File
WorkbenchWindow_NavigateToolbar = Navigate
WorkbenchWindow_searchCombo_toolTip = Enter help search expression and press Enter
WorkbenchWindow_searchCombo_text = Search help


WorkbenchWindow_close = &Close
WorkbenchPage_ErrorCreatingPerspective = Unable to create perspective ''{0}''.  There is no corresponding perspective extension.

SelectWorkingSetAction_text= Select &Working Set...
SelectWorkingSetAction_toolTip= Select a working set
EditWorkingSetAction_text= &Edit Active Working Set...
EditWorkingSetAction_toolTip= Edit the active working set
EditWorkingSetAction_error_nowizard_title= Edit Working Set
EditWorkingSetAction_error_nowizard_message= Can not edit the active working set.
ClearWorkingSetAction_text= Deselect Wor&king Set
ClearWorkingSetAction_toolTip= Deselect the active working set
WindowWorkingSets= &Window Working Sets
NoWorkingSet = N&o Working Sets
SelectedWorkingSets = Se&lected Working Sets
NoApplicableWorkingSets = No applicable working sets

# ==============================================================================
# Drill Actions
# ==============================================================================
GoHome_text = Go &Home
GoHome_toolTip = Home
GoBack_text = Go &Back
GoBack_toolTip = Back
GoInto_text = Go &Into
GoInto_toolTip = Go Into


ICategory_other = Other
ICategory_general = General

# ==============================================================================
# Wizards
# ==============================================================================
NewWizard_title = New
NewWorkingSet=New Working Set
NewWizardNewPage_description = The following resource creation wizards are available.
NewWizardNewPage_wizardsLabel = &Wizards:
NewWizardNewPage_showAll = &Show All Wizards.
WizardList_description = The following wizards are available.
Select = Select
NewWizardSelectionPage_description = Select a wizard
NewWizardShortcutAction_errorTitle = Problem Opening Wizard
NewWizardShortcutAction_errorMessage = The selected wizard could not be started.

NewWizardsRegistryReader_otherCategory = Other
NewWizardDropDown_text = &New Wizards

WizardHandler_menuLabel = {0}...
WorkbenchWizard_errorMessage = The selected wizard could not be started.
WorkbenchWizard_errorTitle = Problem Opening Wizard
WizardTransferPage_selectAll = &Select All
WizardTransferPage_deselectAll = &Deselect All
TypesFiltering_title = Select Types
TypesFiltering_message = Reduce selection to only files of &type(s):
TypesFiltering_otherExtensions = &Other extensions:
TypesFiltering_typeDelimiter = ,

# --- Import/Export ---
ImportExportPage_chooseImportWizard=Choose import wizard.
ImportExportPage_chooseExportWizard=Choose export wizard.

# --- Import ---
ImportWizard_title = Import
ImportWizard_selectWizard=&Select an import wizard:

# --- Export ---
ExportWizard_title = Export
ExportWizard_selectWizard=&Select an export wizard:
# --- New Project ---
NewProject_title = New Project

# ==============================================================================
# Preference Pages
# ==============================================================================
PreferenceNode_errorMessage = Unable to create the selected preference page.
PreferenceNode_NotFound = {0} not found
Preference_note = Note:

# --- Workbench ---
WorkbenchPreference_showMultipleEditorTabsButton = Show &multiple editor tabs
WorkbenchPreference_allowInplaceEditingButton = Allow in-place &system editors
WorkbenchPreference_useIPersistableEditorButton = Restore &editor state on startup
WorkbenchPreference_promptWhenStillOpenButton = Pr&ompt to save on close even if still open elsewhere
WorkbenchPreference_stickyCycleButton = Keep &next/previous editor, view and perspectives dialog open
WorkbenchPreference_RunInBackgroundButton=Always r&un in background
WorkbenchPreference_RunInBackgroundToolTip=Run long operations in the background where possible
WorkbenchPreference_HeapStatusButton = Sho&w heap status
WorkbenchPreference_HeapStatusButtonToolTip = Show the heap status area on the bottom of the window


# --- Appearance ---
ViewsPreferencePage_Theme=&Theme:
ViewsPreference_currentTheme = &Color and Font theme:
ViewsPreference_currentThemeDescription = Descr&iption:
ViewsPreference_currentThemeFormat = {0} (current)
ViewsPreference_enableAnimations = &Enable animations
ViewsPreference_useColoredLabels = &Use mixed fonts and colors for labels
ViewsPreference_visibleTabs_description = Visible tabs on overflow:
ViewsPreference_enableMRU = Show &most recently used tabs
ToggleFullScreenMode_ActivationPopup_Description=You have gone full screen. Use the Toggle Full Screen command ({0}) to deactivate.
ToggleFullScreenMode_ActivationPopup_Description_NoKeybinding=You have gone full screen. Use the Toggle Full Screen command to deactivate.
ToggleFullScreenMode_ActivationPopup_DoNotShowAgain=Do not show again
# --- File Editors ---
FileEditorPreference_fileTypes = File &types:
FileEditorPreference_add = &Add...
FileEditorPreference_remove = &Remove
FileEditorPreference_associatedEditors = Associated &editors:
FileEditorPreference_addEditor = A&dd...
FileEditorPreference_removeEditor = Re&move
FileEditorPreference_default = De&fault
FileEditorPreference_existsTitle = File Type Exists
FileEditorPreference_existsMessage = An entry already exists for that file type
FileEditorPreference_defaultLabel = (default)
FileEditorPreference_contentTypesRelatedLink = See <a>''{0}''</a> for content-type based file associations.
FileEditorPreference_isLocked = {0} (locked by ''{1}'' content type)

FileExtension_extensionEmptyMessage = The file extension cannot be empty
FileExtension_fileNameInvalidMessage = The file name cannot include the wild card character (*) in the current location
FilteredPreferenceDialog_Key_Scrolling=Key &Scrolling
FilteredPreferenceDialog_PreferenceSaveFailed=Preferences save failed.
FilteredPreferenceDialog_Resize = &Resize tree
FilteredPreferenceDialog_FilterToolTip = Additional Dialog Actions

FileExtension_fileTypeMessage =  Enter file type to add: (*.doc or report.doc for example)
FileExtension_fileTypeLabel = File &type:
FileExtension_shellTitle = Add File Type
FileExtension_dialogTitle = Define a New File Type

Choose_the_editor_for_file = Choose the editor for files of type ({0})
EditorSelection_chooseAnEditor = Choose an editor:
EditorSelection_internal = &Internal editors
EditorSelection_external = &External programs
EditorSelection_rememberEditor = &Use this editor for all ''{0}'' files
EditorSelection_rememberType = Use it for &all ''*.{0}'' files
EditorSelection_browse = &Browse...
EditorSelection_title = Editor Selection

# --- Perspectives ---
OpenPerspectiveMode_optionsTitle = Open a new perspective
OpenPerspectiveMode_sameWindow = In the &same window
OpenPerspectiveMode_newWindow = In a &new window

PerspectivesPreference_MakeDefault = Ma&ke Default
PerspectivesPreference_MakeDefaultTip = Make the Current Selection the Default Perspective
PerspectivesPreference_Reset = &Revert
PerspectivesPreference_ResetTip = Reverts the Current Selection to its Original Value
PerspectivesPreference_Delete = D&elete
PerspectivesPreference_DeleteTip = Delete a User Defined Perspective
PerspectivesPreference_available = Available &perspectives:
PerspectivesPreference_defaultLabel = {0} (default)
PerspectivesPreference_perspectiveopen_title=Delete Perspective
PerspectivesPreference_perspectiveopen_message=Are you sure you want to delete the ''{0}'' perspective? It has open instances.

PerspectiveLabelProvider_unknown = Unknown Element Type

OpenPerspectiveDialogAction_text=&Open Perspective...
OpenPerspectiveDialogAction_tooltip=Open Perspective

#---- General Preferences----
PreferencePage_noDescription = (No description available)
PreferencePageParameterValues_pageLabelSeparator = \ >\ 
ThemeChangeWarningText = A restart may be required for the theme change to take full effect.
ThemingEnabled = E&nable theming (requires restart)
# --- Workbench -----
WorkbenchPreference_openMode=Open mode
WorkbenchPreference_doubleClick=D&ouble click
WorkbenchPreference_singleClick=&Single click
WorkbenchPreference_singleClick_SelectOnHover=Select on &hover
WorkbenchPreference_singleClick_OpenAfterDelay=Open when using arrow &keys
WorkbenchPreference_noEffectOnAllViews=This preference may not take effect on all views

# --- Globalization -----
GlobalizationPreference_nlExtensions=&Unicode locale extensions:
GlobalizationPreference_layoutDirection=&Graphical layout direction:
GlobalizationPreference_bidiSupport=&Enable bidirectional support
GlobalizationPreference_textDirection=&Text direction:
GlobalizationPreference_defaultDirection=OS Default
GlobalizationPreference_ltrDirection=Left to right
GlobalizationPreference_autoDirection=Contextual
GlobalizationPreference_rtlDirection=Right to left
GlobalizationPreference_restartWidget=A restart is required for these preferences to take full effect.

# --- Fonts ---
FontsPreference_useSystemFont=&Use System Font

# --- Decorators ---
DecoratorsPreferencePage_description = Descriptio&n:
DecoratorsPreferencePage_decoratorsLabel = Available &label decorations:
DecoratorsPreferencePage_explanation = Label decorations show extra information about an item on its label or icon.\nSelect which additional decorations should be displayed.
DecoratorError = Exception in Decorator.
DecoratorWillBeDisabled = Exception in Decorator. The ''{0}'' decorator will be disabled.

# --- Startup preferences ---
StartupPreferencePage_label=&Plug-ins activated on startup:

# ==============================================================================
# Property Pages
# ==============================================================================
PropertyDialog_text = P&roperties
PropertyDialog_toolTip = Open Properties Dialog
PropertyDialog_messageTitle = Property Pages
PropertyDialog_noPropertyMessage = No property pages for {0}.
PropertyDialog_propertyMessage = Properties for {0}
PropertyPageNode_errorMessage = Unable to create the selected property page.

SystemInPlaceDescription_name = &In-Place Editor
SystemEditorDescription_name = &System Editor

# ==============================================================================
# Dialogs
# ==============================================================================
Error = Error
Information = Information
InstallationDialog_ShellTitle={0} Installation Details

Workbench_NeedsClose_Title = Restart Needed
Workbench_NeedsClose_Message = A required plug-in is no longer available and the Workbench needs to be restarted. You will be prompted to save if there is any unsaved work.

ErrorPreferencePage_errorMessage = An error has occurred when creating this preference page.

ListSelection_title = Selection Needed
ListSelection_message = Select the items:

SelectionDialog_selectLabel = &Select All
SelectionDialog_deselectLabel = &Deselect All

ElementTreeSelectionDialog_nothing_available=No entries available.

CheckedTreeSelectionDialog_nothing_available=No entries available.
CheckedTreeSelectionDialog_select_all=Select &All
CheckedTreeSelectionDialog_deselect_all=&Deselect All

# ==============================================================================
# Editor Framework
# ==============================================================================
EditorManager_saveResourcesMessage = Select the &resources to save:
EditorManager_saveResourcesOptionallyMessage = The following resources have been modified, but are still open elsewhere with identical changes. Closing will not lose those changes. Select the &resources to save now anyway:
EditorManager_saveResourcesTitle = Save Resources

# The parameter {0} stands for the status message

EditorManager_systemEditorError = System editor can only open file base resources.
EditorManager_siteIncorrect = Editor initialization failed: {0}.  Site is incorrect.
EditorManager_unknownEditorIDMessage = Unable to open editor, unknown editor ID: ''{0}''
EditorManager_errorOpeningExternalEditor = Unable to open external editor {0} ({1}).
EditorManager_operationFailed = {0} Failed
EditorManager_saveChangesQuestion = ''{0}'' has been modified. Save changes?
EditorManager_saveChangesOptionallyQuestion = ''{0}'' has been modified, but is still open elsewhere with identical changes. Closing this will not lose those changes. Would you like to save now anyway?
EditorManager_closeWithoutPromptingOption = Do not prompt to save on close when still open elsewhere
EditorManager_no_in_place_support=Unable to restore in-place editor. In-place support is missing.
EditorManager_no_input_factory_ID=No input factory ID found for editor id={0} name={1}
EditorManager_bad_element_factory=Cannot instantiate input element factory {0} for editor id={1} name={2}
EditorManager_openNewEditorLabel=&Open New Editor
EditorManager_no_persisted_state=No saved state can be found for editor id={0} name={1}
EditorManager_reuseEditorDialogTitle=Close Editor Automatically
EditorManager_wrong_createElement_result=Factory {0} returned a result from createElement that is not an IEditorInput for editor id={1} name={2}
EditorManager_create_element_returned_null=Factory {0} returned null from createElement for editor id={1} name={2}
EditorManager_missing_editor_descriptor=No editor descriptor for id {0}
EditorManager_backgroundSaveJobName=Saving {0}
EditorManager_largeDocumentWarning= The document you are trying to open is large. This may affect the stability of the application. Opening with an external program is recommended.

ExternalEditor_errorMessage = Error opening external editor ({0}).
Save = Save
Save_Resource = Save Resource
Saving_Modifications = Saving modifications
Save_All = Save All
Dont_Save = Don't Save

SaveableHelper_Save = &Save
SaveableHelper_Cancel = Cancel
SaveableHelper_Dont_Save = Do&n't Save

# ==============================================================================
# Perspective Framework
# ==============================================================================
OpenNewPageMenu_dialogTitle = Problems Opening Page
OpenNewPageMenu_unknownPageInput = Unknown Page Input

OpenNewWindowMenu_dialogTitle = Problems Opening Window
OpenNewWindowMenu_unknownInput = Unknown Window Input

OpenPerspectiveMenu_pageProblemsTitle = Problems Opening Perspective
OpenPerspectiveMenu_errorUnknownInput = Unknown Perspective Input

Perspective_localCopyLabel = <{0}>
WorkbenchPage_problemRestoringTitle = Restoring Problems

# ==============================================================================
# Views Framework
# ==============================================================================
ViewLabel_unknown = Unknown

# The parameter {0} stands for the status message
ViewFactory_initException = Could not create the view: {0}
ViewFactory_siteException = View initialization failed: {0}.  Site is incorrect.

# The parameter {0} stands for the view ID
ViewFactory_couldNotCreate = Could not create view: {0}

# ==============================================================================
# Workbench
# ==============================================================================
WorkbenchPage_UnknownLabel = <Unknown Label>

# These four keys are marked as unused by the NLS search, but they are indirectly used
# and should be removed.

PartPane_sizeLeft=&Left
PartPane_sizeRight=&Right
PartPane_sizeTop=&Top
PartPane_sizeBottom=&Bottom

PluginAction_operationNotAvailableMessage = The chosen operation is not currently available.
PluginAction_disabledMessage = The chosen operation is not enabled.
ActionDescriptor_invalidLabel = Unknown Label

XMLMemento_parserConfigError = Internal XML parser configuration error.
XMLMemento_ioError = Could not read content of XML file.
XMLMemento_formatError = Could not parse content of XML file.
XMLMemento_noElement = Could not find root element node of XML file.

StatusUtil_errorOccurred = An unexpected exception was thrown.

# --- Workbench Errors/Problems ---
WorkbenchWindow_exceptionMessage = Abnormal Workbench Condition
WorkbenchPage_AbnormalWorkbenchCondition = Abnormal Workbench Condition
WorkbenchPage_IllegalSecondaryId = Illegal secondary id (cannot be empty or contain a colon)
WorkbenchPage_IllegalViewMode = Illegal view mode
WorkbenchPart_AutoTitleFormat={0} ({1})
AbstractWorkingSetManager_updatersActivating=Activating working set updaters for bundle {0}

DecoratorManager_ErrorActivatingDecorator = An error has occurred activating decorator {0}.

EditorRegistry_errorTitle = Load Problem
EditorRegistry_errorMessage = Unable to load editor associations.

ErrorClosing = An error has occurred when closing the workbench. See error log for more details.
ErrorClosingNoArg = An error has occurred. See error log for more details. Do you want to exit?
ErrorClosingOneArg = An error has occurred: {0}. See error log for more details. Do you want to exit?
ErrorLogUtil_ShowErrorLogHyperlink=<a>Show Error Log</a>
ErrorLogUtil_ShowErrorLogTooltip=Show the Error Log View
SavingProblem = Saving Problems

Problems_Opening_Page = Problems Opening Page

Startup_Loading=Loading {0}
Startup_Loading_Workbench=Loading Workbench
Startup_Done=Done

Workbench_problemsSavingMsg=Could not save workbench layout.
Workbench_problemsRestoring=Problems occurred restoring workbench.
Workbench_problemsSaving=Problems occurred saving workbench.

PageLayout_missingRefPart=Referenced part does not exist yet: {0}.


# ==============================================================================
# Keys used in the reuse editor which is released as experimental.
# ==============================================================================
PinEditorAction_toolTip=Pin Editor
WorkbenchPreference_reuseEditors=&Close editors automatically
WorkbenchPreference_reuseEditorsThreshold=Number of opened editors before closi&ng:
WorkbenchPreference_reuseEditorsThresholdError=The number of opened editors should be more than 0.
WorkbenchPreference_recentFiles=Size of &recently opened files list:
WorkbenchPreference_recentFilesError=The size of the recently opened files list should be between 0 and {0}.
WorkbenchPreference_workbenchSaveInterval=Workbench save &interval (in minutes):
WorkbenchPreference_workbenchSaveIntervalError=The workbench save interval should be an integer between 0 and {0}.
WorkbenchEditorsAction_label=S&witch to Editor...
WorkbookEditorsAction_label=&Quick Switch Editor

WorkbenchEditorsDialog_title=Switch to Editor
WorkbenchEditorsDialog_label=Select an &editor to switch to:
WorkbenchEditorsDialog_closeSelected=&Close Selected Editors
WorkbenchEditorsDialog_saveSelected=&Save Selected Editors
WorkbenchEditorsDialog_selectClean=Se&lect Clean Editors
WorkbenchEditorsDialog_invertSelection=&Invert Selection
WorkbenchEditorsDialog_allSelection=Select &All
WorkbenchEditorsDialog_showAllPersp=Show editors from all &windows
WorkbenchEditorsDialog_name=Name
WorkbenchEditorsDialog_path=Path
WorkbenchEditorsDialog_activate=Ac&tivate Selected Editor
WorkbenchEditorsDialog_close=Close

ShowPartPaneMenuAction_text=Show &System Menu
ShowPartPaneMenuAction_toolTip=Show System Menu
ShowViewMenuAction_text=Show View &Menu
ShowViewMenuAction_toolTip=Show View Menu
QuickAccessAction_text=&Quick Access
QuickAccessAction_toolTip=Quick Access

ToggleCoolbarVisibilityAction_show_text = Show &Toolbar
ToggleCoolbarVisibilityAction_hide_text = Hide &Toolbar
ToggleStatusBarVisibilityAction_show_text = Show &Status Bar
ToggleStatusBarVisibilityAction_hide_text = Hide &Status Bar
ToggleCoolbarVisibilityAction_toolTip = Toggle the visibility of the window toolbar and perspective switcher
# ==============================================================================
# Working Set Framework.
# ==============================================================================
ProblemSavingWorkingSetState_message = Unable to store working set state.
ProblemSavingWorkingSetState_title = Saving Problems
ProblemRestoringWorkingSetState_message = Unable to restore working set state.
ProblemRestoringWorkingSetState_title = Restoring Problems
ProblemCyclicDependency = Removed cyclic dependency in the working set ''{0}''.

WorkingSetEditWizard_title=Edit Working Set
WorkingSetNewWizard_title=New Working Set

WorkingSetTypePage_description=Select a working set type
WorkingSetTypePage_typesLabel=&Working set type:

WorkingSetSelectionDialog_title= Select Working Set
WorkingSetSelectionDialog_title_multiSelect= Select Working Sets
WorkingSetSelectionDialog_message= Selec&t a working set:
WorkingSetSelectionDialog_message_multiSelect= &Select working sets:
WorkingSetSelectionDialog_detailsButton_label= &Edit...
WorkingSetSelectionDialog_newButton_label= &New...
WorkingSetSelectionDialog_removeButton_label= &Remove

WorkbenchPage_workingSet_default_label=Window Working Set
WorkbenchPage_workingSet_multi_label=Multiple Working Sets

# =================================================================
# System Summary
# =================================================================
SystemSummary_timeStamp= *** Date: {0}
SystemSummary_systemProperties= *** System properties:
SystemSummary_features= *** Features:
SystemSummary_pluginRegistry= *** Plug-in Registry:
SystemSummary_userPreferences= *** User Preferences:
SystemSummary_sectionTitle = *** {0}:
SystemSummary_sectionError = Could not write section, see error log.

# parameter 0 is the feature name, parameter 1 is the version and parameter 2 is the Id
SystemSummary_featureVersion= {0} ({1}) "{2}"

# parameter 0 is the description name, parameter 1 is the version and parameter 2 is the Id
SystemSummary_descriptorIdVersionState= {0} ({1}) "{2}" [{3}]

# =================================================================
# Editor List
# =================================================================
DecorationScheduler_UpdateJobName=Update for Decoration Completion
DecorationScheduler_CalculationJobName=Decoration Calculation
DecorationScheduler_UpdatingTask=Updating
DecorationScheduler_CalculatingTask=Calculating Decorations
DecorationScheduler_ClearResultsJob=Clear Results
DecorationScheduler_DecoratingSubtask=Decorating {0}

PerspectiveBar_showText=Show &Text
PerspectiveBar_customize=Customi&ze...
PerspectiveBar_saveAs= Save &As...
PerspectiveBar_reset= &Reset

WorkbenchPlugin_extension=Cannot create extension

EventLoopProgressMonitor_OpenDialogJobName=Open Blocked Dialog
DecorationReference_EmptyReference=Decorating
RectangleAnimation_Animating_Rectangle=Animating rectangle
FilteredList_UpdateJobName=Table Update
FilteredTree_ClearToolTip=Clear
FilteredTree_FilterMessage=type filter text
FilteredTree_FilteredDialogTitle={0} (Filtered)
FilteredTree_AccessibleListenerClearButton=Clear filter field
FilteredTree_AccessibleListenerFiltered={0} {1} matches.
Workbench_startingPlugins = Starting plug-ins
ScopedPreferenceStore_DefaultAddedError=Do not add the default to the search contexts

WorkbenchEncoding_invalidCharset = {0} is not a valid charset.

#==============================================================
# Undo/Redo Support

################################################################################
#Operations_undoCommand and Operations_redoCommand are
#used to concatenate the Undo or Redo command with a specific
#operation name such as Delete Resources, Typing, Add Bookmark, etc.
#to result in a string such as "Undo Typing".
#The commmand should include the mnemonic character somewhere in the
#string.  {0} represents the operation to be undone or redone
################################################################################
Operations_undoCommand=&Undo {0}
Operations_redoCommand=&Redo {0}

################################################################################
#Operations_undoTooltipCommand and Operations_redoTooltipCommand are
#used to concatenate the Undo or Redo command with a specific
#operation name such as Delete Resources, Typing, Add Bookmark, etc.
#to result in a string such as "Undo Typing".
#The commmand should NOT include the mnemonic character.
################################################################################
Operations_undoTooltipCommand=Undo {0}
Operations_redoTooltipCommand=Redo {0}

################################################################################
#Operations_undoRedoCommandDisabled is used when no undo or redo
#operation is available.  {0} represents "Undo" or "Redo"
################################################################################
Operations_undoRedoCommandDisabled=Can''t {0}

Operations_undoProblem=Undo Problem
Operations_redoProblem=Redo Problem
Operations_executeProblem=Problem Executing Operation
Operations_undoInfo=Undo Information
Operations_redoInfo=Redo Information
Operations_executeInfo=Operation Information
Operations_undoWarning=Undo Warning
Operations_redoWarning=Redo Warning
Operations_executeWarning=Operation Warning
Operations_linearUndoViolation=There have been local changes in ''{0}'' since ''{1}'' was performed.  These changes must be undone before proceeding.  Proceed anyway?
Operations_linearRedoViolation=Local changes in ''{0}'' have been undone since ''{1}'' was undone.  They must be redone before proceeding.  Continue with redoing ''{1}''?
Operations_nonLocalUndoWarning=Undoing ''{0}'' affects elements outside of ''{1}''.  Continue with undoing ''{0}''?
Operations_nonLocalRedoWarning=Redoing ''{0}'' affects elements outside of ''{1}''.  Continue with redoing ''{0}''?
Operations_discardUndo=&Discard Undo
Operations_discardRedo=&Discard Redo
Operations_proceedWithNonOKUndoStatus={0}\nProceed with undoing ''{1}'' anyway?
Operations_proceedWithNonOKRedoStatus={0}\nProceed with redoing ''{1}'' anyway?
Operations_proceedWithNonOKExecuteStatus={0}\nProceed with executing ''{1}'' anyway?
Operations_stoppedOnUndoErrorStatus=''{1}'' cannot be undone.  \nReason: {0}
Operations_stoppedOnRedoErrorStatus=''{1}'' cannot be redone.  \nReason: {0}
Operations_stoppedOnExecuteErrorStatus=''{1}'' cannot be performed.  \nReason: {0}
#==============================================================
# Heap Status


HeapStatus_status={0} of {1}
HeapStatus_widthStr=MMMMMMMMMMMM
HeapStatus_memoryToolTip= Heap size: {0} of total: {1} max: {2} mark: {3}
HeapStatus_meg= {0}M
HeapStatus_maxUnknown= <unknown>
HeapStatus_noMark= <none>
HeapStatus_buttonToolTip= Run Garbage Collector
SetMarkAction_text=&Set Mark
ClearMarkAction_text=&Clear Mark
ShowMaxAction_text=Show &Max Heap
SplitValues_Horizontal=Horizontal
SplitValues_Vertical=Vertical
#ShowKyrsoftViewAction_text=Show &Kyrsoft Memory Monitor View
#ShowKyrsoftViewAction_KyrsoftNotInstalled=The Kyrsoft Memory Monitor plug-in is not installed.\n\
#  For more info, visit:\n\
#  http://www.kyrsoft.com/opentools/memmon.html\n\
#  http://eclipse-plugins.2y.net/eclipse/plugin_details.jsp?id=205
#ShowKyrsoftViewAction_OpenPerspectiveFirst=Please open a perspective first.
#ShowKyrsoftViewAction_ErrorShowingKyrsoftView=Error showing Kyrsoft Memory Monitor view.

#==============================================================
# Content Types
ContentTypes_lockedFormat = {0} (locked)
ContentTypes_characterSetLabel = Default &encoding:
ContentTypes_characterSetUpdateLabel = &Update
ContentTypes_unsupportedEncoding = The selected encoding is not supported.
ContentTypes_fileAssociationsLabel = &File associations:
ContentTypes_fileAssociationsAddLabel = &Add...
ContentTypes_fileAssociationsEditLabel = E&dit...
ContentTypes_fileAssociationsRemoveLabel = &Remove
ContentTypes_contentTypesLabel = &Content types:
ContentTypes_errorDialogMessage = There was an error removing content type file association(s).
ContentTypes_FileEditorsRelatedLink=See <a>''{0}''</a> for associating editors with file types.
ContentTypes_addDialog_title=Add Content Type Association
ContentTypes_addDialog_messageHeader=Define New Content Type Association
ContentTypes_addDialog_message=Enter content type association to add: (*.doc or report.doc for example)
ContentTypes_addDialog_label=&Content type:

ContentTypes_editDialog_title=Edit Content Type Association
ContentTypes_editDialog_messageHeader=Edit Content Type Association
ContentTypes_editDialog_message=Edit content type association: (*.doc or report.doc for example)
ContentTypes_editDialog_label=Co&ntent type:
ContentTypes_addRootContentTypeButton=Add Roo&t...
ContentTypes_addChildContentTypeButton=Add C&hild...
ContentTypes_removeContentTypeButton=Re&move
ContentTypes_newContentTypeDialog_title=Create a new content-type
ContentTypes_newContentTypeDialog_descritption=Set initial attributes of a new content-type
ContentTypes_newContentTypeDialog_nameLabel=&Name:
ContentTypes_newContentTypeDialog_defaultNameNoParent=Custom Content-Type
ContentTypes_newContentTypeDialog_defaultNameWithParent=Custom Sub-type of {0}
ContentTypes_newContentTypeDialog_invalidContentTypeName=Invalid name for a content-type
ContentTypes_failedAtEditingContentTypes=Couldn't edit content-type registry

# =========================================================================
# Deprecated actions support
# =========================================================================
CommandService_AutogeneratedCategoryName = Uncategorized
CommandService_AutogeneratedCategoryDescription = Commands that were either auto-generated or have no category
LegacyActionPersistence_AutogeneratedCommandName = Legacy Action With No Label

Edit=&Edit...

#==============================================================
# Trim Common UI

# Menu strings
TrimCommon_DockOn=&Dock On
TrimCommon_Left=&Left
TrimCommon_Right=&Right
TrimCommon_Bottom=&Bottom
TrimCommon_Top=&Top
TrimCommon_Close=&Close

# Trim Display Names
TrimCommon_Progress_TrimName=&Progress

# FilteredItemsSelectionDialog
FilteredItemsSelectionDialog_menu = Menu
FilteredItemsSelectionDialog_refreshJob = Dialog refresh
FilteredItemsSelectionDialog_progressRefreshJob = Progress message refresh
FilteredItemsSelectionDialog_cacheRefreshJob = Cache refresh
FilteredItemsSelectionDialog_cacheRefreshJob_checkDuplicates = Checking for duplicates
FilteredItemsSelectionDialog_cacheRefreshJob_getFilteredElements = Get filtered elements
FilteredItemsSelectionDialog_cacheSearchJob_taskName = Searching in cache
FilteredItemsSelectionDialog_patternLabel = &Select an item to open (? = any character, * = any string):
FilteredItemsSelectionDialog_listLabel = &Matching items:
FilteredItemsSelectionDialog_searchJob_taskName = Searching
FilteredItemsSelectionDialog_toggleStatusAction = &Show Status Line
FilteredItemsSelectionDialog_removeItemsFromHistoryAction = &Remove from History
FilteredItemsSelectionDialog_separatorLabel = Workspace matches
FilteredItemsSelectionDialog_nItemsSelected = {0} items selected

FilteredItemsSelectionDialog_jobLabel=Items filtering
FilteredItemsSelectionDialog_jobError=Items filtering failed

FilteredItemsSelectionDialog_storeError=Storing the dialog failed
FilteredItemsSelectionDialog_restoreError=Restoring the dialog failed

FilteredItemsSelectionDialog_taskProgressMessage={0} ({1}%)
FilteredItemsSelectionDialog_subtaskProgressMessage={0}: {1}

#==============================================================
# Content Assist

# Content Assist cue strings
ContentAssist_Cue_Description_Key=Content Assist Available ({0})

#===============================================================
WorkbenchLayoutSettings_Name=Workbench Layout;
WorkbenchSettings_CouldNotCreateDirectories = Could not create workspace directories
WorkbenchSettings_CouldNotFindLocation=Could not find workbench settings location
WorkingSets_Name=Working Sets
WorkingSets_CannotSave=Cannot save working sets
WorkbenchPreferences_Name=Preferences
BundleSigningTray_Signing_Date=Signing Date:
BundleSigningTray_Working=Working...
BundleSigningTray_Signing_Certificate=Signing Certificate:
BundleSigningTray_Cant_Find_Service=Could not find certificate service.
BundleSigningTray_Determine_Signer_For=Determine Signer for {0}
BundleSigningTray_Unsigned=Unsigned
BundleSigningTray_Unknown=Unknown
BundleSigningTray_Unget_Signing_Service=Return Signing Service

# StatusDialog
WorkbenchStatusDialog_SupportTooltip=Get Support
WorkbenchStatusDialog_SupportHyperlink=<a>Get Support</a>
WorkbenchStatusDialog_StatusWithChildren=This status has children statuses. See 'Details' for more information.
WorkbenchStatusDialog_SeeDetails=See 'Details' for more information.
WorkbenchStatusDialog_MultipleProblemsHaveOccured=Multiple problems have occurred
WorkbenchStatusDialog_ProblemOccurred=A problem has occurred.
WorkbenchStatusDialog_ProblemOccurredInJob=''{0}'' has encountered a problem.
StackTraceSupportArea_CausedBy=Caused by:
StackTraceSupportArea_NoStackTrace=No stack trace found
StackTraceSupportArea_Title=Stacktrace:

# WorkingSetConfigurationBlock
WorkingSetConfigurationBlock_WorkingSetText_name=W&orking sets:
WorkingSetConfigurationBlock_SelectWorkingSet_button=S&elect...
WorkingSetConfigurationBlock_NewWorkingSet_button=Ne&w...

WorkingSetPropertyPage_ReadOnlyWorkingSet_description=This is a read-only working set. Its content can not be changed.
WorkingSetPropertyPage_ReadOnlyWorkingSet_title=Read-only Working Set

WorkingSetGroup_EnableWorkingSet_button=Add projec&t to working sets
WorkingSetGroup_WorkingSetSelection_message=The new project will be added to the selected working sets:
WorkingSetGroup_WorkingSets_group=Working sets

FilteredTableBaseHandler_Close=&Close

# ==============================================================================
# Util
# ==============================================================================
Util_List={0}, {1}
Util_listNull=null
