/**********************************************************************
.
. This
 * program and the accompanying materials are made available under the terms of
 * the Eclipse Public License 2.0 which accompanies this distribution, and is
t https://www.eclipse.org/legal/epl-2.0/
t
t SPDX-License-Identifier: EPL-2.0
 * 
 * Contributors: 
 * IBM - Initial API and implementation
 * dakshinamurthy.karra@gmail.com - bug 165371
 **********************************************************************/
package org.eclipse.ant.internal.ui.launchConfigurations;

import org.eclipse.osgi.util.NLS;

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

	public static String AddVariableStringAction_1;
	public static String AddVariableStringAction_2;
	public static String AddVariableStringAction_3;
	public static String AddVariableStringAction_4;

	public static String AntLaunchShortcut_Unable;
	public static String AntLaunchShortcut_2;
	public static String AntLaunchShortcut_3;
	public static String AntLaunchShortcut_4;
	public static String AntLaunchShortcut_5;
	public static String AntLaunchShortcut_Error_7;
	public static String AntLaunchShortcut_Build_Failed_2;
	public static String AntLaunchShortcut_Exception_launching;

	public static String AntPropertiesTab__Properties__6;
	public static String AntPropertiesTab_Property_f_iles__7;
	public static String AntPropertiesTab_P_roperties_8;
	public static String AntPropertiesTab_Error_reading_configuration_9;
	public static String AntPropertiesTab_6;

	public static String AntJRETab_2;
	public static String AntJRETab_3;

	public static String AntBuilderTargetsTab_0;
	public static String AntBuilderTargetsTab_1;
	public static String AntBuilderTargetsTab_2;
	public static String AntBuilderTargetsTab_3;
	public static String AntBuilderTargetsTab_4;
	public static String AntBuilderTargetsTab_5;
	public static String AntBuilderTargetsTab_6;
	public static String AntBuilderTargetsTab_7;
	public static String AntBuilderTargetsTab_8;
	public static String AntBuilderTargetsTab_10;

	public static String AntMainTab__Select_a_build_file__1;
	public static String AntMainTab_3;
	public static String AntMainTab_6;
	public static String AntMainTab_0;
	public static String AntMainTab_1;

	public static String AntTargetsTab_Check_targets_to_e_xecute__1;
	public static String AntTargetsTab_0_out_of_0_selected_2;
	public static String AntTargetsTab_Target_execution_order__3;
	public static String AntTargetsTab__Order____4;
	public static String AntTargetsTab_Name_5;
	public static String AntTargetsTab_Description_6;
	public static String AntTargetsTab__0__out_of__1__selected_7;
	public static String AntTargetsTab_Tar_gets_14;
	public static String AntTargetsTab_Error_reading_configuration_12;
	public static String AntTargetsTab_12;
	public static String AntTargetsTab_13;
	public static String AntTargetsTab_14;
	public static String AntTargetsTab_15;
	public static String AntTargetsTab_16;
	public static String AntTargetsTab_17;
	public static String AntTargetsTab_0;
	public static String AntTargetsTab_1;
	public static String AntClasspathTab_0;

	public static String EditAntHomeEntryAction_1;

	public static String TargetOrderDialog_Order_Targets_1;
	public static String TargetOrderDialog__Specify_target_execution_order__2;
	public static String TargetOrderDialog__Up_3;
	public static String TargetOrderDialog__Down_4;

	public static String AntEnvironmentTab_0;
	public static String SetTargetsDialog_0;

	public static String AntWorkingDirectoryBlock_0;

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