######################################################################
# Copyright (c) 2000, 2002 IBM Corp. and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Common Public License v0.5
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v05.html
#
# Contributors:
#    IBM Corporation - Initial implementation
######################################################################

pluginName=JDI Debug UI

accessAction.label=&Access

AddBreakpoint.label=Add &Breakpoint
addBreakpointAction.label=&Breakpoint

breakpointPropertiesAction.label=&Properties...

caughtAction.label=&Caught

debugAction.label=&Debug...
debugAction.tooltip=Debug

DebugMenu.label=&Debug

debugSourcePageName=Debugger Source Lookup

Display.label=Dis&play@Ctrl+D
Display.tooltip=Display the Result of Evaluating the Selected Text

displayViewName=Display

dropFrameAction.label=&Drop to Frame
dropFrameAction.tooltip=Drop the Current Stack Frame

EnableBreakpoint.label=Enable Breakpoint

entryAction.label=&Entry

exceptionAction.label=Add Java Exception Breakpoint
exceptionAction.tooltip=Add Java Exception Breakpoint

execArgPageName=Execution Arguments

exitAction.label=E&xit

hitCount.label=&Hit Count

Inspect.label=Insp&ect@Ctrl+Q
Inspect.tooltip=Inspect the Result of Evaluating the Selected Text

installJREPageName=Installed JREs

JavaBreakpointProperties.label=Breakpoint &Properties...

javaDebugPrefName=Debug

JavaSnippetEditor.label= Scrapbook

javaStepFilterPrefName=Step Filtering

JDTDebugActionSet.label=Java Debug

launcher.description=Launch a local Java program

launcher.label=Java Application

LauncherPropertyPage.name=Launcher

manageMethodBreakpointAction.label=&Add Method Breakpoint

manageWatchpointAction.label=&Add Watchpoint

modificationAction.label=&Modification

openDeclType.label=&Declaring Type
openDeclType.tooltip=Open on Declaring Type

openDeclVarType.label=&Open Declared Type
openDeclVarType.tooltip=Open the Variable's Type

openOnAction.label=O&pen on

openOnConsoleTypeAction.label=&Open On Type
openOnConsoleTypeAction.tooltip=Open On Type

openRecType.label=&Receiving Type
openRecType.tooltip=Open on Receiving Type

processInfoPageName=Process Info

remoteLauncher.description=Attach to a remote Java program
remoteLauncher.label=Remote Java Application

runAction.label=&Run...
runAction.tooltip=Run

runToLineAction.label=Ru&n to Line@Ctrl+R

scrapbookLauncher.label=Java Scrapbook Page

showFinalAction.label=Hide &Final Fields
showFinalAction.tooltip=Hide Final Fields

showQualifiedAction.label=Show &Qualified Names
showQualifiedAction.tooltip=Show Qualified Names

showStaticAction.label=Hide &Static Fields
showStaticAction.tooltip=Hide Static Fields

suspendPolicy.label=Suspend &VM

toggleStepFilterAction.label=Use Step &Filters
toggleStepFilterAction.tooltip=Toggle the Enabled State of all Step Filters

uncaughtAction.label=&Uncaught

vmPageName=Runtime JRE
