/*******************************************************************************
 *  Copyright (c) 2000, 2018 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 - Initial API and implementation
 *  Ian Pun & Lucas Bullen (Red Hat Inc.) - Bug 518652
 *  Axel Richard (Obeo) - Bug 41353 - Launch configurations prototypes
 *******************************************************************************/
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_Default;
	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 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;

}
