# Copyright 2004 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# standard messages (Spec. 2.5.2.4)

# components
javax.faces.component.UIInput.CONVERSION = {0}: Error de conversi\u00f3n
javax.faces.component.UIInput.REQUIRED = {0}: Error de validaci\u00f3n: Valor requerido.
javax.faces.component.UIInput.UPDATE = {0}: Un error occurri\u00f3 cuando se estaba procesando la informaci\u00f3n enviada.

javax.faces.component.UISelectOne.INVALID = {0}: Error de validaci\u00f3n: El valor no es una opci\u00f3n v\u00e1lida.
javax.faces.component.UISelectMany.INVALID = {0}: Error de validaci\u00f3n: El valor no es una opci\u00f3n v\u00e1lida.

# converters
javax.faces.converter.BigDecimalConverter.DECIMAL = {2}: ''{0}'' debe ser un n\u00famero decimal con signo.
javax.faces.converter.BigDecimalConverter.DECIMAL_detail = {2}: ''{0}'' debe ser un n\u00famero decimal con signo consistente en cero o m\u00e1s d\u00edgitos, que pueden ser seguidos por un punto decimal y fracci\u00f3n.  Ejemplo: {1}
 
javax.faces.converter.BigIntegerConverter.BIGINTEGER = {2}: ''{0}'' debe ser un n\u00famero consistente de uno o m\u00e1s d\u00edgitos.
javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail = {2}: ''{0}'' debe ser un n\u00famero consistente de uno o m\u00e1s d\u00edgitos. Ejemplo: {1}
 
javax.faces.converter.BooleanConverter.BOOLEAN = {1}: ''{0}'' debe ser ''true'' o ''false''.
javax.faces.converter.BooleanConverter.BOOLEAN_detail = {1}: ''{0}'' debe ser ''true'' o ''false''.  Cualquier otro valor diferente a ''true'' se evaluar\u00e1 como ''false''.

javax.faces.converter.ByteConverter.BYTE = {2}: ''{0}'' debe ser un n\u00famero entre 0 y 255.
javax.faces.converter.ByteConverter.BYTE_detail = {2}: ''{0}'' debe ser un n\u00famero entre 0 y 255. Ejemplo: {1}
 
javax.faces.converter.CharacterConverter.CHARACTER = {1}: ''{0}'' debe ser un car\u00e1cter v\u00e1lido.
javax.faces.converter.CharacterConverter.CHARACTER_detail = {1}: ''{0}'' debe ser un caracter ASCII v\u00e1lido.

javax.faces.converter.DateTimeConverter.DATE = {2}: ''{0}'' no puede ser entendido como una fecha v\u00e1lida.
javax.faces.converter.DateTimeConverter.DATE_detail = {2}: ''{0}'' no puede ser entendido como una fecha v\u00e1lida. Ejemplo: {1}
javax.faces.converter.DateTimeConverter.TIME = {2}: ''{0}'' no puede ser entendido como una hora v\u00e1lida.
javax.faces.converter.DateTimeConverter.TIME_detail = {2}: ''{0}'' no puede ser entendido como una hora v\u00e1lida. Ejemplo: {1}
javax.faces.converter.DateTimeConverter.DATETIME = {2}: ''{0}'' no puede ser entendido como una fecha y hora v\u00e1lida.
javax.faces.converter.DateTimeConverter.DATETIME_detail = {2}: ''{0}'' no puede ser entendido como una fecha y hora v\u00e1lida. Ejemplo: {1}
javax.faces.converter.DateTimeConverter.PATTERN_TYPE = {1}: El attributo ''pattern'' o ''type'' debe ser especificado para convertir el valor ''{0}''.

javax.faces.converter.DoubleConverter.DOUBLE = {2}: ''{0}'' debe ser un n\u00famero consistente de uno o m\u00e1s d\u00edgitos.
javax.faces.converter.DoubleConverter.DOUBLE_detail = {2}: ''{0}'' debe ser un n\u00famero entre 4.9E-324 y 1.7976931348623157E308  Ejemplo: {1}

javax.faces.converter.EnumConverter.ENUM = {2}: ''{0}'' debe ser convertible a una enumeraci\u00f3n.
javax.faces.converter.EnumConverter.ENUM_detail = {2}: ''{0}'' debe ser convertible a una enumeraci\u00f3n de la enumeraci\u00f3n que contiene la constante ''{1}''.
javax.faces.converter.EnumConverter.ENUM_NO_CLASS = {1}: ''{0}'' must be convertible to an enum from the enum, but no enum class provided.
javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail = {1}: ''{0}'' must be convertible to an enum from the enum, but no enum class provided.

javax.faces.converter.FloatConverter.FLOAT = {2}: ''{0}'' debe ser un n\u00famero consistente de uno o m\u00e1s d\u00edgitos.
javax.faces.converter.FloatConverter.FLOAT_detail = {2}: ''{0}'' debe ser un n\u00famero entre 1.4E-45 y 3.4028235E38 Ejemplo: {1}

javax.faces.converter.IntegerConverter.INTEGER = {2}: ''{0}'' debe ser un n\u00famero consistente de uno o m\u00e1s d\u00edgitos.
javax.faces.converter.IntegerConverter.INTEGER_detail = {2}: ''{0}'' debe ser un n\u00famero entre -2147483648 y 2147483647 Ejemplo: {1}

javax.faces.converter.LongConverter.LONG = {2}: ''{0}'' debe ser un n\u00famero consistente de uno o m\u00e1s d\u00edgitos.
javax.faces.converter.LongConverter.LONG_detail = {2}: ''{0}'' debe ser un n\u00famero entre -9223372036854775808 a 9223372036854775807 Ejemplo: {1}

javax.faces.converter.NumberConverter.CURRENCY = {2}: ''{0}'' no puede ser entendida como un valor de moneda.
javax.faces.converter.NumberConverter.CURRENCY_detail = {2}: ''{0}'' no puede ser entendida como un valor de moneda. Ejemplo: {1}
javax.faces.converter.NumberConverter.PERCENT = {2}: ''{0}'' no puede ser entendida como un porcentaje.
javax.faces.converter.NumberConverter.PERCENT_detail = {2}: ''{0}'' no puede ser entendida como un porcentaje. Ejemplo: {1}
javax.faces.converter.NumberConverter.NUMBER = {2}: ''{0}'' no es un n\u00famero.
javax.faces.converter.NumberConverter.NUMBER_detail = {2}: ''{0}'' no es un n\u00famero. Ejemplo: {1}
javax.faces.converter.NumberConverter.PATTERN = {2}: ''{0}'' no es un patr\u00f3n de n\u00fameros.
javax.faces.converter.NumberConverter.PATTERN_detail = {2}: ''{0}'' no es un patr\u00f3n de n\u00fameros. Ejemplo: {1}

javax.faces.converter.ShortConverter.SHORT = {2}: ''{0}'' debe ser un n\u00famero consistente de uno o m\u00e1s d\u00edgitos.
javax.faces.converter.ShortConverter.SHORT_detail = {2}: ''{0}'' debe ser un n\u00famero entre -32768 y 32767 Ejemplo: {1}

javax.faces.converter.STRING = {1}: No se pudo convertir ''{0}'' en una cadena.

# validators
javax.faces.validator.NOT_IN_RANGE = Error de validaci\u00f3n: El atributo especificado no se encuentra entre los valores esperados {0} y {1}.

javax.faces.validator.DoubleRangeValidator.MAXIMUM = {1}: Error de validaci\u00f3n: El valor es mayor que el m\u00e1ximo permitido de "{0}"
javax.faces.validator.DoubleRangeValidator.MINIMUM = {1}: Error de validaci\u00f3n: El valor es inferior al m\u00ednimo permitido de ''{0}''
javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE = {2}: Error de validaci\u00f3n: El valor especificado no se encuentra entre los valores esperados de {0} y {1}.
javax.faces.validator.DoubleRangeValidator.TYPE = {0}: Error de validaci\u00f3n: El valor no es del tipo correcto.

javax.faces.validator.LengthValidator.MAXIMUM = {1}: Error de validaci\u00f3n: Longitud es mayor al m\u00e1ximo permitido de ''{0}''
javax.faces.validator.LengthValidator.MINIMUM = {1}: Error de validaci\u00f3n: Longitud es menor al m\u00ednimo permitido de ''{0}''

javax.faces.validator.LongRangeValidator.MAXIMUM = {1}: Error de validaci\u00f3n: Longitud es mayor al m\u00e1ximo permitido de ''{0}''
javax.faces.validator.LongRangeValidator.MINIMUM = {1}: Error de validaci\u00f3n: Longitud es menor al m\u00ednimo permitido de ''{0}''
javax.faces.validator.LongRangeValidator.NOT_IN_RANGE = {2}: Error de validaci\u00f3n: Valor especificado no esta entre los valores esperados de {0} y {1}.
javax.faces.validator.LongRangeValidator.TYPE = {0}: Error de validaci\u00f3n: El valor no es del tipo correcto.

javax.faces.validator.RegexValidator.NOT_MATCHED = {1}: Error de validaci\u00f3n: El valor no est\u00e1 de acuerdo con el patr\u00f3n ''{0}''
javax.faces.validator.RegexValidator.PATTERN_NOT_SET = Un patr\u00f3n debe ser establecido para validar.
javax.faces.validator.RegexValidator.MATCH_EXCEPTION = El patr\u00f3n no es una expresi\u00f3n regular v\u00e1lida.

javax.faces.validator.BeanValidator.MESSAGE = {1}: {0}

# myfaces specific messages
org.apache.myfaces.Email.INVALID = Error de validaci\u00f3n
org.apache.myfaces.Email.INVALID_detail = El valor ({0}) no es una direcci\u00f3n de correo v\u00e1lida.

org.apache.myfaces.Equal.INVALID = Error de validaci\u00f3n
org.apache.myfaces.Equal.INVALID_detail = El valor ({0}) no es equivalente y tiene valor "{1}".

org.apache.myfaces.Creditcard.INVALID = Error de validaci\u00f3n
org.apache.myfaces.Creditcard.INVALID_detail = El valor ({0}) no es una tarjeta de cr\u00e9dito correcta.

org.apache.myfaces.Regexpr.INVALID = Error de validaci\u00f3n
org.apache.myfaces.Regexpr.INVALID_detail = El valor ({0}) no es v\u00e1lido.

org.apache.myfaces.Date.INVALID = Error de validaci\u00f3n
org.apache.myfaces.Date.INVALID_detail = El valor ({0}) no es una fecha correcta.

org.apache.myfaces.ticker.NOCONNECTION = No hay conexi\u00f3n:
org.apache.myfaces.ticker.NOCONNECTION_detail = \u00bfQuiz\u00e0 est\u00e9 detr\u00e1s de un cortafuegos?

org.apache.myfaces.ISBN.INVALID = Error de validaci\u00f3n
org.apache.myfaces.ISBN.INVALID_detail = El valor ({0}) no es un c\u00f3digo ISBN correcto.

org.apache.myfaces.tree2.MISSING_NODE = Nodo faltante
org.apache.myfaces.tree2.MISSING_NODE_detail = El nodo solicitado "{0}" no existe.

org.apache.myfaces.calendar.CONVERSION = Error de conversi\u00f3n
org.apache.myfaces.calendar.CONVERSION_detail = "{0}": El valor dado "{1}" no se pudo convertir a una fecha.

org.apache.myfaces.FileUpload.SIZE_LIMIT = "{0}": El archivo cargado excedi\u00f3 el tama\u00f1o m\u00e1ximo de {1} bytes.
