# Translation instructions.
# 1.  Each message line is of the form key=value.
#     Translate the value, DO NOT translate the key.
# 2.  The messages may contain arguments that will be filled in
#     by the runtime.  These are of the form: {0}, {1}, etc.
#     These must appear as is in the message, though the order
#     may be changed to support proper language syntax.
# 3.  If a single quote character is to appear in the resulting
#     message, it must appear in this file as two consecutive
#     single quote characters.
# 4.  Lines beginning with "#" (like this one) are comment lines
#     and may contain translation instructions.  They need not be
#     translated unless your translated file, rather than this file,
#     will serve as a base for other translators.
################## Converter Util #################################################
converter.cannotGenerate=Cannot generate object for {0}
converter.cannotConvert=No way to convert {0}
converter.cannotParse=Unable to parse ''{0}''