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

BreakpointAction_Breakpoint_configuration_1=Breakpoint configuration
BreakpointAction_Exceptions_occurred_attempting_to_modify_breakpoint__2=Exceptions occurred attempting to modify breakpoint.

BreakpointHitCountAction__Enter_the_new_hit_count_for_the_breakpoint__3=&Enter the new hit count for the breakpoint:
BreakpointHitCountAction_Enable_Hit_Count_1=Enable &Hit Count
BreakpointHitCountAction_Set_Breakpoint_Hit_Count_2=Set Breakpoint Hit Count
BreakpointHitCountAction_Value_must_be_positive_integer=Hit count must be a positive integer

BreakpointSuspendPolicy_Suspend__Thread_2=&Suspend Thread
BreakpointSuspendPolicy_Suspend__VM_1=&Suspend VM

DisplayAction_no_result_value=(No explicit return value)
DisplayAction_result_pattern={0} {1}
DisplayAction_type_name_pattern=\ ({0})

Evaluate_error_message_direct_exception=An exception occurred: {0}
Evaluate_error_message_exception_pattern={0} - {1}
Evaluate_error_message_src_context=Unable to evaluate the selected expression:\n\nTo perform an evaluation, an expression must be compiled in the context of a Java project's build path. The current execution context is not associated with a Java project in the workspace.
Evaluate_error_message_stack_frame_context=A stack frame must be selected to provide a context for an evaluation.
Evaluate_error_message_wrapped_exception=An exception occurred: {0}
Evaluate_error_problem_append_pattern={0}\n{1}
Evaluate_error_title_eval_problems=Error Evaluating
EvaluateAction_Cannot_open_Display_view=Unable to open Debug Shell view
EvaluateAction__evaluation_failed__1=(evaluation failed)
EvaluateAction__evaluation_failed__Reason=Evaluation failed. Reason(s):\n{0}
EvaluateAction_Thread_not_suspended___unable_to_perform_evaluation__1=Thread not suspended - unable to perform evaluation.
EvaluateAction_Cannot_perform_nested_evaluations__1=Cannot perform nested evaluations.

JavaBreakpointPropertiesRulerAction_0=Double Click
JavaBreakpointPropertiesRulerAction_Breakpoint__Properties_1=Breakpoint P&roperties...

MoveDownAction_M_ove_Down_1=&Down
MoveUpAction_Move_U_p_1=U&p
RemoveAction__Remove_1=Re&move

AddProjectAction_Add_Project_1=Add Project&s...
AddProjectAction_Project_Selection_2=Project Selection
ProjectSelectionDialog_Add_exported_entries_of_selected_projects__1=&Add exported entries of selected projects.
ProjectSelectionDialog_Add_required_projects_of_selected_projects__2=Add &required projects of selected projects.

AddJarAction_Add__JARs_1=Add &JARs...

AddExternalJar_Add_E_xternal_JARs_1=Add E&xternal JARs...
AddExternalJarAction_error_box_title=External Archive Error
AddExternalJarAction_error_box_message=The selected external archive:\n\n{0} \n\nis unavailable or does not exist.
AddExternalJar_Jar_Selection_3=Jar Selection

AddFolderAction_Add__Folders_1=Add F&olders
AddFolderAction_Folder_Selection_4=Folder Selection
AddFolderAction_Choose_folders_to_add__5=&Choose folders to add:
AddExternalFolderAction_Add_External_Folder_1=Add &External Folder
AddExternalFolderAction_Folder_Selection_3=Folder Selection

AddVariableAction_Add_Variables_1=Add Classpath Var&iables

AttachSourceAction_2=Attac&h Source
AttachSourceAction_3=Attac&h Source...

AddAdvancedAction_Ad_vanced____1=&Advanced...

TerminateEvaluationActionTerminate_Evaluation_1=Terminate Evaluation
TerminateEvaluationActionAttempts_to_terminate_an_evaluation_can_only_stop_a_series_of_statements__The_currently_executing_statement__such_as_a_method_invocation__cannot_be_interrupted__2=Attempts to terminate an evaluation can only stop a series of statements. The currently executing statement (such as a method invocation) cannot be interrupted.

InstanceFiltersAction_0=Instance Filter Breakpoint
InstanceFiltersAction_1=&Restrict selected breakpoint(s) to object \"{0}":
InstanceFiltersAction_2=Instance Filter Breakpoint Selection
InstanceFiltersAction_3=Breakpoint: {0}\nis already restricted to an other object.\nDo you want to set the restriction to object \"{1}\"?
InstanceFiltersAction_4=There are no breakpoints applicable to the selected Java object.
InstanceFiltersAction_Yes_2=Yes
InstanceFiltersAction_Cancel_3=Cancel

RestoreDefaultEntriesAction_0=R&estore Default Entries

StepIntoSelectionHandler_Execution_did_not_enter____0____before_the_current_method_returned__1=Execution did not enter \"{0}\" before the current method returned.

StepIntoSelectionActionDelegate_Step_into_selection_only_available_in_top_stack_frame__3=Step into selection only available in top stack frame.
StepIntoSelectionActionDelegate_4=An exception occurred attempting to run to the selected line.

ObjectActionDelegate_Unable_to_display_type_hierarchy__The_selected_source_element_is_not_contained_in_the_workspace__1=Unable to display type hierarchy. The selected source element is not contained in the workspace.
BreakpointLocationVerifierJob_breakpoint_location=Breakpoint location validation
BreakpointLocationVerifierJob_not_valid_location=Breakpoint cannot be set at the given position
BreakpointLocationVerifierJob_breakpoint_set=Breakpoint set
BreakpointLocationVerifierJob_0=A breakpoint already exists at the next valid location -- line {0}
ManageMethodBreakpointActionDelegate_methodNonAvailable=Cannot create method breakpoint, method signature not available.
BreakpointLocationVerifierJob_breakpointRemoved=Breakpoint removed.
BreakpointLocationVerifierJob_breakpointMovedToValidPosition=The breakpoint has been moved to a valid position.
BreakpointLocationVerifierJob_breakpointSetToRightType=The breakpoint has been set to the right type.
PopupDisplayAction_2=Move to Debug Shell view

ToggleBreakpointAdapter_9=Selection does not contain a method
ToggleBreakpointAdapter_10=Selection does not contain a field
ToggleBreakpointAdapter_6=Cannot set a breakpoint on an unimplemented interface method
ToggleBreakpointAdapter_5=You cannot set watchpoints in interfaces.
ToggleBreakpointAdapter_4=The current editor selection does not contain a valid method declaration.
ToggleBreakpointAdapter_3=A breakpoint cannot be set at the selected editor location.
ToggleBreakpointAdapter_2=The current editor selection does not contain a valid field declaration.
ToggleBreakpointAdapter_1=You cannot set class load breakpoints on interfaces.
ToggleBreakpointAdapter_0=A class load breakpoint cannot be set at the selected editor location.
ToggleBreakpointAdapter_confirmDeleteTitle=Confirm Conditional Breakpoint Delete
ToggleBreakpointAdapter_confirmDeleteMessage=Are you sure you want to delete this conditional breakpoint?
ToggleBreakpointAdapter_confirmDeleteShowAgain=Do not show this &message again
ToggleBreakpointAdapter_ErrorTitle=Operation
ToggleBreakpointAdapter_ErrorMessage=The chosen operation is not available.
StepIntoSelectionHandler_1=Step into selection
StepIntoSelectionHandler_2=OK
StepIntoSelectionHyperlinkDetector_0=Step Into
AddLibraryAction_0=Add &Library
ShowStratumAction_0=Default
JavaVariableValueEditor_0=Error Changing Value
JavaVariableValueEditor_1=An exception occurred attempting to access variable.
JavaObjectValueEditor_0=Evaluation was interrupted and did not complete.
JavaObjectValueEditor_3=Invalid Type
JavaPrimitiveValueEditor_0=Change Primitive Value
JavaPrimitiveValueEditor_1=Enter a new value for {0}:
JavaPrimitiveValueEditor_2=Error Changing Value
JavaPrimitiveValueEditor_3=An exception occurred attempting to change the variable value.
JavaPrimitiveValueEditor_4=Input must be a valid {0}.
ExpressionInputDialog_0=&Enter an expression for {0}. Valid expressions can be either a single expression (e.g. "new Object()") or a series of statements that return a value.
ExpressionInputDialog_1=Input an expression.
ExpressionInputDialog_2=Change Object Value
ExpressionInputDialog_3=variable
StringValueInputDialog_0=&Enter a new string value:
StringValueInputDialog_1=Input &literal text
StringValueInputDialog_2=&Input an evaluation
StringValueInputDialog_4=&Word wrap
OpenFromClipboardAction_ElementToOpen=&Clipboard content could not be opened, refine it and try again:
OpenFromClipboardAction_OpenFromClipboard=Open from Clipboard
OpenFromClipboardAction_OpeningFromClipboard=Opening from Clipboard...
OpenFromClipboardAction_SelectOrEnterTheElementToOpen=Select or enter the element to open:
OpenTypeAction_2=Unable to display the selected type.
EditClasspathEntryAction_0=Ed&it...
ProjectSelectionDialog_0=Choose &project(s) to add:
TracepointToggleAction_Unavailable=The operation is unavailable on the current selection.
Override_Dependencies_title=Override Dependencies
Override_Dependencies_button=Override
Override_Dependencies_button1=&Override Dependencies...
Override_Dependencies_label1=Dependencies derived from the Java Build Path:
Override_Dependencies_label2=Dependencies for launching: