###############################################################################
# Copyright (c) 2000, 2014 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
#     QNX Software Systems - Mikhail Khodjaiants - Registers View (Bug 53640)
#     Wind River Systems - Pawel Piech - Added Modules view (bug 211158)
#     Wind River Systems - Ted Williams -[Memory View] Memory View: Workflow Enhancements (bug 215432)
#     Patrick Chuong (Texas Instruments) - Move debug toolbar actions to main window (Bug 332784)
###############################################################################

pluginName=Debug UI

accessAction.label=&Access
BreakpointsView.name=Breakpoints
ConsoleColorProvidersExtensionName= Console Color Providers
ConsoleFont.description= The font used by the debug console.
ConsoleFont.label= Console font
ConsoleLineTrackersExtensionName= Console Line Trackers
LaunchingPreferencePage.name=Launching
LaunchDelegatesPreferencePage.name=Default Launchers
ViewManagementPreferencePage.name=View Management
ConsolePreferencePage.name=Console
DebugModelContextBindingsName=Debug Model Context Bindings
ContextViewBindingsName=Context View Bindings
BreakpointOrganizersName=Breakpoint Organizers
VariableValueEditorsName=Variable Value Editors

ContextLaunchingRunMenu.name=&Run
ContextLaunchingRunMenu.tooltip=Run the selected item

ContextLaunchingDebugMenu.name=&Debug
ContextLaunchingDebugMenu.tooltip=Debug the selected item

ContextLaunchingProfileMenu.name=&Profile
ContextLaunchingProfileMenu.tooltip=Profile the selected item

ContextualLaunchingPrefPage.name=Contextual Launching

DefaultLaunchConfigurationsPropPage.name=Run/Debug Settings

Copy.label=&Copy
BreakpointActionSet.label=Breakpoints
CollapseAll.label=Collapse All
CollapseAll.tooltip= Collapse All
CopyToClipboardAction.label=&Copy Stack
CopyVariablesToClipboardAction.label=Copy &Variables
CopyExpressionsToClipboardAction.label=Copy &Expressions
CopyRegistersToClipboardAction.label=Copy &Registers
DebugActionSet.label=Debug
DebugToolbarActionSet.label=Debug Toolbar
debugCurrentInstructionPointer=Debug Current Instruction Pointer
debugCallStack=Debug Call Stack
DebugDropDownAction.label=Debug
DebugHistoryMenuAction.label=Debug &History
DebugLastAction.label=&Debug Last Launched
DebugLaunchGroup.label=De&bug
DebugLaunchGroup.title=Select or configure an application to debug
DebugModelPresentationExtensionName=Debug Model Presentation

LaunchConfigurationTabsExtension.name=Launch Configuration Tabs

DebugPerspective.name=Debug
DebugPerspective.description=This Debug perspective is designed to support application debugging.  It incorporates views for displaying the debug stack, variables and breakpoint management.

command.openDebugPerspective.description = Open the debug perspective
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.
DetailPaneFactoriesExtension.name=Detail Pane Factories
DisableBreakpointsAction.label=&Disable
EnableBreakpointsAction.label=&Enable
ExpandAll.label=Expand All
ExpandAll.tooltip=Expand All
ExpressionView.name=Expressions
GroupBy.label=&Group By
GroupBy.tooltip=Show
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 
LaunchGroupsExtensionName=Launch Groups
modificationAction.label=&Modification
ModulesView.name=Modules
OpenDebugConfigurations.label=De&bug Configurations...
OpenRunConfigurations.label=Ru&n Configurations...
OpenProfileConfigurations.label=&Profile Configurations...
processPropertyPageName=Process Information
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.label=Remo&ve All Breakpoints
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
RunDropDownAction.label=Run
RunMenu.label=&Run
RunLastAction.label=&Run Last Launched
RunLaunchGroup.label=Ru&n
RunLaunchGroup.title=Select or configure an application to run
RunHistoryMenuAction.label=Run His&tory
RunWithConfigurationAction.label=Run A&s
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
StepOverAction.label=Step &Over
StepReturnAction.label=Step Ret&urn
StringVariablePresentationsName=String Variable Presentations
SuspendAction.label=&Suspend
TerminateAction.label=&Terminate
DropToFrame.label=Drop To Frame
Disconnect.label=Disconnect
ToggleBreakpointAction.label=Toggle Brea&kpoint
ToggleBreakpointsTargetFactoriesExtension.name=Toggle Breakpoints Target Factories
ToggleLineBreakpointAction.label=Toggle &Line Breakpoint
ToggleMethodBreakpointAction.label=Toggle &Method Breakpoint
ToggleWatchpointAction.label=Toggle &Watchpoint
TerminateAllAction.label=Termi&nate/Disconnect All
TerminateAllAction.tooltip=Terminate/Disconnect All
BreakpointTypesMenu.label=B&reakpoint Types
VariablesView.name=Variables
VariableTextFontDefinition.label=Variable text font
VariableTextFontDefinition.description=Font to use for the label text of entries in the Variables, Registers and Expression views as well as the Inspect Popup Dialog.
StringVariablePreferencePage.name=String Substitution
ToggleMemoryMonitorsPaneAction.name = &Toggle Memory Monitors Pane
ToggleMemoryMonitorsPaneAction.tooltip = Toggle Memory Monitors Pane
ToggleSplitPaneAction.name = Toggle &Split Pane
ToggleSplitPaneAction.tooltip = Toggle Split Pane
LinkRenderingPanesAction.name = &Link Memory Rendering Panes
LinkRenderingPanesAction.tooltip = Link Memory Rendering Panes
AddRemoveRenderingMenu.name = Add/Remove Rendering
AddRenderingAction.name = Add Rendering
RemoveRenderingAction.name = Remove Rendering
PerspectivePreferencePage.name = Perspectives
LaunchConfigurationsPage.name = Launch Configurations

#string substitution 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 ':'.
password_prompt.description=Returns the text value entered into a password 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 ':'.
selected_text.description=Returns the text currently selected in the active editor.
selected_resource_loc.description=Returns the absolute file system path of the selected resource.
selected_resource_path.description=Returns the workspace relative path of the selected resource.
selected_resource_name.description=Returns the name of the selected resource.

providerName=Eclipse.org

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

NoSourceFoundEditor.name= No Source Found

Context.debugging.description= Debugging programs
Context.debugging.name= Debugging

Context.console.description= In I/O console
Context.console.name= In I/O Console

Context.memoryview.description = In memory view
Context.memoryview.name = In Memory View

ActionContext.breakpointsview.name=In Breakpoints View
ActionContext.breakpointsview.description=The breakpoints view context

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

ActionDefinition.addMemoryBlock.name= Add Memory Block
ActionDefinition.addMemoryBlock.description=Add memory block

ActionDefinition.toggleStepFilters.name= Use 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.restart.name=Restart
ActionDefinition.restart.description=Restart a process or debug target without terminating and re-launching

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

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.terminateAndRelaunch.name=Terminate and Relaunch
ActionDefinition.terminateAndRelaunch.description=Terminate and Relaunch

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

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

ActionDefinition.dropToFrame.name=Drop to Frame
ActionDefinition.dropToFrame.description=Drop to Frame

ActionDefinition.disconnect.name=Disconnect
ActionDefinition.disconnect.description=Disconnect

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

ActionDefinition.profileLast.name=Profile
ActionDefinition.profileLast.description=Launch in profile mode

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

ActionDefinition.debugLast.name=Debug
ActionDefinition.debugLast.description=Launch in debug mode

ActionDefinition.runLast.name=Run
ActionDefinition.runLast.description=Launch in run mode

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


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.removeAllBreakpoints.name=Remove All Breakpoints
ActionDefinition.removeAllBreakpoints.description=Removes all breakpoints

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

SkipAllBreakpointsAction.label=S&kip All Breakpoints
SkipAllBreakpointsAction.tooltip=Skip 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
Watch.name=Watch
Watch.description=Create a watch expression from the current selection and add it to the Expressions view

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

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

debugPresentation.label= Debug

MemoryViewName = Memory

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

RawHex = Hex
ASCIIName = ASCII
SignedIntegerName = Signed Integer
UnsignedIntegerName = Unsigned Integer
Endianess = Endianess
BigEndianActionName = Big Endian
LittleEndianActionName = Little Endian
RestoreDefEndianessActionName = Restore Default
HexIntegerName = Hex Integer

ViewManagementAction.label=&View Management...

setDefaultGroup.label=&Select Default Working Set...
setDefaultGroup.tooltip=Select Default Working Set
clearDefaultGroup.label=&Deselect Default Working Set
clearDefaultGroup.tooltip=Deselect Default Working Set
workingSets.label=&Working Sets...
workingSets.tooltip=Manage Working Sets

editGroup.label=&Edit Working Set...
ToggleDefault.label=Defaul&t Working Set

Project.label=Projects
Project.others=Others (no project)
File.label=Files
File.others=Others (no file)
BreakpointType.label=Breakpoint Types
BreakpointType.others=Others (type unspecified)
WorkingSet.label=Resource Working Sets
WorkingSet.others=Others (no working set)
BreakpointWorkingSet.label=Breakpoint Working Sets
BreakpointWorkingSet.others=Others (no working set)
BreakpointWorkingSet.name=Breakpoint
BreakpointWorkingSet.description=Breakpoint workingsets contain listings of workspace breakpoints
memoryRenderingsExtensionPointName = Memory Renderings
TableRenderingPrefActionName = &Table Renderings Preferences...


NewMemoryViewAction.label=&New Memory View
NewMemoryViewAction.tooltip=New Memory View
PinMemoryBlockAction.label=&Pin Memory Monitor
PinMemoryBlockAction.tooltip=Pin Memory Monitor
TableRenderingInfo.label = Rendering Selection

preferenceKeywords.general=run debug breakpoints variables color editor source code conditional workbench expression confirmation memory reuse
preferenceKeywords.console=run debug console stdout stderr color process fixed width character write standard program background in out error
preferenceKeywords.launching=run debug launching build required dirty editor build wait workspace continue project error remove terminate launch history context previous selected resource
preferenceKeywords.stringSubstitution=run debug variables string substitution launch
preferenceKeywords.viewManagement=run debug views launch open close automatic mode
preferenceKeywords.perspective=perspectives switching assign automatic run debug associated suspend mode
preferenceKeywords.launchConfigurations=filters launch migration configurations run debug closed missing projects working set type migrate delete resource
preferenceKeywords.launchDelegates=launch delegate duplicate run debug profile mode configuration launchers launcher modes
preferenceKeywords.contextLaunching=run debug profile launch contextual delegate configuration execute default preferred mode type

exportBreakpoints.label=E&xport Breakpoints...
importBreakpoints.label=I&mport Breakpoints...
exportBreakpoints.name=Breakpoints
importBreakpoints.description=Import breakpoints from the local file system.
exportBreakpoints.description=Export breakpoints to the local file system.

importLaunchConfigurations.name=Launch Configurations
importLaunchConfigurations.description=Import launch configurations from the local file system.
exportLaunchConfigurations.description=Export launch configurations to the local file system.

switchMemoryBlock.label = Switch &Memory Monitor
switchMemoryBlock.tooltip = Switch Memory Monitor
toggleMemoryMonitorsPane.label = Toggle Memory Monitors Pane
toggleMemoryMonitorsPane.description = Toggle visibility of the Memory Monitors Pane
nextMemoryBlockCommand.label = Next Memory Monitor
nextMemoryBlockCommand.description = Show renderings from next memory monitor.
newRenderingCommand.label = New Rendering
newRenderingCommand.description = Add a new rendering.
closeRenderingCommand.label = Close Rendering
closeRenderingCommand.description = Close the selected rendering.
memoryViewPrefAction.label = &Preferences...
resetMemoryMonitorAction.label = &Reset

ConsolePreferencesAction.label = &Preferences...
ConsolePreferencesAction.tooltip = Opens the console's Preferences Page

command.description.0 = Go to Address
command.name.0 = Go to Address
context.description.0 = In Table Memory Rendering
context.name.0 = In Table Memory Rendering
command.description.1 = Load next page of memory
command.name.1 = Next Page of Memory
command.description.2 = Load previous page of memory
command.name.2 = Previous Page of Memory

console.background.label= Process console background
console.out.label= Standard out
console.in.label= Standard in
console.err.label= Standard error
debug.ui.component.label = Platform Debug UI 
debug.core.component.label = Platform Debug Core