###############################################################################
# Copyright (c) 2000, 2003 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
###############################################################################

pluginName=JDI Debug UI
vmInstallTypePage=VM Install Type UI Page

accessAction.label=&Access

AddBreakpoint.label=Toggle &Breakpoint

addTypeStepFilterAction.label=&Filter Type
addTypeStepFilterAction.tooltip=Filter the selected type(s)
addPackageStepFilterAction.label=Filter Pac&kage
addPackageStepFilterAction.tooltip=Filter the selected package(s)

breakpointPropertiesAction.label=P&roperties...

caughtAction.label=&Caught

debugAction.label=&Debug...
debugAction.tooltip=Debug

debuggingJavaActivityName=Debugging Java

debugSourcePageName=Debugger Source Lookup

Display.label=Displa&y
Display.tooltip=Display Result of Evaluating Selected Text

editStepFiltersAction.label=Edit Ste&p Filters...
editStepFiltersAction.tooltip=Manage the set of defined step filters

Execute.label=E&xecute
Execute.tooltip=Evaluate the Selected Text

displayViewName=Display

dropFrameAction.label=&Drop to Frame
dropFrameAction.tooltip=Drop Current Stack Frame

terminateEvaluationAction.label=&Terminate Evaluation
terminateEvaluationAction.tooltip=Terminate Current Evaluation

EnableBreakpoint.label=&Toggle Breakpoint Enabled

entryAction.label=Entr&y

exceptionAction.label=Add Java Exception Breakpoint
exceptionAction.accel.label=Add Java E&xception Breakpoint
exceptionAction.tooltip=Add Java Exception Breakpoint

execArgPageName=Execution Arguments

exitAction.label=E&xit

hitCount.label=&Hit Count

Inspect.label=Insp&ect
Inspect.tooltip=Inspect Result of Evaluating Selected Text

installJREPageName=Installed JREs

snippetEditorPageName=Scrapbook Runtime

JavaBreakpointProperties.label=Breakpoint P&roperties...

javaDebugPrefName=Debug

JavaSnippetEditor.label= Scrapbook

javaStepFilterPrefName=Step Filtering
javaDetailFormattersPrefName=Detail Formatters

javaVariableHoverLabel=Variable Values
javaVariableHoverDescription=Shows the value of the selected variable when debugging.

JDTDebugActionSet.label=Java Debug

LauncherPropertyPage.name=Launcher

ManageBreakpointAction.label=Toggle Brea&kpoint

manageMethodBreakpointAction.label=Toggle &Method Breakpoint

manageWatchpointAction.label=Toggle &Watchpoint

instanceFiltersAction.label=&Instance Breakpoints...

modificationAction.label=&Modification

openDeclType.label=O&pen Declaring Type
openDeclType.tooltip=Open the Declaring Type

openDeclTypeHierarchy.label=Open Declaring Type &Hierarchy
openDeclTypeHierarchy.tooltip=Open the Declaring Type's Hierarchy

openDeclVarType.label=&Open Declared Type
openDeclVarType.tooltip=Open the Variable's Declared Type

openDeclVarTypeHierarchy.label=Open Declared Type &Hierarchy
openDeclVarTypeHierarchy.tooltip=Open the Variable's Declared Type Hierarchy

openConcreteVarType.label=Open Conc&rete Type
openConcreteVarType.tooltip=Open the Variable's Concrete Implementation Type

openConcreteVarTypeHierarchy.label=Open Concrete Type Hierarch&y
openConcreteVarTypeHierarchy.tooltip=Open the Variable's Concrete Implementation Type Hierarchy

openRecType.label=Open Receiving T&ype
openRecType.tooltip=Open the Receiving Type

openRecTypeHierarchy.label=Open Receiving Type Hier&archy
openRecTypeHierarchy.tooltip=Open the Receiving Type's Hierarchy

newDetailFormatter.label=Ne&w Detail Formatter...
newDetailFormatter.tooltip=Associate a Detail Formatter with this Type

editDetailFormatter.label=Edit Detai&l Formatter...
editDetailFormatter.tooltip=Edit the Detail Formatter Associated with this Type

removeDetailFormatter.label=&Remove Detail Formatter
removeDetailFormatter.tooltip=Remove the Detail Formatter Associated with this Type

runAction.label=&Run...
runAction.tooltip=Run

RunMenu.label=&Run

runToLineAction.label=Run to &Line

scrapbookLauncher.label=Java Scrapbook Page

showQualifiedAction.label=Show &Qualified Names
showQualifiedAction.tooltip=Show Qualified Names

showStaticAction.label=Show &Static Variables
showStaticAction.tooltip=Show Static Variables

showConstantsAction.label=Show &Constants
showConstatnsAction.tooltip=Show Static Final Variables

showSystemThreads.label=Show &System Threads
showSystemThreads.tooltip=Show System Threads

showNullEntriesAction.label=Show &Null Array Entries
showNullEntriesAction.tooltip=Show Null Array Entries

stepIntoSelectionAction.label=Step &into Selection
stepIntoSelectionAction.tooltip=Step into the selected method

suspendPolicy.label=&Suspend VM

Watch.label=Wa&tch

primitiveOptionsAction.label=&Java Primitives...
primitiveOptionsAction.tooltip=Set display options for Java primitives

uncaughtAction.label=&Uncaught

vmPageName=Runtime JRE

JavaApplicationShortcut.label=Java Application

jreSystemLibrary.name=JRE System Library

JDTLaunchActionSet.label=Java Launch

providerName=Eclipse.org

JavaSourceLocator.name=Prompting Java Source Locator
JavaDebugActionGroup.name=Java Debug

excludeExceptionLocationAction.label=E&xclude Exception Location
excludeExceptionLocationAction.tooltip=Excludes the Exception Location from Consideration in the Exception Breakpoint

MonitorsView.name= Threads and Monitors
MonitorTraceAction.label=&Suspend All Threads
MonitorTraceAction.tooltip=Suspend All Threads for Selected Debug Target
MonitorQuitAction.label=&Resume All Threads
MonitorQuitAction.tooltip=Resume All Threads for Selected Debug Target
DeadlockView.label=Deadlock View
DeadlockView.tooltip=Switch to Deadlock View
MonitorView.label=Monitor View
MonitorView.tooltip=Switch to Monitor View
ThreadView.label=Thread View
ThreadView.tooltip=Switch to Thread View

AppletShortcut.label=Java Applet

ActionDefinition.localJavaShortcut.name=Run as Java Application
ActionDefinition.localJavaShortcut.description=Attempts to run the currently selected element as a Java application
ActionDefinition.javaAppletShortcut.name=Run as Java Applet
ActionDefinition.javaAppletShortcut.description=Attempts to run the currently selected element as a Java applet
ActionDefinition.manageWatchpoint.name= Toggle Watchpoint
ActionDefinition.manageWatchpoint.description=Add or remove a Java watchpoint
ActionDefinition.manageMethodBreakpoint.name= Toggle Method Breakpoint
ActionDefinition.manageMethodBreakpoint.description=Add or remove a Java method breakpoint
ActionDefinition.addException.name=Add Java Exception Breakpoint
ActionDefinition.addException.description=Add a Java exception breakpoint
ActionDefinition.manageBreakpoint.name= Toggle Breakpoint
ActionDefinition.manageBreakpoint.description=Add or remove a Java Breakpoint
ActionDefinition.stepIntoSelection.name=Step Into Selection
ActionDefinition.stepIntoSelection.description=Step into the current selected statement
ActionDefinition.runToLine.name=Run to Line
ActionDefinition.runToLine.description=Resume and break if the execution reaches the current line
ActionDefinition.execute.name=Execute
ActionDefinition.execute.description=Evaluate selected text
ActionDefinition.display.name=Display
ActionDefinition.display.description=Display result of evaluating selected text
ActionDefinition.inspect.name=Inspect
ActionDefinition.inspect.description=Inspect result of evaluating selected text

AddBookmark.label=Add Boo&kmark...
AddBookmark.tooltip=Add Bookmark...
AddTask.label=Add &Task...
AddTask.tooltip=Add Task...
