###############################################################################
# Copyright (c) 2000, 2013 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
#     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_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_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_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_only_include_exported_entries=Onl&y include exported classpath entries when launching
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
