# This file stores localized messages for the Xerces JAXP Datatype API implementation.
#
# The messages are arranged in key and value tuples in a ListResourceBundle.
#

BadMessageKey = No se ha encontrado el mensaje de error correspondiente a la clave de mensaje.
FormatFailed = Se ha producido un error interno al formatear el siguiente mensaje:\n

FieldCannotBeNull=no se puede llamar a {0} con un par\u00E1metro ''nulo''.
UnknownField=se ha llamado a {0} con un campo desconocido:{1}
#There are two similar keys 'InvalidXMLGreogorianCalendarValue' . Suffix (year, month) has been added and are used as per the context.
InvalidXGCValue-milli=A\u00F1o = {0}, Mes = {1}, D\u00EDa = {2}, Hora = {3}, Minuto = {4}, Segundo = {5}, Segundo Fraccionario = {6}, Zona Horaria = {7} , no es una representaci\u00F3n v\u00E1lida de un valor del calendario gregoriano XML.
#There are two similar keys 'InvalidXMLGreogorianCalendarValue' . Suffix (year, month) has been added and are used as per the context.
InvalidXGCValue-fractional=A\u00F1o = {0}, Mes = {1}, D\u00EDa = {2}, Hora = {3}, Minuto = {4}, Segundo = {5}, Segundo Fraccionario = {6}, Zona Horaria = {7} , no es una representaci\u00F3n v\u00E1lida de un valor del calendario gregoriano XML.

InvalidXGCFields=Juego de campos no v\u00E1lido definido para el calendario gregoriano XML

InvalidFractional=Valor no v\u00E1lido {0} para el segundo fraccionario.

#XGC stands for XML Gregorian Calendar
InvalidXGCRepresentation="{0}" no es una representaci\u00F3n v\u00E1lida de un valor del calendario gregoriano XML.

InvalidFieldValue=Valor no v\u00E1lido {0} para el campo {1}.

NegativeField= El campo {0} es negativo

AllFieldsNull=Todos los campos (javax.xml.datatype.DatatypeConstants.Field) son nulos.

TooLarge=El valor "{1}" de {0} es demasiado largo para que esta implantaci\u00F3n pueda soportarlo
