###############################################################################
# Copyright (c) 2000, 2005 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
###############################################################################



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_9=Cannot perform nested evaluations.
JavaDetailFormattersManager_0=<toString() unavailable. Component type not loaded>
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_title=Step Filtering
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={0} was unable to replace the running code with the code in the workspace.
JDIDebugUIPlugin_1=Do not show error &when hot code replace fails
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_Internal_Error_1=Internal Error
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

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]
JDIModelPresentation_System_Thread____0____Terminated__7=System Thread [({0}] (Terminated)
JDIModelPresentation_System_Thread___0____Evaluating__9=System Thread [{0}] (Evaluating)
JDIModelPresentation_System_Thread___0____Running__11=System Thread [{0}] (Running)
JDIModelPresentation_System_Thread___0____Stepping__9=System Thread [{0}] (Stepping)
JDIModelPresentation_System_Thread___0____Suspended__27=System Thread [{0}] (Suspended)
JDIModelPresentation_System_Thread___0____Suspended___1____2=System Thread [{0}] (Suspended ({1}))
JDIModelPresentation_System_Thread___0____Suspended__access_of_field__1__in__2____16=System Thread [{0}] (Suspended (access of field {1} in {2}))
JDIModelPresentation_System_Thread___0____Suspended__breakpoint_at_line__1__in__2____24=System Thread [{0}] (Suspended (breakpoint at line {1} in {2}))
JDIModelPresentation_System_Thread___0____Suspended__entry_into_method__1__in__2____21=System Thread [{0}] (Suspended (entry into method {1} in {2}))
JDIModelPresentation_System_Thread___0____Suspended__exception__1____13=System Thread [{0}] (Suspended (exception {1}))
JDIModelPresentation_System_Thread___0____Suspended__exit_of_method__1__in__2____21=System Thread [{0}] (Suspended (exit of method {1} in {2}))
JDIModelPresentation_System_Thread___0____Suspended__modification_of_field__1__in__2____18=System Thread [{0}] (Suspended (modification of field {1} in {2}))
JDIModelPresentation_System_Thread___0____Suspended__run_to_line__1__in__2____23=System Thread [{0}] (Suspended (run to line {1} in {2}))
JDIModelPresentation_target_suspended=\ (Suspended)
JDIModelPresentation_Thread____0____Terminated__8=Thread [({0}] (Terminated)
JDIModelPresentation_Thread___0____Evaluating__10=Thread [{0}] (Evaluating)
JDIModelPresentation_Thread___0____Running__12=Thread [{0}] (Running)
JDIModelPresentation_Thread___0____Stepping__10=Thread [{0}] (Stepping)
JDIModelPresentation_Thread___0____Suspended__28=Thread [{0}] (Suspended)
JDIModelPresentation_Thread___0____Suspended___1____3=Thread [{0}] (Suspended ({1}))
JDIModelPresentation_Thread___0____Suspended__access_of_field__1__in__2____17=Thread [{0}] (Suspended (access of field {1} in {2}))
JDIModelPresentation_Thread___0____Suspended__breakpoint_at_line__1__in__2____26=Thread [{0}] (Suspended (breakpoint at line {1} in {2}))
JDIModelPresentation_Thread___0____Suspended__entry_into_method__1__in__2____22=Thread [{0}] (Suspended (entry into method {1} in {2}))
JDIModelPresentation_Thread___0____Suspended__exception__1____14=Thread [{0}] (Suspended (exception {1}))
JDIModelPresentation_Thread___0____Suspended__exit_of_method__1__in__2____22=Thread [{0}] (Suspended (exit of method {1} in {2}))
JDIModelPresentation_Thread___0____Suspended__modification_of_field__1__in__2____19=Thread [{0}] (Suspended (modification of field {1} in {2}))
JDIModelPresentation_Thread___0____Suspended__run_to_line__1__in__2____25=Thread [{0}] (Suspended (run to line {1} in {2}))
JDIModelPresentation_thread_filtered=[thread filtered]
JDIModelPresentation_uncaught_62=uncaught

JDIDebugUIPlugin_An_error_occurred_retrieving_a_VMInstallType_page_1=An error occurred retrieving a VMInstallType page

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
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_1=Java debug options failed to initialize
JavaDebugOptionsManager_Line_breakpoint___4=Line breakpoint:
JavaBreakpointWorkbenchAdapterFactory_1=\ [line:
JavaDebugHover_16=Press F2 for focus.

HotCodeReplaceErrorDialog_0=&Continue
HotCodeReplaceErrorDialog_1=&Terminate
HotCodeReplaceErrorDialog_2={0} failed
HotCodeReplaceErrorDialog_3=&Disconnect
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_115=Thread [0] (Class load: {1})
JDIModelPresentation_116=\ (disabled)
JDIModelPresentation_117=\ [Include Subclasses]
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_0=See <a>''{0}''</a> for general debug settings.
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
