###############################################################################
# Copyright (c) 2000, 2012 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 Display 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 Display View

ToggleBreakpointAdapter_9=Selection does not contain a method
ToggleBreakpointAdapter_10=Selection does not contain a field
ToggleBreakpointAdapter_7=You cannot set method breakpoints in interfaces.
ToggleBreakpointAdapter_6=You cannot set breakpoints in interfaces.
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:
