###############################################################################
# Copyright (c) 2000, 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
#     Jesper Steen Moller - Enhancement 254677 - filter getters/setters
###############################################################################



ExceptionHandler_seeErrorLogMessage= See error log for more details.

ImageDescriptorRegistry_Allocating_image_for_wrong_display_1=Allocating image for wrong display

JavaDebugPreferencePage_description=General settings for Java Debugging.
JavaDebugPreferencePage_Enable_hot_code_replace_1=Enable hot co&de replace
JavaDebugPreferencePage_Alert_me_when_hot_code_replace_fails_1=Show error when hot code replace &fails
JavaDebugPreferencePage_Alert_me_when_hot_code_replace_is_not_supported_1=Show error when hot code replace is not &supported
JavaDebugPreferencePage_Alert_me_when_obsolete_methods_remain_1=Show error when &obsolete methods remain after hot code replace
JavaDebugPreferencePage_Display__hexadecimal_values__byte__short__char__int__long__3=Display &hexadecimal values (byte, short, char, int, long)
JavaDebugPreferencePage_Display__unsigned_values__byte__5=Display &unsigned values (byte)
JavaDebugPreferencePage_Display_ASCII__character_values__byte__short__int__long__4=Display ASCII &character values (byte, short, int, long)
JavaDebugPreferencePage_Hot_Code_Replace_2=Hot Code Replace
JavaDebugPreferencePage_Suspend__execution_on_uncaught_exceptions_1=Suspend &execution on uncaught exceptions
JavaDebugPreferencePage_Suspend_Execution_1=Suspend Execution
JavaDebugPreferencePage_Suspend_execution_on_co_mpilation_errors_1=Suspend execution on co&mpilation errors
JavaDebugPreferencePage_Value_must_be_a_valid_integer_greater_than__0__ms_1=Value must be a valid integer greater than or equal to {0} ms
JavaDebugPreferencePage_Replace_classfiles_containing_compilation_errors_1=Replace &classfiles containing compilation errors
JavaDebugPreferencePage_ShowStepResult_1=S&how method result after a step operation (if supported by the VM; may be slow)
JavaDebugPreferencePage_ShowStepTimeout_ms_1=Don't show &if step operation takes longer than (ms):
JavaDebugPreferencePage_Communication_1=Communication
JavaDebugPreferencePage_Debugger__timeout__2=Debugger &timeout (ms):
JavaDebugPreferencePage__Launch_timeout__ms___1=&Launch timeout (ms):
JavaDebugPreferencePage_14=Suspend for &breakpoints during evaluations
JavaDetailFormattersManager_7=<details unavailable - not supported by VM>
JavaDetailFormattersManager_6=This thread has been manually suspended and therefore object details are unavailable.
JavaHotCodeReplaceListener_0=<unknown>
JavaPrimitivesPreferencePage_0=Primitive Display Options
JavaPrimitivesPreferencePage_1=Display options for primitive values

JavaStepFilterPreferencePage_Filter_co_nstructors_19=Filter co&nstructors
JavaStepFilterPreferencePage_Filter_s_ynthetic_methods__requires_VM_support__17=Filter s&ynthetic methods (requires VM support)
JavaStepFilterPreferencePage_Filter_static__initializers_18=Filter static &initializers
JavaStepFilterPreferencePage_Filter_getters=Filter simple &getters
JavaStepFilterPreferencePage_Filter_setters=Filter simple se&tters
JavaStepFilterPreferencePage_title=Step Filtering
JavaStepFilterPreferencePage_0=Step t&hrough filters
JavaStepFilterPreferencePage_description=Step filters are applied when the 'Use Step Filters' toggle is activated.
JavaStepFilterPreferencePage_Remove_all_selected_step_filters_16=Remove All Selected Step Filters
JavaStepFilterPreferencePage_Select_a_package_to_filter_when_stepping_27=&Select a package to filter when stepping:
JavaStepFilterPreferencePage_Select_a_type_to_filter_when_stepping_23=&Select a class to filter when stepping:
JavaStepFilterPreferencePage__Remove_15=&Remove
JavaStepFilterPreferencePage_Add__Filter_9=Add &Filter...
JavaStepFilterPreferencePage_Add__Package____13=Add &Packages...
JavaStepFilterPreferencePage__Use_step_filters=&Use Step Filters
JavaStepFilterPreferencePage_Add__Type____11=Add &Class...
JavaStepFilterPreferencePage_Add_package_to_step_filters_24=Add Packages to Step Filters
JavaStepFilterPreferencePage_Add_type_to_step_filters_20=Add Class to Step Filters
JavaStepFilterPreferencePage_Choose_a_Java_type_and_add_it_to_step_filters_12=Choose a Java Type and Add It to Step Filters
JavaStepFilterPreferencePage_Choose_a_package_and_add_it_to_step_filters_14=Choose Package(s) to Add to Step Filters
JavaStepFilterPreferencePage_Could_not_open_package_selection_dialog_for_step_filters_25=Could not open package selection dialog for step filters
JavaStepFilterPreferencePage_Could_not_open_type_selection_dialog_for_step_filters_21=Could not open type selection dialog for step filters
JavaStepFilterPreferencePage_Defined_step_fi_lters__8=Defined step fi&lters:
JavaStepFilterPreferencePage_Key_in_the_name_of_a_new_step_filter_10=Key in the Name of a New Step Filter
JavaStepFilterPreferencePage__Select_All_1=&Select All
JavaStepFilterPreferencePage_Selects_all_step_filters_2=Selects all step filters
JavaStepFilterPreferencePage_Deselect_All_3=D&eselect All
JavaStepFilterPreferencePage_Deselects_all_step_filters_4=Deselects all step filters

JDIDebugUIPlugin__0__contains_obsolete_methods_1={0} contains obsolete methods.
JDIDebugUIPlugin__0__was_unable_to_replace_the_running_code_with_the_code_in_the_workspace__2=Some code changes cannot be hot swapped into a running virtual machine, such as changing method names or introducing errors into running code.\n\nThe current target virtual machine [{0}] from launch [{1}] was unable to replace the running code with the code in the workspace.\n\nIt is safe to continue running the application, but you may notice discrepancies when debugging this application.
JDIDebugUIPlugin_1=Do not show error &when hot code replace fails
JDIDebugUIPlugin_4=Information
JDIDebugUIPlugin_2=Do not show error &when obsolete methods remain
JDIDebugUIPlugin_Error_1=Error
JDIDebugUIPlugin_Hot_code_replace_failed_1=Hot Code Replace Failed
JDIDebugUIPlugin_Obsolete_methods_remain_1=Obsolete Methods on the Stack
JDIDebugUIPlugin_Stepping_may_be_hazardous_1=The virtual machine was unable to remove all stack frames running old code from the call stack. The virtual machine is not supplying the debugger with valid data for those frames. Stepping into these obsolete frames may be hazardous to the target virtual machine.
JDIDebugUIPlugin_The_target_VM_does_not_support_hot_code_replace_1=The target VM does not support hot code replace
JDIDebugUIPlugin_3=Do not show error &when hot code replace is not supported
JDIDebugUIPlugin_0=Warning

JDIModelPresentation__No_explicit_return_value__30=(No explicit return value)
JDIModelPresentation__conditional__2=[conditional]
JDIModelPresentation___may_be_out_of_synch__2=\ (may be out of synch)
JDIModelPresentation___out_of_synch__1=\ (out of synch)
JDIModelPresentation___scoped__1=\ [scoped]
JDIModelPresentation__1____0__63={1}: {0}
JDIModelPresentation__disconnected__4=<disconnected>
JDIModelPresentation__not_responding__6=<not responding>
JDIModelPresentation__garbage_collected_object__6=<garbage collected object>
JDIModelPresentation__obsolete_method_in__1=<obsolete method in
JDIModelPresentation__terminated__2=<terminated>
JDIModelPresentation_access_71=\ [access]
JDIModelPresentation_access_and_modification_70=\ [access and modification]
JDIModelPresentation_caught_61=caught
JDIModelPresentation_caught_and_uncaught_60=caught and uncaught
JDIModelPresentation_Compilation_error_1=Compilation error
JDIModelPresentation_entry_and_exit=\ [entry and exit]
JDIModelPresentation_entry=\ [entry]
JDIModelPresentation_exit=\ [exit]
JDIModelPresentation_hit_count__67=hit count:
JDIModelPresentation_line__65=line:
JDIModelPresentation_line__76=line:
JDIModelPresentation_local_variables_unavailable=[local variables unavailable]
JDIModelPresentation_modification_72=\ [modification]
JDIModelPresentation_native_method=[native method]
JDIModelPresentation_not_available=not available
JDIModelPresentation_Suspend_VM=[Suspend VM]

###############################################################################
# Thread label keys are built programmatically

thread_terminated=Thread [{0}] (Terminated)
thread_evaluating=Thread [{0}] (Evaluating)
thread_running=Thread [{0}] (Running)
thread_stepping=Thread [{0}] (Stepping)
thread_suspended=Thread [{0}] (Suspended)
thread_suspended_problem=Thread [{0}] (Suspended ({1}))
thread_suspended_fieldaccess=Thread [{0}] (Suspended (access of field {1} in {2}))
thread_suspended_linebreakpoint=Thread [{0}] (Suspended (breakpoint at line {1} in {2}))
thread_suspended_methodentry=Thread [{0}] (Suspended (entry into method {1} in {2}))
thread_suspended_exception=Thread [{0}] (Suspended (exception {1}))
thread_suspended_methodexit=Thread [{0}] (Suspended (exit of method {1} in {2}))
thread_suspended_fieldmodification=Thread [{0}] (Suspended (modification of field {1} in {2}))
thread_suspended_runtoline=Thread [{0}] (Suspended (run to line {1} in {2}))
thread_suspended_classprepare=Thread [{0}] (Class load: {1})

thread_daemon_terminated=Daemon Thread [{0}] (Terminated)
thread_daemon_evaluating=Daemon Thread [{0}] (Evaluating)
thread_daemon_running=Daemon Thread [{0}] (Running)
thread_daemon_stepping=Daemon Thread [{0}] (Stepping)
thread_daemon_suspended=Daemon Thread [{0}] (Suspended)
thread_daemon_suspended_problem=Daemon Thread [{0}] (Suspended ({1}))
thread_daemon_suspended_fieldaccess=Daemon Thread [{0}] (Suspended (access of field {1} in {2}))
thread_daemon_suspended_linebreakpoint=Daemon Thread [{0}] (Suspended (breakpoint at line {1} in {2}))
thread_daemon_suspended_methodentry=Daemon Thread [{0}] (Suspended (entry into method {1} in {2}))
thread_daemon_suspended_exception=Daemon Thread [{0}] (Suspended (exception {1}))
thread_daemon_suspended_methodexit=Daemon Thread [{0}] (Suspended (exit of method {1} in {2}))
thread_daemon_suspended_fieldmodification=Daemon Thread [{0}] (Suspended (modification of field {1} in {2}))
thread_daemon_suspended_runtoline=Daemon Thread [{0}] (Suspended (run to line {1} in {2}))
thread_daemon_suspended_classprepare=Daemon Thread [{0}] (Class load: {1})

thread_system_terminated=System Thread [{0}] (Terminated)
thread_system_evaluating=System Thread [{0}] (Evaluating)
thread_system_running=System Thread [{0}] (Running)
thread_system_stepping=System Thread [{0}] (Stepping)
thread_system_suspended=System Thread [{0}] (Suspended)
thread_system_suspended_problem=System Thread [{0}] (Suspended ({1}))
thread_system_suspended_fieldaccess=System Thread [{0}] (Suspended (access of field {1} in {2}))
thread_system_suspended_linebreakpoint=System Thread [{0}] (Suspended (breakpoint at line {1} in {2}))
thread_system_suspended_methodentry=System Thread [{0}] (Suspended (entry into method {1} in {2}))
thread_system_suspended_exception=System Thread [{0}] (Suspended (exception {1}))
thread_system_suspended_methodexit=System Thread [{0}] (Suspended (exit of method {1} in {2}))
thread_system_suspended_fieldmodification=System Thread [{0}] (Suspended (modification of field {1} in {2}))
thread_system_suspended_runtoline=System Thread [{0}] (Suspended (run to line {1} in {2}))
thread_system_suspended_classprepare=System Thread [{0}] (Class load: {1})

thread_daemon_system_terminated=Daemon System Thread [{0}] (Terminated)
thread_daemon_system_evaluating=Daemon System Thread [{0}] (Evaluating)
thread_daemon_system_running=Daemon System Thread [{0}] (Running)
thread_daemon_system_stepping=Daemon System Thread [{0}] (Stepping)
thread_daemon_system_suspended=Daemon System Thread [{0}] (Suspended)
thread_daemon_system_suspended_problem=Daemon System Thread [{0}] (Suspended ({1}))
thread_daemon_system_suspended_fieldaccess=Daemon System Thread [{0}] (Suspended (access of field {1} in {2}))
thread_daemon_system_suspended_linebreakpoint=Daemon System Thread [{0}] (Suspended (breakpoint at line {1} in {2}))
thread_daemon_system_suspended_methodentry=Daemon System Thread [{0}] (Suspended (entry into method {1} in {2}))
thread_daemon_system_suspended_exception=Daemon System Thread [{0}] (Suspended (exception {1}))
thread_daemon_system_suspended_methodexit=Daemon System Thread [{0}] (Suspended (exit of method {1} in {2}))
thread_daemon_system_suspended_fieldmodification=Daemon System Thread [{0}] (Suspended (modification of field {1} in {2}))
thread_daemon_system_suspended_runtoline=Daemon System Thread [{0}] (Suspended (run to line {1} in {2}))
thread_daemon_system_suspended_classprepare=Daemon System Thread [{0}] (Class load: {1})

###############################################################################

JDIModelPresentation_target_suspended=\ (Suspended)

JDIModelPresentation_thread_filtered=[thread filtered]
JDIModelPresentation_uncaught_62=uncaught
SuspendTimeoutHandler_suspend=Suspend
SuspendTimeoutHandler_timeout_occurred=A timeout occurred while retrieving stack frames for thread: {0}.
JDIDebugUIPlugin_Searching_1=Searching
JDIModelPresentation_unknown_name__1=<unknown name>
JDIModelPresentation_unknown_type__2=<unknown type>
JDIModelPresentation_unknown_value__3=<unknown value>
JDIModelPresentation_unknown_declaring_type__4=<unknown declaring type>
JDIModelPresentation_unknown_receiving_type__5=<unknown receiving type>
JDIModelPresentation_unknown_method_name__6=<unknown method name>
JDIModelPresentation__unknown_arguements___7=(<unknown arguments>)
JDIModelPresentation__unknown_line_number__8=\ <unknown line number>
JDIModelPresentation_instance_1=[instance={0}]
NoLineNumberAttributesStatusHandler_Java_Breakpoint_1=Java Breakpoint
NoLineNumberAttributesStatusHandler_2=Unable to install breakpoint in {0} due to missing line number attributes. Modify compiler options to generate line number attributes.

JavaDetailFormattersPreferencePage_Add__Formatter____5=Ad&d...
JavaDetailFormattersPreferencePage_Allow_you_to_create_a_new_detail_formatter_6=Allow you to create a new detail formatter
JavaDetailFormattersPreferencePage__Remove_7=&Remove
JavaDetailFormattersPreferencePage_0=Detail Formatters
JavaDetailFormattersPreferencePage_1=Show variable details ('toString()' value):
JavaDetailFormattersPreferencePage_2=As the label for variables with detail &formatters
JavaDetailFormattersPreferencePage_3=As the label for &all variables
JavaDetailFormattersPreferencePage_4=In &detail pane only
JavaDetailFormattersPreferencePage_Remove_all_selected_detail_formatters_8=Remove all selected detail formatters
JavaDetailFormattersPreferencePage__Edit____9=&Edit...
JavaDetailFormattersPreferencePage_Edit_the_selected_detail_formatter_10=Edit the selected detail formatter
JavaDetailFormattersPreferencePage_Override_default___toString_____for_Variables_and_Expressions_view_details__1=Override default \'toString()\' for object details.
JavaDetailFormattersPreferencePage__Types_with_detail_formatters__2=&Types with detail formatters:
JavaDetailFormattersPreferencePage_Detail_formatter_code_snippet_defined_for_selected_type__3=Detail &formatter code snippet defined for selected type:

DetailFormatterDialog_Qualified_type__name__2=Qualified type &name:
DetailFormatterDialog_Qualified_type_name_must_not_be_empty__3=Qualified type name must not be empty.
DetailFormatterDialog_Select__type_4=Select &Type...
DetailFormatterDialog_Select_type_6=Select Type
DetailFormatterDialog_Could_not_open_type_selection_dialog_for_detail_formatters_7=Could not open type selection dialog for detail formatters
DetailFormatterDialog_Select_type_8=Select Type
DetailFormatterDialog_Select_type_9=Browse Type
DetailFormatterDialog_Select_type_10=In order to  browse a type, a project needs to be present and accessible. 
DetailFormatterDialog_Select_a_type_to_format_when_displaying_its_detail_9=&Select a type to format when displaying its detail:
DetailFormatterDialog_Edit_Detail_Formatter_1=Edit Detail Formatter
DetailFormatterDialog_Add_Detail_Formatter_2=Add Detail Formatter
DetailFormatterDialog_Associated_code_must_not_be_empty_3=Detail formatter code snippet must not be empty
DetailFormatterDialog_Detail_formatter__code_snippet__1=Detail formatter &code snippet:
DetailFormatterDialog_17=Detail formatter &code snippet ({0} for code assist):

No_type_with_the_given_name_found_in_the_workspace__1=No type with the given name found in the workspace.
JavaDetailFormattersManager_Detail_formatter_error___1=Detail formatter error:
JavaDetailFormattersManager_An_exception_occurred___0__3=An exception occurred: {0}
DetailFormatterDialog__Enable_1=&Enable this detail formatter
DetailFormatterDialog_A_detail_formatter_is_already_defined_for_this_type_2=A detail formatter is already defined for this type

JavaUISourceLocator_Select_Source_1=Duplicate Source Files Found
JavaUISourceLocator__Select_the_source_that_corresponds_to__0__2=&Select the source that corresponds to {0}
JavaUISourceLocator__Matching_files__3=&Matching files:
JavaUISourceLocator__Location__4=&Location:

ConditionalBreakpointErrorDialog_Conditional_Breakpoint_Error_1=Conditional Breakpoint Error
ConditionalBreakpointErrorDialog__Edit_Condition_2=&Edit Condition

JavaDebugOptionsManager_Conditional_breakpoint_encountered_runtime_exception__1=Conditional breakpoint encountered runtime exception.
JavaDebugOptionsManager_Conditional_breakpoint_has_compilation_error_s___2=Conditional breakpoint has compilation error(s).
JavaDetailFormattersManager_null=null
JavaDetailFormattersManager_no_suspended_threads=[toString() unavailable - no suspended threads]
JavaDetailFormattersManager__unknown_=<unknown>
JavaLogicalStructuresPreferencePage_0=Java Logical Structures
JavaLogicalStructuresPreferencePage_1=&Logical Structures:
JavaLogicalStructuresPreferencePage_10=Show As
JavaLogicalStructuresPreferencePage_11=Define 'logical structures' used when browsing variables.
JavaLogicalStructuresPreferencePage_12=Previe&w:
JavaLogicalStructuresPreferencePage_2=&Add...
JavaLogicalStructuresPreferencePage_3=Add a new logical structure
JavaLogicalStructuresPreferencePage_4=&Edit...
JavaLogicalStructuresPreferencePage_5=Edit the selected logical structure
JavaLogicalStructuresPreferencePage_6=&Remove
JavaLogicalStructuresPreferencePage_7=Remove the selected logical structure(s)
JavaLogicalStructuresPreferencePage_8=\ [contributed by {0}]
JavaLogicalStructuresPreferencePage_9=Type
JDIModelPresentation_no_suspended_threads=[toString() unavailable - no suspended threads]

JavaDebugOptionsManager_Breakpoint___1=Breakpoint:
JavaDebugOptionsManager_Method_breakpoint___2=Method breakpoint:
JavaDebugOptionsManager_Watchpoint___3=Watchpoint:
JavaDebugOptionsManager_0=Initialize Java Debug Options
JavaDebugOptionsManager_Line_breakpoint___4=Line breakpoint:
JavaBreakpointWorkbenchAdapterFactory_1=\ [line:

HotCodeReplaceErrorDialog_0=&Continue
HotCodeReplaceErrorDialog_1=&Terminate
HotCodeReplaceErrorDialog_2={0} Failed
HotCodeReplaceErrorDialog_3=Di&sconnect
HotCodeReplaceErrorDialog_5=Terminate
HotCodeReplaceErrorDialog_6=Disconnect
HotCodeReplaceErrorDialog_7=&Restart
HotCodeReplaceErrorDialog_8=Restart

CreateStepFilterDialog_2=Add Step Filter
CreateStepFilterDialog_3=&Pattern to filter:
CreateStepFilterDialog_4=Step Filter must be a valid Java identifier.
CreateStepFilterDialog_5=Step Filter already exists.
TypeNameResolver_0=The selected resource does not resolve to a Java element
JDIModelPresentation_116=\ (disabled)
JDIModelPresentation_117=\ [Include Subclasses]
JDIModelPresentation_118=(id={0})
JDIModelPresentation_0=owned by: {0}
JDIModelPresentation_1=waited by: {0}
JDIModelPresentation_2=waiting for: {0}
JDIModelPresentation_3=owns: {0}
JDIModelPresentation_4=An exception occurred. See log for details.
JDIModelPresentation_5=<VM does not provide monitor information>
JDIModelPresentation_6=<deleted breakpoint>
NoLineNumberAttributesStatusHandler_3=Don't &tell me again
JavaDebugPreferencePage_19=Wa&rn when unable to install breakpoint due to missing line number attributes
JavaDebugPreferencePage_20=Open popup when suspended on e&xception
JavaDebugPreferencePage_21=Default suspend policy for new brea&kpoints:
JavaDebugPreferencePage_22=Suspend Thread
JavaDebugPreferencePage_23=Suspend VM
JavaDebugPreferencePage_24=Default suspend policy for new &watchpoints:
JavaDebugPreferencePage_25=Access & Modification
JavaDebugPreferencePage_26=Access
JavaDebugPreferencePage_27=Modification
JavaDebugPreferencePage_promptWhenDeletingCondidtionalBreakpoint=&Prompt for confirmation when deleting a conditional breakpoint from editor
JavaDebugPreferencePage_0=See <a>''{0}''</a> for general debug settings.
JavaDebugPreferencePage_advancedSourcelookup=Use &advanced source lookup (JRE 1.5 and higher)  
JavaDebugPreferencePage_listenToThreadNameChanges=L&isten to thread name changes
JavaDebugPreferencePage_only_include_exported_entries=Onl&y include exported classpath entries when launching
JavaDebugPreferencePage_filterUnrelatedBreakpoints=Do &not install breakpoints from unrelated projects
JavaVariableLabelProvider_0=unavailable
EditLogicalStructureDialog_0=Qualified type &name:
EditLogicalStructureDialog_1=&Browse...
EditLogicalStructureDialog_2=D&escription:
EditLogicalStructureDialog_3=Applies to &subtypes
EditLogicalStructureDialog_4=Single val&ue
EditLogicalStructureDialog_5=List of va&riables
EditLogicalStructureDialog_7=Variable
EditLogicalStructureDialog_8=N&ame:
EditLogicalStructureDialog_9=&Code:
EditLogicalStructureDialog_10=A&dd
EditLogicalStructureDialog_11=Re&move
EditLogicalStructureDialog_12=U&p
EditLogicalStructureDialog_13=Do&wn
EditLogicalStructureDialog_14=name
EditLogicalStructureDialog_15=// code
EditLogicalStructureDialog_16=Qualified type name must not be empty.
EditLogicalStructureDialog_17=Description must not be empty.
EditLogicalStructureDialog_18=Associated code must not be empty.
EditLogicalStructureDialog_19=The logical structure must have at least one variable.
EditLogicalStructureDialog_20=Attribute name must not be empty.
EditLogicalStructureDialog_21=Associated code must not be empty.
EditLogicalStructureDialog_22=One variable has an empty name
EditLogicalStructureDialog_23=The code associated to the variable ''{0}'' must not be empty
EditLogicalStructureDialog_24=No type with the given name found in the workspace
EditLogicalStructureDialog_25=Browse the list of types defined in the workspace
EditLogicalStructureDialog_26=Indicates if this logical structure should be used for subtypes of this type too
EditLogicalStructureDialog_27=Add a new variable
EditLogicalStructureDialog_28=Remove the selected variables
EditLogicalStructureDialog_29=Move the selected variables up
EditLogicalStructureDialog_30=Move the selected variables down
EditLogicalStructureDialog_31=Edit Java Logical Structure
EditLogicalStructureDialog_32=Add Java Logical Structure
EditLogicalStructureDialog_33=Structure type
HeapWalkingPreferencePage_0=Specify default heap walking settings for VMs that support instance and reference information retrieval.
HeapWalkingPreferencePage_1=Maximum &instances to display:
HeapWalkingPreferencePage_2=Maximum &references to display:
HeapWalkingPreferencePage_3=Instance and Reference Display Settings
HeapWalkingPreferencePage_4=Setting a count to zero indicates all instances or references should be shown.
HeapWalkingPreferencePage_5=Display references as &variables
HeapWalkingPreferencePage_6=Value must be a positive Integer
