### JavaBatchCompiler messages.

### compiler version id
compiler.version = 0.216 (20011204)
### 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.source = invalid source option, source is either ''1.3'' or ''1.4'': {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, 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,assertIdentifier}\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-source 1.4\t\nActive the assertion inside the compiler. By default assertions are disabled.
