/*******************************************************************************
 *  Copyright (c) 2000, 2013 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
 *******************************************************************************/
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_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_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_2;
	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 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_No_33;
	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_Yes_32;
	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 LaunchConfigurationSelectionDialog_0;
	public static String LaunchConfigurationSelectionDialog_1;

	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 CreateLaunchConfigurationAction_New_configuration_2;

	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 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 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 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_4;
	public static String LaunchConfigurationsDialog_5;
	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;

}
