/*******************************************************************************
 *  Copyright (c) 2000, 2019 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 - Initial API and implementation
 *  Ian Pun & Lucas Bullen (Red Hat Inc.) - Bug 518652
 *  Axel Richard (Obeo) - Bug 41353 - Launch configurations prototypes
 *  Jens Reimann (jreimann@redhat.com) - add copy & paste support
 *******************************************************************************/
package org.eclipse.debug.internal.ui.launchConfigurations;

import org.eclipse.osgi.util.NLS;

public class LaunchConfigurationsMessages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsMessages";//$NON-NLS-1$

	public static String CommonTab__Browse_6;
	public static String CommonTab__Common_15;
	public static String CommonTab_Display_in_favorites_menu__10;
	public static String CommonTab_Invalid_shared_configuration_location_14;
	public static String CommonTab_Invalid_stdin_file_location_15;
	public static String CommonTab_L_ocal_3;
	public static String CommonTab_S_hared_4;
	public static String CommonTab_Select_a_location_for_the_launch_configuration_13;
	public static String CommonTab_Select_a_location_for_the_Input_File_15;
	public static String CommonTab_Cannot_save_launch_configuration_in_a_closed_project__1;
	public static String CommonTab_10;
	public static String CommonTab_11;
	public static String CommonTab_12;
	public static String CommonTab_13;
	public static String CommonTab_14;
	public static String CommonTab_0;
	public static String CommonTab_1;

	public static String CommonTab_15;
	public static String CommonTab_16;
	public static String CommonTab_17;
	public static String CommonTab_18;
	public static String CommonTab_19;
	public static String CommonTab_2;
	public static String CommonTab_20;
	public static String CommonTab_3;
	public static String CommonTab_4;
	public static String CommonTab_5;
	public static String CommonTab_6;
	public static String CommonTab_7;
	public static String CommonTab_8;
	public static String CommonTab_9;

	public static String CommonTab_AttributeLabel_ConsoleEncoding;
	public static String CommonTab_AttributeLabel_CaptureOutput;
	public static String CommonTab_AttributeLabel_CaptureInConsole;
	public static String CommonTab_AttributeLabel_CaptureStdInFile;
	public static String CommonTab_AttributeLabel_CaptureInFile;
	public static String CommonTab_AttributeLabel_AppendToFile;
	public static String CommonTab_AttributeLabel_LaunchInBackground;
	public static String CommonTab_AttributeLabel_FavoriteGroups;

	public static String CompileErrorProjectPromptStatusHandler_0;
	public static String CompileErrorProjectPromptStatusHandler_1;
	public static String CompileErrorPromptStatusHandler_0;
	public static String CompileErrorPromptStatusHandler_1;
	public static String CompileErrorPromptStatusHandler_2;
	public static String EnvironmentTab_22;

	public static String EnvironmentTab_7;

	public static String LaunchConfigurationDialog__Apply_17;
	public static String LaunchConfigurationDialog__Name__16;
	public static String LaunchConfigurationDialog_An_exception_occurred_while_retrieving_launch_configurations_20;
	public static String LaunchConfigurationEditDialog_0;
	public static String LaunchConfigurationEditDialog_1;
	public static String LaunchConfigurationFilteredTree_discard_changes;
	public static String LaunchConfigurationFilteredTree_save_changes;

	public static String LaunchConfigurationFilteredTree_search_with_changes;
	public static String LaunchConfigurationFilteredTree_search_with_errors;
	public static String LaunchConfigurationDialog_Create__manage__and_run_launch_configurations_8;
	public static String LaunchConfigurationDialog_Discard_changes__38;
	public static String LaunchConfigurationDialog_Do_you_wish_to_discard_changes_37;
	public static String LaunchConfigurationDialog_Error_19;
	public static String LaunchConfigurationDialog_Exception_occurred_creating_launch_configuration_tabs_27;
	public static String LaunchConfigurationDialog_Exception_occurred_while_saving_launch_configuration_47;
	public static String LaunchConfigurationDialog_Launch_configuration_already_exists_with_this_name_12;
	public static String LaunchConfigurationDialog_Launch_Configuration_Error_46;
	public static String LaunchConfigurationDialog_Launch_Configurations_18;
	public static String LaunchConfigurationDialog_Name_required_for_launch_configuration_11;
	public static String LaunchConfigurationDialog_Ready_to_launch_2;
	public static String LaunchConfigurationDialog_The_configuration___29;
	public static String LaunchConfigurationDialog_The_configuration___35;
	public static String LaunchConfigurationDialog_unspecified_28;
	public static String LaunchConfigurationDialog_Save_Button;
	public static String LaunchConfigurationDialog_Dont_Save_Button;
	public static String LaunchConfigurationDialog_Discard_Button;
	public static String LaunchConfigurationDialog_Dont_Discard_Button;
	public static String LaunchConfigurationDialog_Do_you_wish_to_delete_the_selected_launch_configurations__1;
	public static String LaunchConfigurationDialog_Do_you_wish_to_delete_the_selected_launch_configuration__2;
	public static String LaunchConfigurationDialog_Confirm_Launch_Configuration_Deletion_3;
	public static String LaunchConfigurationDialog_Close_1;
	public static String LaunchConfigurationDialog_Revert_2;
	public static String LaunchConfigurationsDialog_Error_1;
	public static String LaunchConfigurationsDialog_Warning_2;
	public static String LaunchConfigurationsDialog_Information_3;
	public static String LaunchConfigurationDialog_ShowCommandLine;
	public static String LaunchConfigurationDialog_ShowCommandLine_Title;
	public static String LaunchConfigurationDialog_ShowCommandLine_Copy;
	public static String LaunchConfigurationDialog_ShowCommandLine_Close;
	public static String LaunchConfigurationDialog_ShowCommandLine_Default;
	public static String LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Title;
	public static String LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Question;
	public static String LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Apply;
	public static String LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Revert;
	public static String LaunchConfigurationDialog_ShowCommandLine_Apply_Revert_Cancel;
	public static String LaunchConfigurationSelectionDialog_0;
	public static String LaunchConfigurationSelectionDialog_1;
	public static String LaunchConfigurationSelectionDialog_deleteButtonLabel;

	public static String LaunchConfigurationTabGroupViewer_14;

	public static String LaunchConfigurationTabGroupViewer_15;

	public static String LaunchConfigurationTabGroupViewer_16;

	public static String LaunchConfigurationTabGroupViewer_17;

	public static String LaunchConfigurationTabGroupViewer_18;
	public static String LaunchConfigurationTabGroupViewer_13;
	public static String LaunchConfigurationView_0;

	public static String LaunchShortcutSelectionDialog_0;

	public static String LaunchShortcutSelectionDialog_1;

	public static String LaunchShortcutSelectionDialog_2;

	public static String LaunchShortcutSelectionDialog_3;

	public static String LaunchShortcutSelectionDialog_4;

	public static String PerspectiveManager_Error_1;
	public static String PerspectiveManager_Unable_to_switch_perpsectives_as_specified_by_launch___0__4;
	public static String PerspectiveManager_Unable_to_switch_to_perspective___0__2;

	public static String LaunchConfigurationPresentationManager_0;

	public static String LaunchConfigurationPropertiesDialog_Edit_launch_configuration_properties_1;
	public static String LaunchConfigurationPropertiesDialog_Properties_for__0__2;

	public static String LaunchConfigurationDialog_Modify_attributes_and_launch__1;

	public static String LaunchConfigurationTabGroupViewer_No_tabs_defined_for_launch_configuration_type__0__1;

	public static String DuplicateLaunchConfigurationAction__Duplicate_1;

	public static String DeleteLaunchConfigurationAction_Dele_te_1;

	public static String CreateLaunchConfigurationAction_Ne_w_1;
	public static String ExportLaunchConfigurationAction_Export_1;
	public static String CreateLaunchConfigurationAction_New_configuration_2;
	public static String CreateLaunchConfigurationPrototypeAction_Ne_w_1;
	public static String CreateLaunchConfigurationPrototypeAction_New_prototype_2;
	public static String LinkPrototypeAction_Link_prototype_1;
	public static String UnlinkPrototypeAction_Unlink_prototype_1;
	public static String ResetWithPrototypeValuesAction_Reset_with_prototype_values_1;

	public static String EnvironmentTab_Variable_1;
	public static String EnvironmentTab_Value_2;
	public static String EnvironmentTab_Environment_variables_to_set__3;
	public static String EnvironmentTab_New_4;
	public static String EnvironmentTab_Edit_5;
	public static String EnvironmentTab_Remove_6;
	public static String EnvironmentTab_Environment_7;
	public static String EnvironmentTab_8;
	public static String EnvironmentTab_9;
	public static String EnvironmentTab_11;
	public static String EnvironmentTab_12;
	public static String EnvironmentTab_13;
	public static String EnvironmentTab_16;
	public static String EnvironmentTab_17;
	public static String EnvironmentTab_18;
	public static String EnvironmentTab_19;
	public static String EnvironmentTab_20;
	public static String EnvironmentTab_AttributeLabel_AppendEnvironmentVariables;
	public static String EnvironmentTab_AttributeLabel_EnvironmentVariables;
	public static String EnvironmentTab_Copy;
	public static String EnvironmentTab_Paste;
	public static String EnvironmentTab_Paste_Overwrite_Title;
	public static String EnvironmentTab_Paste_Overwrite_Message;

	public static String PrototypeTab_Prototype_1;
	public static String PrototypeTab_Label_2;
	public static String PrototypeTab_Link_Button_Label_3;
	public static String PrototypeTab_Unlink_Button_Label_4;
	public static String PrototypeTab_Select_Message_5;
	public static String PrototypeTab_Select_Empty_Message_6;
	public static String PrototypeTab_Select_Prototype_Error_7;
	public static String PrototypeTab_Reset_Button_Label_8;
	public static String PrototypeTab_Reset_Menu_Action_9;
	public static String PrototypeTab_Explanation_Label_10;
	public static String PrototypeTab_Explanation_Label_11;
	public static String PrototypeTab_Atrribute_label;
	public static String PrototypeTab_Modified_label;
	public static String PrototypeTab_Property_Value_label;

	public static String FavoritesDialog_1;
	public static String FavoritesDialog_2;
	public static String FavoritesDialog_3;
	public static String FavoritesDialog_4;
	public static String FavoritesDialog_5;
	public static String FavoritesDialog_6;
	public static String FavoritesDialog_7;
	public static String FavoritesDialog_0;

	public static String OrganizeFavoritesAction_0;
	public static String PerspectiveManager_12;
	public static String PerspectiveManager_13;
	public static String PerspectiveManager_15;
	public static String PerspectiveManager_suspend_description;
	public static String PerspectiveManager_launch_description;
	public static String PerspectiveManager_switch;

	public static String DebugModePromptStatusHandler_0;
	public static String DebugModePromptStatusHandler_1;

	static {
		// load message values from bundle file
		NLS.initializeMessages(BUNDLE_NAME, LaunchConfigurationsMessages.class);
	}

	public static String LaunchConfigurationTabGroupViewer_1;
	public static String LaunchConfigurationTabGroupViewer_2;
	public static String LaunchConfigurationTabGroupViewer_3;
	public static String LaunchConfigurationTabGroupViewer_4;
	public static String LaunchConfigurationTabGroupViewer_5;
	public static String LaunchConfigurationTabGroupViewer_6;
	public static String LaunchConfigurationTabGroupViewer_9;
	public static String LaunchConfigurationTabGroupViewer_10;
	public static String LaunchConfigurationTabGroupViewer_11;
	public static String LaunchConfigurationTabGroupViewer_12;
	public static String LaunchConfigurationTabGroupViewer_7;

	public static String SaveScopeResourcesHandler_1;
	public static String SaveScopeResourcesHandler_2;
	public static String SaveScopeResourcesHandler_3;

	public static String FavoritesDialog_8;

	public static String LaunchConfigurationsDialog_0;
	public static String LaunchConfigurationsDialog_1;
	public static String LaunchConfigurationsDialog_2;
	public static String LaunchConfigurationsDialog_4;
	public static String LaunchConfigurationsDialog_5;
	public static String LaunchConfigurationsDialog_6;
	public static String LaunchConfigurationsDialog_7;
	public static String LaunchConfigurationsDialog_8;
	public static String LaunchConfigurationsDialog_9;
	public static String FilterLaunchConfigurationAction_0;


	public static String LaunchConfigurationTabGroupViewer_8;

	public static String FilterDropDownMenuCreator_0;
	public static String FilterDropDownMenuCreator_1;
	public static String FilterDropDownMenuCreator_2;
	public static String FilterDropDownMenuCreator_3;
	public static String FilterDropDownMenuCreator_4;

	public static String LaunchConfigurationsDialog_c_ancel;

	public static String LaunchConfigurationsDialog_configurations;

	public static String CollapseAllLaunchConfigurationAction_0;
	public static String CollapseAllLaunchConfigurationAction_1;
	public static String CollapseAllLaunchConfigurationAction_2;

	public static String SelectLaunchersDialog_0;
	public static String SelectLaunchersDialog_1;
	public static String SelectLaunchersDialog_2;
	public static String SelectLaunchersDialog_4;
	public static String SelectLaunchersDialog_5;

	public static String SelectLaunchersDialog_launchers;
	public static String SelectLaunchOptionsDialog_3;
	public static String SelectLaunchOptionsDialog_4;

}
