Mensajes de validacion en Myfaces 1.2.5


Los mensajes de validacion de Apache Myfaces se encuentran en el paquete javax.faces de la implementacion JSF, despues de actualizar dependencias a la version 1.2.5 estable de myfaces noté que las claves del archivo de propiedades principal (en ingles) son distintas de las traducciones en otros idiomas (cuando menos en español e italiano), asi que me puse a la tarea de actualizar el contenido del archivo en español, para configurarlo solo es necesario usar añadir en el faces-config.xml de la aplicación:

<application>
     <message-bundle>paquete.donde.esta.el.archivo.nombreArchivoSinExtension</message-bundle>
</application>

y aqui esta la traducción al español inicial:

# 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 = Error de conversión.
javax.faces.component.UIInput.REQUIRED = Valor requerido.
javax.faces.component.UIInput.UPDATE = Error procesando la información. 

javax.faces.component.UISelectOne.INVALID = {0}: Valor no válido
javax.faces.component.UISelectMany.INVALID = {0}: Valor no válido

# converters
javax.faces.converter.BigDecimalConverter.DECIMAL = No es un número decimal válido.
javax.faces.converter.BigDecimalConverter.DECIMAL_detail = {2}: ''{0}'' debe ser un número decimal compuesto de cero o mas dígitos, seguidos del indicador decimal y una fraccion.  Ej: {1}
 
javax.faces.converter.BigIntegerConverter.BIGINTEGER = No es un numero entero válido.
javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail = {2}: ''{0}'' debe ser un número entero. Ej: {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 valor diferente de 'true' será evaluado como 'false'.

javax.faces.converter.ByteConverter.BYTE = {2}: ''{0}'' debe ser un entero entre 0 y 255.
javax.faces.converter.ByteConverter.BYTE_detail = {2}: ''{0}'' debe ser un entero entre 0 y 255.  Ej: {1}
 
javax.faces.converter.CharacterConverter.CHARACTER = {1}: ''{0}'' debe ser un caracter válido.
javax.faces.converter.CharacterConverter.CHARACTER_detail = {1}: ''{0}'' debe ser un caracter ASCII válido.

javax.faces.converter.DateTimeConverter.DATE = {2}: ''{0}'' no puede ser convertido a fecha.
javax.faces.converter.DateTimeConverter.DATE_detail = {2}: ''{0}'' no puede ser convertido a fecha. Ej: {1} 
javax.faces.converter.DateTimeConverter.TIME = {2}: ''{0}'' no puede ser convertido a hora.
javax.faces.converter.DateTimeConverter.TIME_detail = {2}: ''{0}'' no puede ser convertido a hora. Ej: {1} 
javax.faces.converter.DateTimeConverter.DATETIME = {2}: ''{0}'' no puede ser convertido a fecha y hora.
javax.faces.converter.DateTimeConverter.DATETIME_detail = {2}: ''{0}'' no puede ser convertido a fecha y hora. Ej: {1} 
javax.faces.converter.DateTimeConverter.PATTERN_TYPE = {1}: Un atributo 'pattern' o 'type' debe ser especificado para convertir el valor ''{0}''.

javax.faces.converter.DoubleConverter.DOUBLE = {2}: ''{0}'' No es un numero decimal válido.
javax.faces.converter.DoubleConverter.DOUBLE_detail = {2}: ''{0}'' debe ser un número entre 4.9E-324 y 1.7976931348623157E308  Ej: {1}

javax.faces.converter.EnumConverter.ENUM = {2}: ''{0}'' debe ser convertible a una enumeración.
javax.faces.converter.EnumConverter.ENUM_detail = {2}: ''{0}'' debe ser convertible a una enumeración que contenga la constante ''{1}''.
javax.faces.converter.EnumConverter.ENUM_NO_CLASS = {1}: ''{0}'' debe ser convertible a un valor de enumeración, pero no se ha configurado la clase de enumeración.
javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail = {1}: ''{0}'' debe ser convertible a una enumeración, pero no se ha configurado la clase de enumeración.

javax.faces.converter.FloatConverter.FLOAT = {2}: ''{0}'' debe ser un numero decimal.
javax.faces.converter.FloatConverter.FLOAT_detail = {2}: ''{0}'' debe ser un numero decimal entre 1.4E-45 y 3.4028235E38  Ej: {1}

javax.faces.converter.IntegerConverter.INTEGER = {2}: ''{0}'' debe ser un numero entero.
javax.faces.converter.IntegerConverter.INTEGER_detail = {2}: ''{0}'' debe ser un numero entero entre -2147483648 y 2147483647 Ej: {1}

javax.faces.converter.LongConverter.LONG = {2}: ''{0}'' debe ser un número decimal.
javax.faces.converter.LongConverter.LONG_detail = {2}: ''{0}'' debe ser un número decimal -9223372036854775808 y 9223372036854775807 Ej: {1}

javax.faces.converter.NumberConverter.CURRENCY = {2}: ''{0}'' no puedo ser convertido a tipo moneda.
javax.faces.converter.NumberConverter.CURRENCY_detail = {2}: ''{0}'' no puedo ser convertido a tipo moneda. Ej: {1}
javax.faces.converter.NumberConverter.PERCENT = {2}: ''{0}'' no puedo ser convertido a porcentaje.
javax.faces.converter.NumberConverter.PERCENT_detail = {2}: ''{0}'' no puedo ser convertido a porcentaje. Ej: {1}
javax.faces.converter.NumberConverter.NUMBER = {2}: ''{0}'' no es un número.
javax.faces.converter.NumberConverter.NUMBER_detail = {2}: ''{0}'' no es un número. Example: {1}
javax.faces.converter.NumberConverter.PATTERN = {2}: ''{0}'' no es un formato númerico.
javax.faces.converter.NumberConverter.PATTERN_detail = {2}: ''{0}'' no es un formato númerico. Ej: {1}

javax.faces.converter.ShortConverter.SHORT = {2}: ''{0}'' debe ser un número.
javax.faces.converter.ShortConverter.SHORT_detail = {2}: ''{0}'' debe ser un número entre -32768 y 32767 Ej: {1}

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

# validators
javax.faces.validator.NOT_IN_RANGE = El valor no se encuentra en el rango entre {0} y {1}.

javax.faces.validator.DoubleRangeValidator.MAXIMUM = {1}: El valor debe ser inferior a "{0}"
javax.faces.validator.DoubleRangeValidator.MINIMUM = {1}: El valor debe ser superior a ''{0}''
javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE = {2}: El valor no se encuentra en el rango entre {0} y {1}.
javax.faces.validator.DoubleRangeValidator.TYPE = {0}: El valor no es del tipo correcto

javax.faces.validator.LengthValidator.MAXIMUM = {1}: El valor debe ser inferior a ''{0}''
javax.faces.validator.LengthValidator.MINIMUM = {1}: El valor debe ser superior a ''{0}''

javax.faces.validator.LongRangeValidator.MAXIMUM = {1}: El valor debe ser inferior a ''{0}''
javax.faces.validator.LongRangeValidator.MINIMUM = {1}: El valor debe ser superior a ''{0}''
javax.faces.validator.LongRangeValidator.NOT_IN_RANGE = {2}: El valor no se encuentra en el rango entre {0} y {1}.
javax.faces.validator.LongRangeValidator.TYPE = {0}: El valor no es del tipo correcto.

# myfaces specific messages
org.apache.myfaces.renderkit.html.HtmlMessagesRenderer.IN_FIELD = \u0020in {0}
org.apache.myfaces.Email.INVALID = E-mail no válido
org.apache.myfaces.Email.INVALID_detail = La dirección ({0}) no es válida como e-mail.

org.apache.myfaces.Equal.INVALID = Error de validación
org.apache.myfaces.Equal.INVALID_detail =El valor ({0}) no es igual a "{1}".

org.apache.myfaces.Creditcard.INVALID = Validation Error
org.apache.myfaces.Creditcard.INVALID_detail =The given value ({0}) is not a correct creditcard

org.apache.myfaces.Regexpr.INVALID=Error de validación
org.apache.myfaces.Regexpr.INVALID_detail=The given value ({0}) is not valid.

org.apache.myfaces.Date.INVALID = Fecha no válida
org.apache.myfaces.Date.INVALID_detail =The given value ({0}) is not a correct date

org.apache.myfaces.ticker.NOCONNECTION = Sin conexión: 
org.apache.myfaces.ticker.NOCONNECTION_detail = Quizás esta detras de un firewall?

org.apache.myfaces.ISBN.INVALID = Error de validación
org.apache.myfaces.ISBN.INVALID_detail =El valor ({0}) no es un código isbn.

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

org.apache.myfaces.calendar.CONVERSION = Error de conversion
org.apache.myfaces.calendar.CONVERSION_detail = "{0}": El valor "{1}" no pudo ser convertido en fecha.

org.apache.myfaces.FileUpload.SIZE_LIMIT = "{0}": El archivo excede los {1} bytes.

Acerca de Nickman

Aunque crítico e Ingeniero (especializado en software), piloto de aeroplano soy (seré).

14 pensamientos en “Mensajes de validacion en Myfaces 1.2.5

  1. gracias por el aporte, muy interesante.
    pero estuve realizando este ejercicio en icefaces y los mensajes seguían siendo los mismos predeterminados, entonces mi duda es si existen otras constantes propias de ice Faces para lograr el cambio del contenido de mensajes?

  2. ya vi cual era mi error , tenia el message.properties como resource-bundle,solo corregi esto agregandole el message-bundle y listo

  3. Buen día, me sirvio muchisisimo tu explicación para modificar los mensajes de validacion en iceFaces, todo funciona perfectamente cuando un valor es requerido, aparece el siguiente msj (“valor requerido”), pero al hacer una validación de longitud al mensaje le antempone lo siguiente “j_id9:j_id19:0:nuevo: La longitud debe ser superior a ‘4’” por lo que quisiera saber como puedo eliminar la parte de “j_id9:j_id19:0:nuevo:”

    Saludos y de antemano muchas gracias.

  4. Los identificadores “j_id9:j_id19:0:” corresponden (supongo) a los id automaticos del componente form y el componente panel que estas usando -puedes comprobar esto incluyendo el atributo id en esos dos componentes-. Para eliminarlos del mensaje debes usar el componente outputlabel con el atributo for = id_de_componente (creo que según tu pregunta es “nuevo”). Espero que sea de ayuda.

      • Hola, puedes usar algo de esta forma

        <h:outputLabel id="labelNombreUsuario" for="nombreUsuario" value="#{bundle.labelNombreUsuario}" />
          <h:inputText id="nombreUsuario" value="#{usuarioBean.usuario.nombreUsuario}}" />
        

        se crea un label y un input text, el label lee el valor de la etiqueta de un bundle de mensajes (i18n😉 )
        Espero que sea de ayuda.

  5. He hecho lo que dices pero me sigue mostrando el mensaje por defecto.
    Te diré que estoy desarrollando con MyFaces 1.1.7, Trinidad 1.0.11, Facelets 1.1.14

  6. Pingback: Los números de 2010 « Vida Np

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s