###############################################################################
# Copyright (c) 2004, 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
###############################################################################

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=Overwrite existing buildfiles for following projects:
AntBuildfileExportPage_4=Confirm Overwrite
AntBuildfileExportPage_6=A cycle was detected in the build path of project: {0}
AntBuildfileExportPage_creating_build_files=Creating Ant build files...
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}\". Exported Ant buildfile will 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: