###############################################################################
#  Copyright (c) 2000, 2017 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
#     Mike Morearty - Bug 271411
###############################################################################

AddToFavoritesAction_1=Add to {0} &Favorites
AddToFavoritesAction_2=Error
AddToFavoritesAction_3=Unable to add to favorites.

ChangeVariableValue_errorDialogMessage=Setting the value failed.
ChangeVariableValue_errorDialogTitle=Setting Value
ChangeVariableValue_title=&Change Value...
ChangeVariableValue_toolTipText=Change the Value of the Selected Variable or Register
ChangeVariableValue_1=Set Value
ChangeVariableValue_2=Enter a new value for {0}:
ChangeVariableValue_3=An exception occurred
ChangeVariableValue_4=Invalid value


CollapseAllAction_0=Collapse All

CopyToClipboardActionDelegate_Problem_Copying_to_Clipboard_1=Problem Copying to Clipboard
CopyToClipboardActionDelegate_There_was_a_problem_when_accessing_the_system_clipboard__Retry__2=There was a problem when accessing the system clipboard. Retry?

EditLaunchConfigurationAction_1=Edit {0}...

EnableBreakpointAction_Enable_breakpoint_s__failed_2=Enable/Disable breakpoint(s) failed
EnableBreakpointAction_Enabling_breakpoints_3=Enabling/disabling breakpoints
EnableBreakpointAction_Exceptions_occurred_enabling_the_breakpoint_s___4=Exceptions occurred enabling/disabling the breakpoint(s).

OpenBreakpointMarkerAction__Go_to_File_1=&Go to File
OpenBreakpointMarkerAction_Exceptions_occurred_attempting_to_open_the_editor_for_the_breakpoint_resource_2=Exceptions occurred attempting to open the editor for the breakpoint resource
OpenBreakpointMarkerAction_Go_to_Breakpoint_1=Go to File
OpenBreakpointMarkerAction_Go_to_File_for_Breakpoint_2=Go to File for Breakpoint

RelaunchActionDelegate_An_exception_occurred_while_launching_2=An exception occurred while launching
RelaunchActionDelegate_Launch_Failed_1=Launch Failed

RemoveAllBreakpointsAction_0=Remove All Breakpoints
RemoveAllBreakpointsAction_1=Remove all breakpoints?
RemoveAllBreakpointsAction_2=Remove Breakpoints
RemoveAllBreakpointsAction_3=&Do not ask me again.
RemoveAllBreakpointsAction_4=&Remove
RemoveAllExpressionsAction_0=Remove All Expressions
RemoveAllExpressionsAction_1=Remove all expressions?

RemoveBreakpointAction_0=Delete Breakpoints
RemoveBreakpointAction_1=Delete all breakpoints in the selected group(s)?
RemoveBreakpointAction_2=Remove Breakpoints
RemoveBreakpointAction_3=Remove Items
RemoveBreakpointAction_4=Which item(s) would you like to remove?
RemoveBreakpointAction_5=&Remove
RemoveBreakpointAction_6=&No
RemoveBreakpointAction_Exceptions_occurred_attempting_to_remove_a_breakpoint__5=An exception occurred attempting to remove breakpoint(s).
RemoveBreakpointAction_Removing_a_breakpoint_4=Removing a breakpoint

RemoveAllTriggerPointsAction_0=Remove All Triggerpoints
RemoveAllTriggerPointsAction_1=Remove all triggerpoints?

DeleteBreakpointOperationName=Delete Breakpoint
DeleteBreakpointsOperationName=Delete Breakpoints

DeleteWorkingsetsMessageDialog_0=&Selected working set(s).
DeleteWorkingsetsMessageDialog_1=&All breakpoints contained in selected working set(s).

ShowSupportedBreakpointsAction_Show_For_Selected=Show Supported &Breakpoints
ShowSupportedBreakpointsAction_tooltip=Show Breakpoints Supported by Selected Target

ShowTypesAction_Show__Type_Names_1=Show &Type Names
ShowTypesAction_Show_Type_Names=Show Type Names
ShowTypesAction_0='Show Type Names' unavailable when columns are displayed.\nConfigure columns to display type names.

RelaunchLastAction_Cannot_relaunch_1=Cannot relaunch
RelaunchLastAction_Cannot_relaunch___0___because_it_does_not_support__2__mode_2=Cannot relaunch [{0}] because it does not support {1} mode
RelaunchLastAction_Error_relaunching_3=Error relaunching
RelaunchLastAction_Error_encountered_attempting_to_relaunch_4=Error encountered attempting to relaunch

##
# @see Bug 105733 TVT 3.1 - TCT 531 - Poor grammar in "Run Eclipse Application" and "Profile Eclipse Application"
#   - the following string is used to display the tooltip for run/debug/profile buttons and is
#     the concatenation of "{mode} {configuration name}", for example "Run HelloWorld". In some languages
#     this may need to be reversed to be translated properly. 
##
AbstractLaunchHistoryAction_0={0} {1}
AbstractLaunchHistoryAction_1=Run
AbstractLaunchHistoryAction_2=Debug
AbstractLaunchHistoryAction_3=Profile
AbstractLaunchHistoryAction_4=Launch
##
#     The following string is used to display the tooltip for run/debug/profile buttons in the
#     event there is no configuration name to concatenate (as mentioned for AbstractLaunchHistoryAction_0)
#     For example "Run" or "External Tools".
##
AbstractLaunchHistoryAction_5={0}
AbstractLaunchHistoryAction_6=(no launch history)
AbstractDebugActionDelegate_0=Error

ToggleDetailPaneAction_0=&Automatic
ToggleDetailPaneAction_1=&Vertical
ToggleDetailPaneAction_2=Place the Detail Pane Underneath the Main Tree View
ToggleDetailPaneAction_3=Automatically position the detail pane
ToggleDetailPaneAction_4=&Horizontal
ToggleDetailPaneAction_5=Place the Detail Pane on the Right of the Main Tree View
ToggleDetailPaneAction_8=Hide the Detail Pane so that only the Main Tree View is Visible
ToggleBreakpointAction_0=Toggle Brea&kpoint
ToggleBreakpointAction_1=Error
ToggleBreakpointAction_2=Unable to toggle breakpoint
ToggleBreakpointAction_3=Double Click

ToggleStepFiltersAction_0=Use Step Filters
ToggleStepFiltersAction_1=&Use Step Filters

WatchExpressionDialog_0=Edit Watch Expression
WatchExpressionDialog_1=Add Watch Expression
WatchExpressionDialog_2=E&xpression:
WatchExpressionDialog_3=&Enable
WatchExpressionDialog_4=Expression must not be empty
WatchExpressionDialog_5=Tip: {0} can be used to close this dialog.
WatchExpressionDialogMenu_0=Cut
WatchExpressionDialogMenu_1=Copy
WatchExpressionDialogMenu_2=Paste
WatchAction_0=Error creating watch
WatchAction_1=An exception occurred while attempting to create watch item.
SkipAllBreakpointsAction_0=Skip All Breakpoints
SkipAllBreakpointsAction_2=Skip all breakpoints, whether they are enabled or not
DetailPaneAssignValueAction_1=Assign Value
DetailPaneAssignValueAction_2=Invalid Value
DetailPaneAssignValueAction_3=The value {0} cannot be assigned to {1}
DetailPaneAssignValueAction_4=Invalid Value
DetailPaneAssignValueAction_0=Error Setting Value
DetailPaneWordWrapAction_0=&Wrap Text
DetailPaneMaxLengthAction_0=&Max Length...

RunToLineAction_0=Error
RunToLineAction_1=Run to line failed
RunToLineAction_2=Run to Line
RunToLineAction_3=Click
RunToLineHandler_0=Run To Line
RunToLineActionDelegate_4=Run to &Line

RetargetAction_2=Error
RetargetAction_3=Operation failed
ModifyWatchpointAction_0=Error
ModifyWatchpointAction_1=Failed to modify watchpoint
LaunchShortcutsAction_1=(none applicable)
##
# The following string is used to display launch histories using an integer mnemonic - i.e. 
# "{number} {configuration name}". For example "1 HelloWorld". 
##
LaunchConfigurationAction_0=&{0} {1}
FindDialog_1=&Specify an element to select (? = any character, * = any String):
FindDialog_3=Find
FindAction_0=&Find...
RetargetAddMemoryBlockAction_0=Add Memory Monitor Failed.
RetargetAddMemoryBlockAction_1=Unable to add memory monitor.
RetargetRunToLineAction_0=The operation is unavailable on the current selection. Please place the cursor on valid line to run to.
AddMemoryRenderingActionDelegate_0=Add Memory Rendering Failed
AddMemoryRenderingActionDelegate_1=Unable to add the selected rendering.
AddMemoryRenderingActionDelegate_2=Add Memory Rendering
RulerEnableDisableBreakpointAction_0=Error
RulerEnableDisableBreakpointAction_1=Failed to toggle breakpoint enablement
RulerEnableDisableBreakpointAction_2=&Disable Breakpoint
RulerEnableDisableBreakpointAction_3=&Enable Breakpoint
RulerEnableDisableBreakpointAction_4=Double Click
TerminateAndRelaunchAction_0=org.eclipse.debug.ui.commands.TerminateAndRelaunch
TerminateAndRelaunchAction_3=Terminate and Relaunch
TerminateAndRelaunchAction_4=Terminate and Relaunch
TerminateAndRemoveAction_0=Terminate and Remo&ve
TerminateAndRemoveAction_3=Terminate and Remove
TerminateAllAction_2=Termi&nate/Disconnect All
TerminateAllAction_3=Terminate/Disconnect All
TerminateAction_0=&Terminate
TerminateAction_3=Terminate
TerminateAndLaunchFailure=Failed to terminate {0}
StepReturnAction_2=Step Return
StepReturnAction_3=Step Ret&urn
StepIntoAction_0=Step &Into
StepIntoAction_3=Step Into
StepOverAction_0=Step &Over
StepOverAction_3=Step Over
LaunchAction_0=Remove Configuration
LaunchAction_1=Remove {0} from the launch history?
LaunchAction_2=&Do not ask me again.
RestartCommandAction__text=Rest&art
RestartCommandAction_tooltip=Restart
ResumeAction_0=Resu&me
ResumeAction_3=Resume
DisconnectAction_0=Disconn&ect
DisconnectAction_3=Disconnect
DropToFrameAction_0=Drop To Frame
DropToFrameAction_3=Drop To Frame
SuspendAction_0=&Suspend
SuspendAction_3=Suspend
ConfigureColumnsAction_0=Select &Columns...
ConfigureColumnsAction_1=Select the &columns to display:
ConfigureColumnsAction_2=Select Columns
PasteWatchExpressionsAction_0=&Paste
ProfileLastAction_0=Profi&le Last Launched
ProfileLastAction_1=Profi&le
ProfileLastAction_2=Profile the selected resource or active editor
ProfileLastAction_3=Profile the previously launched application
DebugLastAction_0=&Debug Last Launched
DebugLastAction_1=&Debug
DebugLastAction_2=Debug the selected resource or active editor
DebugLastAction_3=Debug the previously launched application
RunLastAction_0=&Run Last Launched
RunLastAction_1=&Run
RunLastAction_2=Run the selected resource or active editor
RunLastAction_3=Run the previously launched application
##
# The following string is used to display actions to open the launch dialog for 
# a specific mode - for example "Debug Configurations..."
##
OpenLaunchDialogAction_1={0} Configurations...
VirtualFindAction_0=Error
VirtualFindAction_1=Unable to locate {0} in viewer

ToggleBreakpointsTargetManager_defaultToggleTarget_name = Default
ToggleBreakpointsTargetManager_defaultToggleTarget_description = Default