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

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: