###############################################################################
#  Copyright (c) 2000, 2012 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
#     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=Are you sure you want to remove all breakpoints?
RemoveAllBreakpointsAction_2=Remove Breakpoints
RemoveAllBreakpointsAction_3=&Do not ask me again.
RemoveAllExpressionsAction_0=Remove All Expressions
RemoveAllExpressionsAction_1=Are you sure you want to 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=OK
RemoveBreakpointAction_6=Cancel
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

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
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
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=Are you sure you want to 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=&Profile Last Launched
ProfileLastAction_1=&Profile
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
VirtualFindAction_2=Element no longer in viewer.

ToggleBreakpointsTargetManager_defaultToggleTarget_name = Default
ToggleBreakpointsTargetManager_defaultToggleTarget_description = Default

NextThreadNavAction_name=Ne&xt Thread
PreviousThreadNavAction_name=Pre&vious Thread