/**********************************************************************
 * Copyright (c) 2000, 2007 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_44;
	public static String AntClasspathBlock_45;
	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 AntCodeAssistPreferencePage_backgroundForCompletionProposals;
	public static String AntCodeAssistPreferencePage_foregroundForCompletionProposals;
	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_Code_assist_colo_r_options__5;
	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;
}