###############################################################################
# Copyright (c) 2006, 2011 Ben Konrath <ben@bagu.org>
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# 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.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.