###############################################################################
# Copyright (c) 2003, 2017 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
###############################################################################
BreakpointConditionEditor_1=Enter a condition
ExceptionBreakpointEditor_1=&Caught locations
ExceptionBreakpointEditor_2=&Uncaught locations
ExceptionBreakpointEditor_3=Subclasses of this e&xception
ExceptionFilterEditor_5=Re&strict to Selected Location(s):\nChecked locations are inclusive (stop in the specified location)\nUnchecked locations are exclusive (do not stop in the specified location)
ExceptionFilterEditor_6=&Add
ExceptionFilterEditor_7=Add a fully qualified type name or package name expression as a filter pattern for this breakpoint
ExceptionFilterEditor_8=Add &Class...
ExceptionFilterEditor_9=Choose a Java Class to Add to the Breakpoint Scope
ExceptionFilterEditor_10=Add &Package...
ExceptionFilterEditor_11=Choose a Package to Add to the Breakpoint Scope
ExceptionFilterEditor_12=R&emove
ExceptionFilterEditor_13=Remove all selected scoping elements
ExceptionFilterEditor_14=Invalid expression. Return to continue; escape to exit
ExceptionFilterEditor_15=Add Package to Scope
ExceptionFilterEditor_16=Could not open package selection dialog for scope definition
ExceptionFilterEditor_18=&Select a package to add to the scope of the breakpoint:
ExceptionFilterEditor_19=Add Class to Scope
ExceptionFilterEditor_20=Could not open class selection dialog for scope definition
ExceptionFilterEditor_22=&Select a class to add to the scope of the breakpoint:
JavaBreakpointConditionEditor_0=Co&nditional
JavaBreakpointConditionEditor_1=Suspend when \'tr&ue\'
JavaBreakpointConditionEditor_2=Suspend &when value changes
JavaBreakpointConditionEditor_choosePreviousCondition=<Choose a previously entered condition>
JavaBreakpointConditionEditor_historySeparator=Global history
JavaBreakpointPage_0=Hit count must be a positive integer
JavaBreakpointPage_10=Create Breakpoint for {0}
JavaBreakpointPage_11=Class Prepare Breakpoint
JavaBreakpointPage_12=T&rigger Point
JavaBreakpointPage_13=Active Trigger
JavaBreakpointPage_3=&Type:
JavaBreakpointPage_4=&Hit count:
JavaBreakpointPage_5=&Enabled
JavaBreakpointPage_7=&Suspend thread
JavaBreakpointPage_8=Suspend &VM
JavaBreakpointPage_9=Unable to cancel breakpoint creation
JavaLineBreakpointPage_2=&Line Number:
JavaLineBreakpointPage_3=&Member:
JavaLineBreakpointPage_4=&Method:
JavaLineBreakpointPage_5=&Field:
JavaLineBreakpointPage_7=&Access
JavaLineBreakpointPage_8=&Modification
JavaLineBreakpointPage_10=Entr&y
JavaLineBreakpointPage_11=E&xit
JavaLineBreakpointPage_18=Line Breakpoint
JavaLineBreakpointPage_19=Watchpoint
JavaLineBreakpointPage_20=Method Breakpoint
ThreadFilterEditor_1=&Restrict to Selected Thread(s):
ThreadFilterEditor_2=Must select a thread in selected targets
InstanceFilterEditor_0=Restricted to Selected Ob&ject(s)
JavaExceptionBreakpointPage_5=Java Exception Breakpoint
VMCapabilitiesPropertyPage_0=The selected debug element does not allow access to the underlying virtual machine.
VMCapabilitiesPropertyPage_1=&Virtual Machine: 
VMCapabilitiesPropertyPage_3=Supports synthetic method step filter
VMCapabilitiesPropertyPage_4=Instance specific breakpoints
VMCapabilitiesPropertyPage_6=Deadlock detection
VMCapabilitiesPropertyPage_9=Field modification watchpoints
VMCapabilitiesPropertyPage_10=Field access watchpoints
VMCapabilitiesPropertyPage_12=Method addition
VMCapabilitiesPropertyPage_14=Drop to frame
VMCapabilitiesPropertyPage_15=Hot code replace
VMCapabilitiesPropertyPage_16=Arbitrary class redefinition
VMCapabilitiesPropertyPage_18=JSR045: stepping and breakpoints in non-Java source
VMCapabilitiesPropertyPage_21=Force early return from a method
VMCapabilitiesPropertyPage_24=Return value on method exit breakpoint
VMCapabilitiesPropertyPage_25=Monitor acquisition and release
VMCapabilitiesPropertyPage_26=Heap walking
VMCapabilitiesPropertyPage_27=&Breakpoints
VMCapabilitiesPropertyPage_28=&Hot Code Replace
VMCapabilitiesPropertyPage_29=&Stepping
VMCapabilitiesPropertyPage_30=&General
VMCapabilitiesPropertyPage_31=This page displays optional debug capabilities that may be supported by the selected VM.
