###############################################################################
# Copyright (c) 2002, 2015 QNX Software Systems 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:
#     QNX Software Systems - Initial API and implementation
# 	  Monta Vista - Joanne Woo - Bug 87556
#     Nokia - Ken Ryall - Bug 118894
#     Carlos O'Donnel (CodeSourcery) - Bug 218366
#	  IBM Corporation
#     Sergey Prigogin (Google)
#     Marc Khouzam (Ericsson) - New strings for CMainTab2
###############################################################################

AbstractCLaunchDelegate_Debugger_not_installed=CDT Debugger not installed
AbstractCLaunchDelegate_C_Project_not_specified=C Project not specified
AbstractCLaunchDelegate_Not_a_C_CPP_project=Project is not a C/C++ project
AbstractCLaunchDelegate_Program_file_not_specified=Program file not specified
AbstractCLaunchDelegate_Program_file_does_not_exist=Program file does not exist
AbstractCLaunchDelegate_PROGRAM_PATH_not_found={0} not found
AbstractCLaunchDelegate_Working_directory_does_not_exist=Working directory does not exist
AbstractCLaunchDelegate_WORKINGDIRECTORY_PATH_not_found=The working directory {0} does not exist.
AbstractCLaunchDelegate_Project_NAME_does_not_exist=Project {0} does not exist. Please check that your launch configuration specifies a valid project in your workspace.
AbstractCLaunchDelegate_Project_NAME_is_closed=Project {0} is closed
AbstractCLaunchDelegate_Debugger_Process=Debugger Process
AbstractCLaunchDelegate_building_projects=Building prerequisite project list
AbstractCLaunchDelegate_building=Building 
AbstractCLaunchDelegate_searching_for_errors=Searching for compile errors
AbstractCLaunchDelegate_searching_for_errors_in=Searching for compile errors in 
AbstractCLaunchDelegate_20=Building prerequisite project list
AbstractCLaunchDelegate_Program_is_not_a_recognized_executable=Program is not a recognized executable.
AbstractCLaunchDelegate_BuildBeforeLaunch=Build before launch - 
AbstractCLaunchDelegate_PerformingBuild=Performing required build...
AbstractCLaunchDelegate_PerformingIncrementalBuild=Performing incremental workspace build...
AbstractCLaunchDelegate_Refresh=Refresh

LocalRunLaunchDelegate_Launching_Local_C_Application=Launching Local C/C++ Application
LocalRunLaunchDelegate_Failed_setting_runtime_option_though_debugger=Failed to set program arguments, environment or working directory.
LocalRunLaunchDelegate_Error_starting_process=Error starting process
LocalRunLaunchDelegate_Does_not_support_working_dir=Eclipse runtime does not support working directory

LocalAttachLaunchDelegate_Attaching_to_Local_C_Application=Attaching to Local C/C++ Application
LocalAttachLaunchDelegate_No_Process_ID_selected=No Process ID selected
LocalAttachLaunchDelegate_Select_Process=Select Process
LocalAttachLaunchDelegate_Platform_cannot_list_processes=Current platform does not support listing processes
LocalAttachLaunchDelegate_Select_Process_to_attach_debugger_to=Select a Process to attach debugger to:
LocalAttachLaunchDelegate_CDT_Launch_Error=CDT Launch Error

CoreFileLaunchDelegate_Launching_postmortem_debugger=Launching postmortem debugger
CoreFileLaunchDelegate_No_Corefile_selected=No Corefile selected
CoreFileLaunchDelegate_No_Shell_available_in_Launch=No Shell available in Launch
CoreFileLaunchDelegate_Select_Corefile=Select Corefile
CoreFileLaunchDelegate_Corefile_not_accessible=Core file is not accessible.
CoreFileLaunchDelegate_Corefile_not_readable=Core file does not exist or is not readable.
CoreFileLaunchDelegate_postmortem_debugging_failed=Post-mortem debugging failed

AbstractCDebuggerTab_No_debugger_available=No debugger available
AbstractCDebuggerTab_Debugger=Debugger
AbstractCDebuggerTab_ErrorLoadingDebuggerPage=Error Loading Debugger UI Component.
AbstractChange_compositeName0=Update C/C++ launch configurations

LaunchUIPlugin_Error=Error

CMainTab_Project_required=Project required
CMainTab_Enter_project_before_searching_for_program=Project must first be entered before searching for a program
CMainTab_Program_Selection=Program Selection
CMainTab_Enter_project_before_browsing_for_program=Project must first be entered before browsing for a program
CMainTab_Program_selection=Program selection
CMainTab_Selection_must_be_file=Selection must be a file
CMainTab_Selection_must_be_binary_file=Selection must be a binary file
CMainTab_Project_Selection=Project Selection
CMainTab_Choose_project_to_constrain_search_for_program=Choose a &project to constrain the search for a program
CMainTab_Project_not_specified=Project not specified
CMainTab_Program_not_specified=Program not specified
CMainTab_Project_must_be_opened=Project must be opened
CMainTab_Program_does_not_exist=Program does not exist
CMainTab_Core_does_not_exist=Core file does not exist
CMainTab_Main=Main
CMainTab_ProjectColon=&Project:
CMainTab_C_Application=C/C++ Application:
CMainTab_CoreFile_path=Core file (leave blank to trigger prompt):
CMainTab_Variables=&Variables...
CMainTab_Search=Searc&h Project...
CMainTab_Choose_program_to_run=Choose a &program to run:
CMainTab_Choose_program_to_run_from_NAME=Choose a program to run from {0}:
CMainTab_UseTerminal=Connect process input && output to a terminal.
CMainTab_Program_invalid_proj_path=Program specification is not a valid project-relative path.
CMainTab_Build_Config=Build configuration:
CMainTab_Use_Active=Use Active
CMainTab_Use_Automatic=Select Automatically
CMainTab_Build_Config_Active_tooltip=Use active build configuration
CMainTab_Build_Config_Auto=Select configuration using 'C/C++ Application'
CMainTab_Build_Config_Auto_tooltip=Select build configuration based on the location of the application
#For CMainTab_Configuration_name: {0} - project name; {1} - configuration name
CMainTab_Configuration_name={0} {1}
CMainTab_Build_options=Build (if required) before launching
CMainTab_Disable_build_button_label=Disable auto build
CMainTab_Disable_build_button_tooltip=Requires manually building project before launching (this may improve launch performance)
CMainTab_Enable_build_button_label=Enable auto build
CMainTab_Enable_build_button_tooltip=Always build project before launching (this may impact launch performance)
CMainTab_Workspace_settings_button_label=Use workspace settings
CMainTab_Workspace_settings_button_tooltip=Use workspace settings
CMainTab_Workspace_settings_link_label=<a>Configure Workspace Settings...</a>

CMainTab2_File_does_not_exist=File does not exist
CMainTab2_CoreFile_type=Core file
CMainTab2_TraceFile_type=Trace file
CMainTab2_CoreFile_path=Core file (leave blank or select root directory to trigger prompt):
CMainTab2_TraceFile_path=Trace data file (leave blank or select root directory to trigger prompt):
CMainTab2_Application_Selection=Application Selection
CMainTab2_Core_Selection=Core File Selection
CMainTab2_Trace_Selection=Trace File Selection
CMainTab2_Post_mortem_file_type=Post Mortem file type:

CDebuggerTab_Advanced_Options_Dialog_Title=Advanced Options
CDebuggerTab_Stop_at_main_on_startup=Stop on startup at:
CDebuggerTab_Automatically_track_values_of=Automatically track the values of
CDebuggerTab_Stop_on_startup_at_can_not_be_empty=The "Stop on startup at" field can not be empty.
CDebuggerTab_Debugger_Options=Debugger Options
CDebuggerTab_Mode_not_supported=Mode ''{0}'' is not supported by the selected debugger
CDebuggerTab_Advanced=Advanced...
CDebuggerTab_Variables=Variables
CDebuggerTab_Registers=Registers
CDebuggerTab_No_debugger_available=No debugger available
CDebuggerTab_CPU_is_not_supported=The CPU is not supported by the selected debugger.
CDebuggerTab_Platform_is_not_supported=The project platform is not supported by the selected debugger.

CoreFileDebuggerTab_No_debugger_available=No debugger available
CoreFileDebuggerTab_platform_is_not_supported=The project platform is not supported by the selected debugger.

CEnvironmentTab_Edit_Variable=Edit Variable
CEnvironmentTab_New_Variable=New Variable
CEnvironmentTab_NameColon=Name:
CEnvironmentTab_ValueColon=Value:
CEnvironmentTab_Name=Name
CEnvironmentTab_Value=Value
CEnvironmentTab_New=New...
CEnvironmentTab_Import=Import...
CEnvironmentTab_Edit=Edit...
CEnvironmentTab_Remove=Remove
CEnvironmentTab_Environment=Environment
CEnvironmentTab_Existing_Environment_Variable=Existing Environment Variable
CEnvironmentTab_Environment_variable_NAME_exists=Environment variable \"{0}\" exists.\nDo you want to overwrite?

CArgumentsTab_C_Program_Arguments=Program arguments:
CArgumentsTab_Arguments=Arguments
CArgumentsTab_Variables=Variables...

WorkingDirectoryBlock_4=Select a &workspace relative working directory:
WorkingDirectoryBlock_7=Select a working directory for the launch configuration:
WorkingDirectoryBlock_0=W&orkspace...
WorkingDirectoryBlock_Working_Directory_8=Working Directory
WorkingDirectoryBlock_Working_directory=Working directory:
WorkingDirectoryBlock_10=Working directory does not exist
WorkingDirectoryBlock_Use_default=Use de&fault
WorkingDirectoryBlock_17=Variabl&es...
WorkingDirectoryBlock_1=File S&ystem...
WorkingDirectoryBlock_Exception_occurred_reading_configuration_15=Exception occurred reading configuration: 

Launch_common_Exception_occurred_reading_configuration_EXCEPTION=Exception occurred reading configuration {0}
Launch_common_DebuggerColon=Debugger:
Launch_common_BinariesColon=Binaries:
Launch_common_QualifierColon=Qualifier:
Launch_common_Browse_1=&Browse...
Launch_common_Browse_2=B&rowse...
Launch_common_Browse_3=Bro&wse...
Launch_common_Project_does_not_exist=Project does not exist
LocalCDILaunchDelegate_0=Launching Local C/C++ Application
LocalCDILaunchDelegate_1=Launching debugger session
LocalCDILaunchDelegate_2=Debugging local C/C++ application
LocalCDILaunchDelegate_3=Attaching to Local C/C++ Application
LocalCDILaunchDelegate_4=No Process ID selected.
LocalCDILaunchDelegate_5=Launching postmortem debugger session
LocalCDILaunchDelegate_6=No core file selected
LocalCDILaunchDelegate_7=Core file does not exist or is not readable.
LocalCDILaunchDelegate_8=Error starting process.
LocalCDILaunchDelegate_9=Eclipse runtime does not support working directory.
LocalCDILaunchDelegate_10=Failed to set program arguments, environment or working directory.
MultiLaunchConfigurationDelegate_0=Launching 
MultiLaunchConfigurationDelegate_Cannot=Cannot launch ''{0}'' in the ''{1}'' mode
MultiLaunchConfigurationDelegate_Loop=Infinite loop detected for ''{0}'' configuration
MultiLaunchConfigurationDelegate_Action_None=None
MultiLaunchConfigurationDelegate_Action_WaitUntilTerminated=Wait until terminated
MultiLaunchConfigurationDelegate_Action_Delay=Delay
MultiLaunchConfigurationDelegate_Action_WaitingForTermination=Waiting for termination of
MultiLaunchConfigurationDelegate_Action_Delaying=Delaying next launch by {0} seconds
MultiLaunchConfigurationSelectionDialog_0=Launch Configuration Selector
MultiLaunchConfigurationSelectionDialog_4=Launch Mode:
MultiLaunchConfigurationSelectionDialog_5=Use default mode when launching
MultiLaunchConfigurationSelectionDialog_7=Select a launch configuration
MultiLaunchConfigurationSelectionDialog_8=Post launch action:
MultiLaunchConfigurationSelectionDialog_9=Seconds:
MultiLaunchConfigurationSelectionDialog_10=Enter valid number of seconds
MultiLaunchConfigurationSelectionDialog_11=Select only one launch configuration
MultiLaunchConfigurationSelectionDialog_12=Add Launch Configuration
MultiLaunchConfigurationSelectionDialog_13=Edit Launch Configuration
MultiLaunchConfigurationSelectionDialog_14=Add one or more launch configurations to the launch group
MultiLaunchConfigurationSelectionDialog_15=Edit an existing entry in the launch group
MultiLaunchConfigurationTabGroup_1=Up
MultiLaunchConfigurationTabGroup_2=Down
MultiLaunchConfigurationTabGroup_3=Edit...
MultiLaunchConfigurationTabGroup_4=Add...
MultiLaunchConfigurationTabGroup_5=Remove
MultiLaunchConfigurationTabGroup_6=Name
MultiLaunchConfigurationTabGroup_7=Mode
MultiLaunchConfigurationTabGroup_10=Launches
MultiLaunchConfigurationTabGroup_11=seconds
MultiLaunchConfigurationTabGroup_12=Action
MultiLaunchConfigurationTabGroup_13=Delay {0} seconds
MultiLaunchConfigurationTabGroup_14=Launch {0} does not exist.
MultiLaunchConfigurationTabGroup_15=Launch {0} is filtered.
MultiLaunchConfigurationTabGroup_16=Must have at least one valid enabled launch.
ProjectRenameChange_name=Update launch configuration "{0}"
ProjectRenameChange_saveFailed=Failed to save updated launch configuration "{0}"

BuildErrPrompter_error_in_specific_config=Errors exist in project \"{0}\" having built not-active build configuration \"{1}\". Proceed with launch?
BuildErrPrompter_error_in_active_config=Errors exist in the active configuration of project \"{0}\". Proceed with launch?
BuildErrPrompter_error_in_referenced_project_specific=One or more projects referenced by project \"{0}\", build configuration \"{1}\" has build errors. See Problems view for details. Keep in mind that the errors may be in build configurations that are not the active ones. Continue anyway?
BuildErrPrompter_error_in_referenced_project_active=One or more projects referenced by the active configuration of project \"{0}\" has build errors. See Problems view for details. Keep in mind that the errors may be in build configurations that are not the active ones. Continue anyway?
