/**********************************************************************
 * Copyright (c) 2000, 2005 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.ui.externaltools.internal.ui;

import org.eclipse.osgi.util.NLS;

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

	public static String BuilderPropertyPage_description;
	public static String BuilderPropertyPage_newButton;
	public static String BuilderPropertyPage_editButton;
	public static String BuilderPropertyPage_removeButton;
	public static String BuilderPropertyPage_upButton;
	public static String BuilderPropertyPage_downButton;
	public static String BuilderPropertyPage_statusMessage;
	public static String BuilderPropertyPage_errorTitle;
	public static String BuilderPropertyPage_errorMessage;
	public static String BuilderPropertyPage_invalidBuildTool;
	public static String BuilderPropertyPage_missingBuilder;
	public static String BuilderPropertyPage_Exists;
	public static String BuilderPropertyPage_External_Tool_Builder__0__Not_Added_2;
	public static String BuilderPropertyPage__Import____3;
	public static String BuilderPropertyPage_New_Builder_7;
	public static String BuilderPropertyPage_Choose_configuration_type_8;
	public static String BuilderPropertyPage_Choose_an_external_tool_type_to_create_9;
	public static String BuilderPropertyPage_Migrate_project_builder_10;
	public static String BuilderPropertyPage_Not_Support;
	public static String BuilderPropertyPage_Prompt;
	public static String BuilderPropertyPage_error;
	public static String BuilderPropertyPage_0;
	public static String BuilderPropertyPage_2;
	public static String BuilderPropertyPage_1;
	public static String BuilderPropertyPage_4;
	public static String BuilderPropertyPage_5;
	public static String BuilderPropertyPage_13;
	public static String BuilderPropertyPage_39;
	public static String BuilderPropertyPage_3;
	public static String BuilderPropertyPage_6;
	public static String BuilderPropertyPage_7;
	public static String BuilderPropertyPage_40;

	public static String FileSelectionDialog_Choose_Location_1;
	public static String FileSelectionDialog_Ok_2;
	public static String FileSelectionDialog_Cancel_3;

	public static String ExternalToolsPreferencePage_External_tool_project_builders_migration_2;
	public static String ExternalToolsPreferencePage_Prompt_before_migrating_3;
	public static String ExternalToolsPreferencePage_1;

	public static String ExternalToolMigration_37;
	public static String ExternalToolMigration_38;
	public static String EditCommandDialog_0;
	public static String EditCommandDialog_1;
	public static String EditCommandDialog_2;
	public static String EditCommandDialog_3;
	public static String EditCommandDialog_4;
	public static String EditCommandDialog_5;

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