###############################################################################
# Copyright (c) 2000, 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials 
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
### JavaBatchCompiler messages.

### compiler 
compiler.name = Eclipse Java Compiler
compiler.version = 0.409
compiler.copyright = Copyright IBM Corp 2000, 2004. All rights reserved.

### scanning
scanning.start = Collecting source files inside {0}

### 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.requiresJDK1.2orAbove = Need to use a JVM >= 1.2
configure.duplicateLog = duplicate log specification: {0}
configure.duplicateRepeat = duplicate repeat specification: {0}
configure.duplicateCompliance = duplicate compliance setting specification: {0}
configure.source = invalid source option, source is either ''1.3'' or ''1.4'': {0}
configure.duplicateOutputPath = duplicate output path specification: {0}
configure.duplicateBootClasspath = duplicate bootclasspath specification: {0}
configure.invalidDebugOption = invalid debug option: {0}
configure.invalidWarningConfiguration = invalid warning configuration: {0}
configure.invalidWarning = invalid warning: {0}
configure.invalidWarningOption = invalid warning option: {0}
configure.targetJDK = target JDK should be comprised in between ''1.1'' and ''1.4'': {0}
configure.incompatibleTargetForSource14 = ''1.4'' source mode requires ''-target 1.4'' : {0}
configure.incompatibleComplianceForSource14 = ''1.4'' source mode requires ''-1.4'' compliance mode: {0}
configure.incompatibleComplianceForTarget14 = ''1.4'' target mode requires ''-1.4'' compliance mode: {0}
configure.incompatibleComplianceForTarget11 = ''1.1'' target mode requires ''-1.3'' compliance mode: {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.noClasspath = no classpath defined, using default directory instead
configure.incorrectClasspath = incorrect classpath: {0}
configure.invalidexpansionargumentname = expansion argument file {0} doesn't exist or cannot be read
configure.cannotOpenLog = cannot open .log file
configure.unexpectedCustomEncoding = unexpected custom encoding specification: {0}[{1}]
configure.unsupportedEncoding = unsupported encoding format: {0}
configure.duplicateDefaultEncoding = duplicate default encoding format specification: {0}
configure.invalidTaskTag ={0} is an invalid task tag

### 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 an IOException.

### miscellaneous
misc.version = {compiler.name} {compiler.version}, {compiler.copyright}
misc.usage = {compiler.name} {compiler.version}, {compiler.copyright}\n\
\ \n\
\ Usage: <options> <source files | directories>\n\
\ If directories are specified, then their source contents are compiled.\n\
\ Possible options are listed below. Options enabled by default are prefixed with ''+''\n\
\ \n\
\ Classpath options:\n\
\    -cp -classpath <directories and zip/jar files separated by ;>\n\
\                       specify location for application classes and sources\n\
\    -bootclasspath <directories and zip/jar files separated by ;>\n\
\                       specify location for system classes\n\
\    -d <dir>           destination directory (if omitted, no directory is created)\n\
\    -d none            generate no .class files\n\
\    -encoding <enc>    specify custom encoding for all sources. Each file/directory can override it\n\
\                       when suffixed with ''[''<enc>'']'' (e.g. X.java[utf8])\n\
\ \n\
\ Compliance options:\n\
\    -1.3               use 1.3 compliance level (implicit -source 1.3 -target 1.1)\n\
\    -1.4             + use 1.4 compliance level (implicit -source 1.3 -target 1.2)\n\
\    -source <version>  set source level (1.3 or 1.4)\n\
\    -target <version>  set classfile target (1.1 to 1.4)\n\
\ \n\
\ Warning options:\n\
\    -deprecation     + deprecation outside deprecated code\n\
\    -nowarn            disable all warnings\n\
\    -warn:none         disable all warnings\n\
\    -warn:<warnings separated by ,>    enable exactly the listed warnings\n\
\    -warn:+<warnings separated by ,>   enable additional warnings\n\
\    -warn:-<warnings separated by ,>   disable specific warnings\n\
\      allDeprecation       deprecation including inside deprecated code\n\
\      allJavadoc           invalid or missing javadoc\n\
\      assertIdentifier   + ''assert'' used as identifier\n\
\      charConcat         + char[] in String concat\n\
\      conditionAssign      possible accidental boolean assignment\n\
\      constructorName    + method with constructor name\n\
\      deprecation        + deprecation outside deprecated code\n\
\      emptyBlock           undocumented empty block\n\
\      fieldHiding          field hiding another variable\n\
\      finally            + finally block not completing normally\n\
\      indirectStatic       indirect reference to static member\n\
\      intfNonInherited   + interface non-inherited method compatibility\n\
\      javadoc              invalid javadoc\n\
\      localHiding          local variable hiding another variable\n\
\      maskedCatchBlock   + hidden catch block\n\
\      nls                  string literal lacking non-nls tag //$NON-NLS-<n>$\n\
\      noEffectAssign     + assignment without effect\n\
\      pkgDefaultMethod   + attempt to override package-default method\n\
\      semicolon            superfluous semicolon\n\
\      unqualifiedField     unqualified reference to field\n\
\      unusedImport       + unused import declaration\n\
\      unusedLocal          unread local variable\n\
\      unusedPrivate        unused private member declaration\n\
\      unusedThrown         unused declared thrown exception\n\
\      uselessTypeCheck     unnecessary cast/instanceof operation\n\
\      specialParamHiding   constructor or setter parameter hiding another field\n\
\      staticReceiver     + non-static reference to static member\n\
\      syntheticAccess      synthetic access for innerclass\n\
\      tasks(<tags separated by |>) tasks identified by tags inside comments\n\
\ \n\
\ Debug options:\n\
\    -g[:lines,vars,source] custom debug info\n\
\    -g:lines,source  + both lines table and source debug info\n\
\    -g                 all debug info\n\
\    -g:none            no debug info\n\
\    -preserveAllLocals preserve unused local vars for debug purpose\n\
\ \n\
\ Advanced options:\n\
\    -log <file>        log to a file\n\
\    -proceedOnError    do not stop at first error, dumping class files with problem methods\n\
\    -verbose           enable verbose output\n\
\    -referenceInfo     compute reference info\n\
\    -progress          show progress (only in -log mode)\n\
\    -time              display speed information \n\
\    -noExit            do not call System.exit(n) at end of compilation (n==0 if no error)\n\
\    -repeat <n>        repeat compilation process <n> times for perf analysis\n\
\    @<file>            read command line arguments from file\n\
\ \n\
\    -? -help           print this help message\n\
\    -v -version        print compiler version\n\
\    -showversion       print compiler version and continue\n

