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