###############################################################################
# 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
ConsoleFont.description= The font used by the debug console
ConsoleFont.label= Console 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
BreakpointContainerFactoriesName=Breakpoint Container Factories
VariableValueEditorsName=Variable Value Editors

BreakpointActionSet.label=Breakpoints
CollapseAll.label=Collapse All
CollapseAll.tooltip= Collapse Al
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 As
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
ExpandAll.label=Expand All
ExpandAll.tooltip=Expand All
ExpressionView.name=Expressions
GroupBy.label=&Group By
GroupBy.tooltip=Group By
LinkWithDebugView.label=Link with Debug View
LinkWithDebugView.tooltip=Link with Debug View
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 As
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 As
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 As
RunContextMenu.label=&Run As
ProfileContextMenu.label=&Profile As
LaunchMenuNoneApplicable.label=(None Applicable)

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

debugPresentation.label= Debug

MemoryViewName = Memory
MemoryRenderingViewName = Memory Rendering

MemoryViewTableFontDefinition.label=Memory View Table Font
MemoryViewTableFontDefinition.description=The font used in the table of the memory view.

RawHex = Hex
Renderings = Renderings
ASCIIName = ASCII
SignedIntegerName = Signed Integer
UnsignedIntegerName = Unsigned Integer
Endianess = Endianess
BigEndianActionName = Big Endian
LittleEndianActionName = Little Endian

ViewManagementAction.label=&View Management...

setDefaultGroup.label=&Set Default 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

Project.label=Project
File.label=File
BreakpointType.label=Breakpoint Type
CustomGroups.label=Custom Groups

renderingExtensionPointName = Memory Rendering Types