###############################################################################
# Copyright (c) 2003, 2019 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# 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
ExceptionBreakpointEditor_recurrence_label=Suspend on &recurrence per instance:
ExceptionBreakpointEditor_recurrence_always=always
ExceptionBreakpointEditor_recurrence_onlyOnce=only once
ExceptionBreakpointEditor_recurrence_unconfigured=unconfigured
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
JavaExceptionBreakpointPage_5=Java Exception Breakpoint
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
JavaVariableDetailsPane_choosePreviousExpression=<Choose a previously entered expression>
JavaVariableDetailsPane_description=Java Variable Detail Pane Viewer
JavaVariableDetailsPane_historySeparator=Global history
JavaVariableDetailsPane_name=Java Variable Detail Pane Viewer
JavaVariableDetailsPane_settings=Java Variable Detail Pane Settings
ThreadFilterEditor_1=&Restrict to Selected Thread(s):
ThreadFilterEditor_2=Must select a thread in selected targets
InstanceFilterEditor_0=Restricted to Selected Ob&ject(s)
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.
