### JavaBatchCompiler messages.

### scanning
scanning.start = Scanning of {0}
scanning.done = Scanning of {0} DONE

### progress
progress.compiling = Compiling

### compile
compile.repetition = Repetition {0}/{1}
compile.instantTime = Compiled {0} lines in {1} ms ({2} lines/s)
compile.totalTime = Total compilation time: {0}
compile.oneProblem = 1 problem
compile.severalProblems = {0} problems
compile.oneError = 1 error
compile.severalErrors = {0} errors
compile.oneWarning = 1 warning
compile.severalWarnings = {0} warnings
compile.oneClassFileGenerated = 1 .class file generated
compile.severalClassFilesGenerated = {0} .class files generated

### configure
configure.noSourceFile = no source file specified
configure.duplicateLog = duplicate log specification: {0}
configure.duplicateRepeat = duplicate repeat specification: {0}
configure.duplicateOutputPath = duplicate output path specification: {0}
configure.duplicateClasspath = duplicate classpath specification: {0}
configure.invalidDebugOption = invalid debug option: {0}
configure.duplicateWarningConfiguration = duplicate usage of warning configuration
configure.invalidWarningConfiguration = invalid warning configuration: {0}
configure.invalidWarning = invalid warning: {0}
configure.invalidWarningOption = invalid warning option: {0}
configure.targetJDK = target JDK is either '1.1' or '1.2': {0}
configure.repetition = repetition must be a positive integer: {0}
configure.directoryNotExist = directory does not exist: {0}
configure.IOError = i/o error : unable to retrieve .JAVA files in directory: {0}
configure.version = Eclipse Java Compiler {0}, Copyright IBM Corp 2000
configure.noClasspath = no classpath defined (LF_CLASSPATH), using default directory instead
configure.incorrectClasspath = incorrect classpath: {0}
configure.noSource = no source file specified
configure.cannotOpenLog = cannot open .log file

### requestor
requestor.error = ERROR
requestor.warning = WARNING
requestor.in = in {0}
requestor.notRetrieveErrorMessage = Cannot retrieve the error message for {0}

### unit
unit.more = File {0} is specified more than once
unit.missing = File {0} is missing

### output
output.noClassFileCreated = No .class file created for file named {0} because of a IOException.

### miscellaneous
misc.usage = Eclipse Java Compiler {0}, Copyright IBM Corp 2000\n\nUsage: <options> <source files | directories>\n\nwhere options include:\n-version or -v\tdisplays the version number (standalone option)\n-help\tdisplay this help message (standalone option)\n-noExit\tPrevent the compiler to call System.exit at the end of the compilation process\n-classpath <dir 1>;<dir 2>;...;<dir P>\n-d <dir>\tdestination directory, specified '-d none' if you don't want to dump files\n-verbose\tprint accessed/processed compilation units \n-time\t\tdisplay total compilation time and speed if line attributes are enabled\n-log <filename>\tspecify a log file for recording problems\n-progress\t\tshow progress (only in -log mode)\n-g[:<level>]\tspecify the level of details for debug attributes\n\t\t-g\tgenerate all debug info\n\t\t-g:none\tno debug info\n\t\t-g:{lines,vars,source}\tonly some debug info\n-nowarn\t\tdo not report warnings \n-warn:<mask>\tspecify the level of details for warnings\n\t\t-warn:none no warning\n\t\t-warn:{constructorName, packageDefaultMethod, deprecation,\n\t\t\tmaskedCatchBlocks, unusedLocals, unusedArguments, \n\t\t\tsyntheticAccess}\n-noImportError\tdo not report errors on incorrect imports\n-proceedOnError\tkeep compiling when error, dumping class files with problem methods\n-referenceInfo\tcompute reference info\n-preserveAllLocals\trequest code gen preserve all local variables\n-repeat <n>\trepeat compilation process for performance analysis\n
