###############################################################################
# Copyright (c) 2000, 2009 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 Corporation - initial API and implementation
###############################################################################

InternalAntRunner_Build_file=Buildfile: {0}
InternalAntRunner_Arguments=Arguments: {0}
InternalAntRunner_Unable_to_instantiate_logger=Unable to instantiate logger: {0}
InternalAntRunner_Could_not_load_the_version_information=Could not load the version information: {0}
InternalAntRunner_Using_file_as_build_log=Using {0} file as build log.
InternalAntRunner_Could_not_write_to_log_file=Cannot write on the specified log file: {0}. Make sure the path exists and you have write permissions.
InternalAntRunner_BUILD_SUCCESSFUL_1=BUILD SUCCESSFUL
InternalAntRunner_Unknown_argument=Unknown argument: {0}
InternalAntRunner_Buildfile_does_not_exist=Buildfile: {0} does not exist
InternalAntRunner_not_an_instance_of_apache_ant_BuildListener={0} which was specified to be a build listener is not an instance of org.apache.tools.ant.BuildListener.
InternalAntRunner_not_an_instance_of_apache_ant_BuildLogger={0} which was specified to perform logging is not an instance of org.apache.tools.ant.BuildLogger.
InternalAntRunner_specify_a_classname_using_the_listener_argument=You must specify a classname when using the -listener argument
InternalAntRunner_specify_a_classname_using_the_logger_argument=You must specify a classname when using the -logger argument
InternalAntRunner_specify_a_log_file_using_the_log_argument=You must specify a log file when using the -log argument
InternalAntRunner_specify_a_buildfile_using_the_buildfile_argument=You must specify a buildfile when using the -buildfile argument
InternalAntRunner_Class_not_found_for_task=Class {0} not found for task {1}
InternalAntRunner_Class_not_found_for_type=Class {0} not found for type {1}
InternalAntRunner_Only_one_logger_class_may_be_specified=Only one logger class may be specified
InternalAntRunner_specify_a_classname_the_inputhandler_argument=You must specify a classname when using the -inputhandler argument
InternalAntRunner_Only_one_input_handler_class_may_be_specified=Only one input handler class may be specified.
InternalAntRunner_specify_a_property_filename_when_using_propertyfile_argument=You must specify a property filename when using the -propertyfile argument
InternalAntRunner_could_not_load_property_file=Could not load property file: {0}
InternalAntRunner_ant_1_7_needed_for_help_info=Run with at least Ant 1.7.0 to print project help information
InternalAntRunner_ant_1_7_needed_for_help_message=Run with at least Ant 1.7.0 to print the help message
InternalAntRunner_handler_does_not_implement_InputHandler5=The specified input handler class {0} does not implement the org.apache.tools.ant.input.InputHandler interface
InternalAntRunner_Unable_to_instantiate_input_handler_class=Unable to instantiate specified input handler class {0} : {1}
InternalAntRunner_Specifying_an_InputHandler_is_an_Ant_1_5_feature=Specifying an InputHandler is an Ant 1.5.* feature. Please update your Ant classpath to include an Ant version greater than this.
InternalAntRunner_The_diagnositics_options_is_an_Ant_1_5_feature=The diagnostics options is an Ant 1.5.* feature. Please update your Ant classpath to include an Ant version greater than this.
InternalAntRunner_Specifying_property_files_is_a_Ant_1_5_feature=Specifying property files is an Ant 1.5.* feature. Please update your Ant classpath to include an Ant version greater than this.
InternalAntRunner_Default_target_does_not_exist=Default target {0}{1}{2} does not exist in this project
InternalAntRunner_anthome_must_be_set_to_use_ant_diagnostics=ANT_HOME must be set to use Ant diagnostics
InternalAntRunner_Buildfile_is_not_a_file=Buildfile: {0} is not a file
InternalAntRunner_find_not_supported=-find not supported.\nCan be emulated using Run As > Ant Build located\nin the Run > External Tools menu
InternalAntRunner_Error_setting_Ant_task=Error setting Ant task {0}
InternalAntRunner_Missing_Class=Could not load a class required for parsing targets
InternalAntRunner_157=-lib not supported\nConfigure the Ant runtime classpath using either the\nglobal Ant runtime classpath or the Ant runtime classpath\n for this particular build
InternalAntRunner_unknown_target=Unknown target: {0}
ProgressBuildListener_Build_cancelled=Build cancelled.
InternalProject_could_not_create_type=Could not create type {0} due to {1}
