###############################################################################
# Copyright (c) 2000, 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials 
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
#     QNX Software Systems - Mikhail Khodjaiants - Registers View (Bug 53640)
###############################################################################

pluginName=Debug UI

accessAction.label=&Access
BreakpointsView.name=Breakpoints
commonTabName=&Common
ConsoleColorProvidersExtensionName= Console Color Providers
ConsoleFontDefinition.description= The debug console text font is used by the debug console
ConsoleFontDefinition.label= Debug Console Text Font
ConsoleLineTrackersExtensionName= Console Line Trackers
%DebugViewContentProvidersName= Debug View Content Providers
LaunchingPreferencePage.name=Launching
ViewManagementPreferencePage.name=View Management
ConsolePreferencePage.name=Console
DebugModelContextBindingsName=Debug Model Context Bindings
DebugModelActivityBindingsName=Debug Model Activity Bindings
ContextViewBindingsName=Context View Bindings

BreakpoingActionSet.label=Breakpoints
CopyToClipboardAction.label=&Copy Stack
CopyVariablesToClipboardAction.label=Copy &Variables
DebugActionSet.label=Debug
DebugConfigurations.label=D&ebug...
debugCurrentInstructionPointer=Debug Current Instruction Pointer
debugCallStack=Debug Call Stack
DebugDropDownAction.label=Debug
DebugHistoryMenuAction.label=Debug &History
DebugLastAction.label=&Debug Last Launched
DebugLaunchGroup.label=Debu&g
DebugLaunchGroup.title=Select or configure an application to debug
DebugModelPresentationExtensionName=Debug Model Presentation
DebugPerspective.name=Debug
DebugPreferencePage.name=Run/Debug
DebugView.name=Debug
DebugViewsCategory.name=Debug
DebugWithConfigurationAction.label=Debu&g
DetailPaneFontDefinition.label=Detail Pane Text Font
DetailPaneFontDefinition.description=The detail pane text font is used in the detail panes of debug views
DisableBreakpointsAction.label=&Disable
DisconnectAction.label=Disconn&ect
DisconnectAction.tooltip=Disconnect
EnableBreakpointsAction.label=&Enable
ExpressionView.name=Expressions
LaunchActionSet.label=Launch
LaunchConfigurationTabGroupExtensionName=Launch Configuration Tab Group
LaunchShortcutsName=Launch Shortcut
LaunchConfigurationTypeImageExtensionName=Launch Configuration Type Image 
LaunchConfigurationTypePropertyPage.name=Launch Configuration Type
LaunchConfigurationTypesPreferencePage.name=Launch Configuration Types
LauncherPropertyPage.name=Launcher
LaunchGroupsExtensionName=Launch Groups
modificationAction.label=&Modification
OpenDebugConfigurations.label=De&bug...
OpenRunConfigurations.label=Ru&n...
OpenProfileConfigurations.label=&Profile...
processPropertyPageName=Process Information
ProcessesView.name=Processes
ProfileLaunchGroup.label=&Profile
ProfileLaunchGroup.title=Select or configure an application to profile
ProfileDropDownAction.label=Profile
ProfileWithConfigurationAction.label=Pro&file
ProfileHistoryMenuAction.label=Profile Histor&y
ProfileLastAction.label=Profi&le Last Launched
ProfileActionSet.label=Profile
RegistersView.name=Registers
RelaunchAction.label=Re&launch
RemoveAction.label=Rem&ove
RemoveAllAction.label=Remove A&ll
RemoveAllBreakpointsAction.tooltip=Remove All Breakpoints
RemoveAllExpressionsAction.tooltip=Remove All Expressions
RemoveAllTerminatedAction.label=Remove &All Terminated
RemoveAllTerminatedAction.tooltip=Remove All Terminated Launches
RemoveBreakpointAction.tooltip=Remove Selected Breakpoints
RemoveExpressionAction.tooltip=Remove Selected Expressions
ResumeAction.label=Resu&me
ResumeAction.tooltip=Resume
RunDropDownAction.label=&Run
RunMenu.label=&Run
RunLastAction.label=&Run Last Launched
RunLaunchGroup.label=Ru&n
RunLaunchGroup.title=Select or configure an application to run
RunConfigurations.label=R&un Configurations...
RunHistoryMenuAction.label=Run His&tory
RunWithConfigurationAction.label=R&un
RunToLine.label=Run to &Line
SelectAll.label=Select &All
StepWithFiltersAction.label=Use Step &Filters
StepWithFiltersAction.tooltip=Use Step Filters/Step Debug
StepIntoAction.label=Step &Into
StepIntoAction.tooltip=Step Into
StepOverAction.label=Step &Over
StepOverAction.tooltip=Step Over
StepReturnAction.label=Step Ret&urn
StepReturnAction.tooltip=Step Return
StringVariablePresentationsName=String Variable Presentations
SuspendAction.label=&Suspend
SuspendAction.tooltip=Suspend
TerminateAction.label=&Terminate
TerminateAction.tooltip=Terminate
TerminateAllAction.label=Termi&nate All
TerminateAndRemoveAction.label=Terminate and Remo&ve
ToggleBreakpointAction.label=Toggle Line Brea&kpoint
ToggleMethodBreakpointAction.label=Toggle &Method Breakpoint
ToggleWatchpointAction.label=Toggle &Watchpoint
VariablesView.name=Variables
StringVariablePreferencePage.name=String Substitution

#string subtitution variables
string_prompt.description=Returns the text value entered into a prompt dialog. When one argument is provided, it is used as a prompt hint on the input dialog. When a second argument is provided, it is used as an initial value in the input dialog. The first and second arguments must be separated with a ':'.
file_prompt.description=Returns the absolute file system path of a file chosen in a file selection dialog. When one argument is provided, it is used a prompt hint on the dialog title. When a second argument is provided, it is used as an initial value for the file selection dialog. The first and second arguments must be separated with a ':'.
folder_prompt.description=Returns the absolute file system path of a directory chosen in a directory selection dialog. When one argument is provided, it is used a prompt hint on the dialog title. When a second argument is provided, it is used as an initial value for the directory selection dialog. The first and second arguments must be separated with a ':'.
container_loc.description=Returns the absolute file system path of a resource's container. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
container_path.description=Returns the workspace relative path of a resource's container. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
container_name.description=Returns the name of a resource's container. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
project_loc.description=Returns the absolute file system path of a resource's project. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
project_path.description=Returns the workspace relative path of a resource's project. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
project_name.description=Returns the name of a resource's project. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
resource_loc.description=Returns the absolute file system path of a resource. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
resource_path.description=Returns the workspace relative path of a resource. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
resource_name.description=Returns the name of a resource. The target resource is the selected resource when no argument is specified, or the resource identified by a workspace relative path.
workspace_loc.description=Returns the absolute file system path of the workspace root. When an argument is specified, the absolute file system path of the resource identified by a workspace relative path is returned.
selected_text.description=Returns the text currently selected in the active editor.

providerName=Eclipse.org

runCategory.name= Run/Debug
runCategory.description= Run/Debug command category

NoSourceFoundEditor.name= No Source Found

DetailPaneWordWrapAction.label=&Wrap Text in Details Pane
DetailPaneWordWrapAction.tooltip=Wrap text in the Details pane

Context.debugging.description= Debugging Programs
Context.debugging.name= Debugging

Context.console.description= In Console
Context.console.name= In Console

ActionDefinition.eof.name= EOF
ActionDefinition.eof.description= Send end of file

ActionDefinition.toggleStepFilters.name= Toggle Step Filters
ActionDefinition.toggleStepFilters.description= Toggles enablement of debug step filters

ActionDefinition.stepInto.name= Step Into
ActionDefinition.stepInto.description= Step into

ActionDefinition.stepOver.name= Step Over
ActionDefinition.stepOver.description= Step over

ActionDefinition.stepReturn.name= Step Return
ActionDefinition.stepReturn.description= Step return

ActionDefinition.resume.name=Resume
ActionDefinition.resume.description=Resume

ActionDefinition.resumeAllThreads.name=Resume All Thrads
ActionDefinition.resumeAllThreads.description=Resumes all suspended threads

ActionDefinition.runToLine.name=Run to Line
ActionDefinition.runToLine.description=Resume and break when execution reaches the current line

ActionDefinition.terminate.name=Terminate
ActionDefinition.terminate.description=Terminate

ActionDefinition.toggleBreakpoint.name=Toggle Line Breakpoint
ActionDefinition.toggleBreakpoint.description=Creates or removes a line breakpoint

ActionDefinition.suspend.name=Suspend
ActionDefinition.suspend.description=Suspend

ActionDefinition.openProfile.name=Profile...
ActionDefinition.openProfile.description=Open profile launch configuration dialog

ActionDefinition.profileLast.name=Profile Last Launched
ActionDefinition.profileLast.description=Profile the last launch in profile mode

ActionDefinition.openRun.name=Run...
ActionDefinition.openRun.description=Open run launch configuration dialog

ActionDefinition.debugLast.name=Debug Last Launched
ActionDefinition.debugLast.description=Debug the last launch in debug mode

ActionDefinition.runLast.name=Run Last Launched
ActionDefinition.runLast.description=Relaunch the last launch in run mode

ActionDefinition.openDebug.name=Debug...
ActionDefinition.openDebug.description=Open debug launch configuration dialog

ActionDefinition.followHyperlink.name= Follow Hyperlink
ActionDefinition.followHyperlink.description= Follow a hyperlink in the debug console

ActionDefinition.toggleWatchpoint.name=Toggle Watchpoint
ActionDefinition.toggleWatchpoint.description=Creates or removes a watchpoint

ActionDefinition.toggleMethodBreakpoint.name=Toggle Method Breakpoint
ActionDefinition.toggleMethodBreakpoint.description=Creates or removes a method breakpoint

ActionDefinition.skipAllBreakpoints.name=Skip All Breakpoints
ActionDefinition.skipAllBreakpoints.description=Sets whether or not any breakpoint should suspend execution

ViewCommand.debugView.name=Debug
ViewCommand.debugView.description=Show the Debug view

ViewCommand.breakpointView.name=Breakpoints
ViewCommand.breakpointView.description=Show the Breakpoints view

ViewCommand.variableView.name=Variables
ViewCommand.variableView.description=Show the Variables view

ViewCommand.expressionView.name=Expressions
ViewCommand.expressionView.description=Show the Expressions view

ViewCommand.registerView.name=Registers
ViewCommand.registerView.description=Show the Registers view

ViewCommand.memoryView.name=Memory
ViewCommand.memoryView.description=Show the Memory view

SkipAllBreakpointsAction.label=S&kip All Breakpoints
editWatchExpressionAction.label=&Edit Watch Expression
editWatchExpressionAction.tooltip=Edit the selected watch expression
reevaluateWatchExpressionAction.label=&Reevaluate Watch Expression
reevaluateWatchExpressionAction.tooltip=Reevaluate the watch expression in the selected stack frame
addWatchExpressionAction.label=&Add Watch Expression
addWatchExpressionAction.tooltip=Create a new watch expression
convertToWatchExpressionAction.label=Convert to &Watch Expression
convertToWatchExpressionAction.tooltip=Convert an inspect expression to a watch expression
Watch.label=Wa&tch

enableWatchExpressionAction.label=Enable
enableWatchExpressionAction.tooltip=Enable watch expression

disableWatchExpressionAction.label=Disable
disableWatchExpressionAction.tooltip=Disable watch expression

BreakpointMarkerPreference.label= Breakpoints

SourceContainerPresentationsName = Source Container Presentations

DebugContextMenu.label=&Debug
RunContextMenu.label=&Run
ProfileContextMenu.label=&Profile
LaunchMenuNoneApplicable.label=(None Applicable)

containerName.workingSet = Working set
sourceNotFoundEditorName=Source Not Found Editor

debugPresentation.label= Debug

MemoryViewName = Memory
MemoryRenderingViewName = Memory Rendering

MemoryViewTableFontDefinition.label=Memory views table Font
MemoryViewTableFontDefinition.description=The font used in memory views tables.

RawHex = Hex
rawHexMemoryRendering.name= Raw Hex Memory Rendering

ViewManagementAction.label=&View Management...

setDefaultGroup.label=&Set Custom Group...
setDefaultGroup.tooltip=Set Default Custom Breakpoint Group
clearDefaultGroup.label=&Clear Custom Group
clearDefaultGroup.tooltip=Clear Default Custom Breakpoint Group

addToGroup.label=&Set Custom Group
removeFromGroup.label=&Remove From Custom Group
renameGroup.label=Re&name Custom Group
dissolveGroup.label=&Remove Custom Group
GroupBreakpointsByAction.label=&Group By