###############################################################################
# Copyright (c) 2004, 2013 IBM Corporation and others.
#
# 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 available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

AntNewJavaProjectWizard_0=New Java Project
AntBuildfileExportWizard_0=Export
AntBuildfileExportPage_0=Generate Ant Buildfiles
AntBuildfileExportPage_10=Buildfile export failed: {0}. See the error log for more details.
AntBuildfileExportPage_11=&Select All 
AntBuildfileExportPage_12=&Deselect All
AntBuildfileExportPage_13=&Check projects for Ant compatibility
AntBuildfileExportPage_14=Analyze if source directories have no dependency cycle and are specified in correct order.
AntBuildfileExportPage_15=Create &target to compile project using Eclipse compiler
AntBuildfileExportPage_16=Name for &Ant buildfile:
AntBuildfileExportPage_17=&JUnit output directory:
AntBuildfileExportPage_18=Select one or more projects to export.
AntBuildfileExportPage_19=Build file name is required.
AntBuildfileExportPage_1=Generates Ant buildfiles based on the configuration of the Java projects
AntBuildfileExportPage_2=Select the projects to use to &generate the Ant buildfiles:
AntBuildfileExportPage_20=JUnit output directory name is required.
AntBuildfileExportPage_3=Are you sure you want to overwrite the buildfiles for these projects?
AntBuildfileExportPage_4=Overwrite Buildfiles?
AntBuildfileExportPage_creating_build_files=Creating Ant build files...
AntBuildfileExportPage_cycle_error_in_project=A cycle error was detected in the build path of project {0}
AntBuildfileExportPage_cycle_error_in_projects=A cycle error was detected in the build path of projects: {0}
AntBuildfileExportPage_cycle_warning_in_project=A cycle warning was detected in the build path of project {0}
AntBuildfileExportPage_cycle_warning_in_projects=A cycle warning was detected in the build path of projects: {0}
AntNewJavaProjectPage_9=Create a Java Project from an Ant Buildfile
AntNewJavaProjectPage_0=Specified buildfile does not exist
AntNewJavaProjectPage_10=Create a new Java project based on the specification of a javac task in the Ant buildfile. This does not copy the source contents to the workspace.
AntNewJavaProjectPage_11=&Ant buildfile:
AntNewJavaProjectPage_12=&Project name:
AntNewJavaProjectPage_13=B&rowse...
AntNewJavaProjectPage_14=Ant Project
AntNewJavaProjectPage_15=No buildfile selected
AntNewJavaProjectPage_16=Location error
AntNewJavaProjectPage_17=Specified buildfile could not be parsed successfully
AntNewJavaProjectPage_18=Project name must be specified
AntNewJavaProjectPage_19=A project with the specified name already exists
AntNewJavaProjectPage_1=Specified buildfile does not contain a javac task
AntNewJavaProjectPage_21=Error occurred creating project
AntNewJavaProjectPage_22=Error occurred creating Java project from buildfile
AntNewJavaProjectPage_23=Project name is not a valid: {0}
AntNewJavaProjectPage_24=&Link to the buildfile in the file system
AntNewJavaProjectPage_2=The file selected is not a valid Ant buildfile
AntNewJavaProjectPage_3=&Select javac declaration to use to define project:
BuildFileCreator_generating_buildfile_for=Generating build file for {0}...
JavacTableLabelProvider_0=\"javac\" task found in target \"{0}\"
ProjectCreator_0=Problem setting the classpath of the project from the javac classpath: {0}
SourceAnalyzer_0=There is a build cycle in the source directories of project \"{0}\". The exported Ant buildfile might not compile your sources correctly until you eliminate the cycle: 
SourceAnalyzer_1=Cycle detected
SourceAnalyzer_2=Class path order problem detected
SourceAnalyzer_3=The build class path order of the source directories of project \"{0}\" is not correct. Exported Ant buildfile will not compile your sources correctly until you swap the order of these directories: