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

import org.eclipse.osgi.util.NLS;

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

	public static String AntClasspathLabelProvider_0;

	public static String AntClasspathBlock_1;
	public static String AntClasspathBlock_2;
	public static String AntClasspathBlock_addFolderButtonTitle;
	public static String AntClasspathBlock_addJarButtonTitle;
	public static String AntClasspathBlock_upButtonTitle;
	public static String AntClasspathBlock_downButtonTitle;
	public static String AntClasspathBlock_removeButtonTitle;
	public static String AntClasspathBlock_3;
	public static String AntClasspathBlock_7;
	public static String AntClasspathBlock_31;
	public static String AntClasspathBlock_32;
	public static String AntClasspathBlock_33;
	public static String AntClasspathBlock_34;
	public static String AntClasspathBlock_42;
	public static String AntClasspathBlock_56;
	public static String AntClasspathBlock_57;
	public static String AntClasspathBlock_30;

	public static String AntClasspathPage_title;

	public static String AddCustomDialog_Bad_Format;
	public static String AddCustomDialog_Unreadable;
	public static String AddCustomDialog__Name__3;
	public static String AddCustomDialog_Could_not_close_zip_file__0__4;
	public static String AddCustomDialog__Location;
	public static String AddCustomDialog_mustSelect;
	public static String AddCustomDialog_13;

	public static String AntPreferencePage_description;
	public static String AntPreferencePage_General;
	public static String AntPreferencePage_Enter;
	public static String AntPreferencePage__Names__3;
	public static String AntPreferencePage_Ant_Color_Options__6;
	public static String AntPreferencePage_Color__7;
	public static String AntPreferencePage__Error__2;
	public static String AntPreferencePage__Warning__3;
	public static String AntPreferencePage_I_nformation__4;
	public static String AntPreferencePage_Ve_rbose__5;
	public static String AntPreferencePage_Deb_ug__6;
	public static String AntPreferencePage_12;
	public static String AntPreferencePage_0;
	public static String AntPreferencePage_1;
	public static String AntPreferencePage_2;
	public static String AntPreferencePage_15;
	public static String AntPreferencePage_16;
	
	public static String AntTasksPage_1;
	public static String AntTasksPage_2;
	public static String AntTasksPage_3;
	public static String AntTasksPage_addTaskDialogTitle;
	public static String AntTasksPage_title;
	public static String AntTasksPage_editTaskDialogTitle;
	public static String AntTasksPage_8;
	public static String AntTasksPage_9;

	public static String AntTypesPage_1;
	public static String AntTypesPage_2;
	public static String AntTypesPage_3;
	public static String AntTypesPage_typesPageTitle;
	public static String AntTypesPage_addTypeDialogTitle;
	public static String AntTypesPage_editTypeDialogTitle;
	public static String AntTypesPage_8;
	public static String AntTypesPage_9;

	public static String AntPropertiesPage_title;
	public static String AntPropertiesPage__Global_properties__1;
	public static String AntPropertiesPage_Glo_bal_property_files__2;

	public static String AntPropertiesBlock_1;
	public static String AntPropertiesBlock_2;
	public static String AntPropertiesBlock_3;
	public static String AntPropertiesBlock_4;
	public static String AntPropertiesBlock_0;
	public static String AntPropertiesBlock_5;
	public static String AntPropertiesBlock_6;
	public static String AntPropertiesBlock_removeFileButton;
	public static String AntPropertiesBlock_Add_Property_2;
	public static String AntPropertiesBlock_Edit_User_Property_5;
	public static String AntPropertiesFileSelectionDialog_12;
	public static String AntPropertiesFileSelectionDialog_13;
	public static String AntPropertiesFileSelectionDialog_14;
	public static String AntPropertiesBlock_14;
	public static String AntPropertiesBlock_15;
	public static String AntPropertiesBlock_16;
	public static String AntPropertiesBlock_17;
	public static String AntPropertiesBlock_18;

	public static String AddPropertyDialog__Name__1;
	public static String AddPropertyDialog__Value__2;
	public static String AddPropertyDialog_2;

	public static String always_run_in_workspace_jre;

	public static String AntCodeAssistPreferencePage_Insert;
	public static String AntCodeAssistPreferencePage_0;
	public static String AntCodeAssistPreferencePage__Enable_auto_activation_2;
	public static String AntCodeAssistPreferencePage_Auto_activation__delay__3;
	public static String AntCodeAssistPreferencePage_Auto_activation_tri_ggers__4;
	public static String AntCodeAssistPreferencePage_invalid_input_auto_activation;
	public static String AntCodeAssistPreferencePage_empty_input_auto_activation;

	public static String AntEditorPreferencePage_description;
	public static String AntEditorPreferencePage_general;
	public static String AntEditorPreferencePage_6;
	public static String AntEditorPreferencePage_Ant_editor_text_1;
	public static String AntEditorPreferencePage_Ant_editor_processing_instuctions_2;
	public static String AntEditorPreferencePage_Ant_editor_constant_strings_3;
	public static String AntEditorPreferencePage_Ant_editor_tags_4;
	public static String AntEditorPreferencePage_Ant_editor_comments_5;
	public static String AntEditorPreferencePage_30;
	public static String AntEditorPreferencePage_1;
	public static String AntEditorPreferencePage_10;
	public static String AntEditorPreferencePage_11;
	public static String AntEditorPreferencePage_12;
	public static String AntEditorPreferencePage_13;
	public static String AntEditorPreferencePage_14;
	public static String AntEditorPreferencePage_15;
	public static String AntEditorPreferencePage_16;
	public static String AntEditorPreferencePage_17;
	public static String AntEditorPreferencePage_18;
	public static String AntEditorPreferencePage_19;
	public static String AntEditorPreferencePage_20;
	public static String AntEditorPreferencePage_21;
	public static String AntEditorPreferencePage_22;
	public static String AntEditorPreferencePage_23;
	public static String AntEditorPreferencePage_24;
	public static String AntEditorPreferencePage_25;
	public static String AntEditorPreferencePage_26;
	public static String AntEditorPreferencePage_27;
	public static String AntEditorPreferencePage_28;
	public static String AntEditorPreferencePage_29;
	public static String AntEditorPreferencePage_5;
	public static String AntEditorPreferencePage_7;
	public static String AntEditorPreferencePage_8;
	public static String AntEditorPreferencePage_9;
	public static String AntEditorPreferencePage_3;
	public static String AntEditorPreferencePage_0;
	public static String AntEditorPreferencePage_2;
	public static String AntEditorPreferencePage_4;

	public static String ClasspathModel_2;
	public static String ClasspathModel_3;
	public static String ClasspathModel_0;

	public static String AntCodeFormatterPreferencePage_0;
	public static String AntCodeFormatterPreferencePage_1;
	public static String AntCodeFormatterPreferencePage_2;
	public static String AntCodeFormatterPreferencePage_3;
	public static String AntCodeFormatterPreferencePage_4;
	public static String AntCodeFormatterPreferencePage_5;
	public static String AntCodeFormatterPreferencePage_6;
	public static String AntCodeFormatterPreferencePage_7;
	public static String AntCodeFormatterPreferencePage_8;
	public static String AntCodeFormatterPreferencePage_9;
	public static String AntCodeFormatterPreferencePage_10;

	public static String URLFieldEditor_0;
	public static String AntPage_0;
	public static String AntPage_1;
	public static String AntPage_2;
	public static String AntPage_3;

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

    public static String AntPreferencePage_13;

    public static String AntPreferencePage_14;
}