##############################################################
# (c) Copyright IBM Corp. 2000, 2001.
# All Rights Reserved.
##############################################################

find_replace_action.label=&Find/Replace@Ctrl+F
find_replace_action.tooltip=Find/Replace
find_replace_action.image=
find_replace_action.description=Find/Replace

ConsolePreferencePage.Console_font_setting___5=Console font setting: 
ConsolePreferencePage.Console_text_color_settings._1=Console text color settings.
ConsolePreferencePage.Standard_Error__3=Standard &Error:
ConsolePreferencePage.Standard_In__4=Standard &In:
ConsolePreferencePage.Standard_Out__2=Standard &Out:
ConsoleView.&Copy@Ctrl+C_6=&Copy@Ctrl+C
ConsoleView.&Paste@Ctrl+V_9=&Paste@Ctrl+V
ConsoleView.Copy_7=Copy
ConsoleView.Copy_8=Copy
ConsoleView.Cu&t@Ctrl+X_3=Cu&t@Ctrl+X
ConsoleView.Cut_4=Cut
ConsoleView.Cut_5=Cut
ConsoleView.Paste_10=Paste
ConsoleView.Paste_Clipboard_Text_11=Paste Clipboard Text
ConsoleView.Select_&All@Ctrl+A_12=Select &All@Ctrl+A
ConsoleView.Select_All_13=Select All
ConsoleView.Select_All_14=Select All
DebugPreferencePage.auto_build_before_launch=Build (if required) before &launching
DebugPreferencePage.Show_&Console_View_when_there_is_program_output_3=Show &Console View when there is program output
DebugPreferencePage.Show_Debug_Perspective_when_a_program_is_launched_in_&run_mode_2=Show Debug Perspective when a program is launched in &run mode
DebugPreferencePage.Show_Debug_Perspective_when_a_program_is_launched_in_de&bug_mode_1=Show Debug Perspective when a program is launched in de&bug mode
DebugPreferencePage.Orientation_of_detail_pane_in_variables_view_1=Orientation of detail pane in variables view
DebugPreferencePage.To_the_right_of_variables_tree_pane_2=&To the right of variables tree pane
DebugPreferencePage.Underneath_the_variables_tree_pane_3=&Underneath the variables tree pane
DebugUIPlugin.Exceptions_occurred_switching_to_the_specified_debug_layout._2=Exceptions occurred switching to the specified debug layout.
DebugUIPlugin.Exceptions_occurred_switching_to_the_specified_debug_layout._4=Exceptions occurred switching to the specified debug layout.
DebugUIPlugin.Problem_Switching_to_the_Debug_Perspective_1=Problem Switching to the Debug Perspective
DebugUIPlugin.Problem_Switching_to_the_Debug_Perspective_3=Problem Switching to the Debug Perspective
DebugUIPlugin.Build_error._Check_log_for_details._2=Build error. Check log for details.
DebugUIPlugin.Run/Debug_1=Run/Debug
DelegatingModelPresentation.<terminated>__7=<terminated> 
DelegatingModelPresentation.<unknown>_4=<unknown>
DelegatingModelPresentation.<unknown>_9=<unknown>
DelegatingModelPresentation.Breakpoint_3=Breakpoint

LauncherPropertyPage.Exceptions_occurred_saving_the_launcher_preferences_6=Exceptions occurred saving the launcher preferences
LauncherPropertyPage.Launcher_information_is_not_available_for_a_closed_project._4=Launcher information is not available for a closed project.
LauncherPropertyPage.Launcher_property_page_5=Launcher property page
LauncherPropertyPage.Run/Debug_3=Run/Debug
LauncherPropertyPage.Select_default_launcher_1=Select default launcher
LauncherPropertyPage.none_2=none

LaunchWizard.Debug_1=Debug
LaunchWizard.Run_2=Run
LaunchWizardNode.Problem_Opening_Wizard_4=Problem Opening Wizard
LaunchWizardNode.The_selected_wizard_could_not_be_started._5=The selected wizard could not be started.
LaunchWizardProjectSelectionPage.Enter_a_pattern_to_select_a_range_of_projects_5=Enter a pattern to select a range of projects
LaunchWizardProjectSelectionPage.No_projects_available._7=No projects available.
LaunchWizardProjectSelectionPage.Select_Project_2=Select Project
LaunchWizardProjectSelectionPage.Select_a_project_for_the_launch_context._6=Select a project for the launch context.
LaunchWizardSelectionPage.<unknown>_6=<unknown>
LaunchWizardSelectionPage.No_launchers_registered._4=No launchers registered.
LaunchWizardSelectionPage.Select_Launcher_1=Select Launcher
LaunchWizardSelectionPage.Select_Launcher_2=Select Launcher
LaunchWizardSelectionPage.Select_a_launcher__3=Select a launcher:
LaunchWizardSelectionPage.Set_as_&default_launcher_for_project___{0}___7=Set as &default launcher for project \"{0}\"

DebugPreferencePage.Remove_terminated_launches_when_a_new_launch_is_created_1=Remo&ve terminated launches when a new launch is created
DebugPreferencePage.Sho&w_variable_value_changes_in_Variables_and_Expressions_Views_1=Sho&w variable value changes in Variables and Expressions Views

LaunchConfigurationTypesPreferencePage._(default)_1=\ (default)
LaunchConfigurationTypesPreferencePage.File_types_2=&File types:
LaunchConfigurationTypesPreferencePage.Configuration_types_3=&Configuration types:
LaunchConfigurationTypesPreferencePage.Set_as_default_4=&Set as Default
Enable_&single-click_launching_1=Enable &single-click launching
