###############################################################################
# Copyright (c) 2006, 2011 Ben Konrath <ben@bagu.org>
# 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:
#     Ben Konrath <ben@bagu.org> - initial implementation
#     IBM Corporation - Code review and integration
#     IBM Corporation - Fix for 340181
###############################################################################
CommandLineStart=Starting format job ...
CommandLineDone=Done.
CommandLineConfigFile=Configuration Name: {0}
CommandLineFormatting=Formatting: {0}

CommandLineUsage=Usage: eclipse -application org.aspectj.org.eclipse.jdt.core.JavaCodeFormatter [ OPTIONS ] -config <configFile> <files>\n\
\n\
\   <files>   Java source files and/or directories to format.\n\
\             Only files ending with .java will be formatted in the given directory.\n\
\   -config <configFile> Use the formatting style from the specified properties file.\n\
\                        Refer to the help documentation to find out how to generate this file.\n\
\n\
\ OPTIONS:\n\
\n\
\   -help                Display this message.\n\
\   -quiet               Only print error messages.\n\
\   -verbose             Be verbose about the formatting job.

CommandLineErrorFileTryFullPath={0} does not exist. Please try specifying valid absolute path. 
CommandLineErrorFile={0} does not exist. Please specify only valid Java Source files.
CommandLineErrorConfig=A problem occurred while reading the config file {0}.
CommandLineErrorFileDir=You must specify at least one file or directory to format.
CommandLineErrorQuietVerbose=You cannot use the options {0} and {1} together.
CommandLineErrorNoConfigFile=No configuration file specified.

CaughtException=Caught {0} : {1}
ExceptionSkip= {0}\nSkipping File.

ConfigFileNotFoundErrorTryFullPath=Error reading configuration file (file path : {0}, current user directory used to read the file: {1}). Try specifying absolute path.
ConfigFileReadingError=Error reading configuration file {0}.

FormatProblem=The Eclipse formatter failed to format {0}. Skip the file.