Customizar mensagens de erro de conversão e validação no JSF

Alguém sabe me dizer como criar um arquivo de “messages bundle”?
e utlizar em uma aplicação JSF.

No caso abaixo é um exemplo, mas como criar esse arquivo “messages bundle” e como utilizá-lo.

javax.faces.converter.DateTimeConverter.DATE=Data inválida.
javax.faces.converter.DateTimeConverter.DATE_detail=O campo ''{2}''não foi informado com uma data válida.

Na linha: javax.faces.converter.DateTimeConverter.DATE=Data inválida.

Ao lado do campo senha aparecer Data inválida, como o JSF fez com que o nome aparecesse ao lado?

Cria um arquivo messages.properties e adiciona as validações como abaixo.

javax.faces.converter.NumberConverter.NUMBER=O valor {0} não é adequado.
javax.faces.converter.NumberConverter.NUMBER_detail={0} não é número ou é inadequado.
javax.faces.converter.IntegerConverter.INTEGER=O valor {0} não é adequado.
javax.faces.converter.IntegerConverter.INTEGER_detail={0} não é um número inteiro.
javax.faces.converter.DateTimeConverter.DATE=A data {0} não está correta.
javax.faces.converter.DateTimeConverter.DATE_detail= {0} não parece uma data.

[quote=nicocelli]Cria um arquivo messages.properties e adiciona as validações como abaixo.

javax.faces.converter.NumberConverter.NUMBER=O valor {0} não é adequado.
javax.faces.converter.NumberConverter.NUMBER_detail={0} não é número ou é inadequado.
javax.faces.converter.IntegerConverter.INTEGER=O valor {0} não é adequado.
javax.faces.converter.IntegerConverter.INTEGER_detail={0} não é um número inteiro.
javax.faces.converter.DateTimeConverter.DATE=A data {0} não está correta.
javax.faces.converter.DateTimeConverter.DATE_detail= {0} não parece uma data.

[/quote]

Eis o problema como eu crio esse arquivo? é uma página jsp que contenha o componente messages?

No arquivo messages.properties você coloca essas informações que falamos,
na página jsp você faz a validação.
Por exemplo:

<h:inputText id="nome" label="Nome" size="30"  required="true" value="#{usuarioBean.nome}" >
     	 		<f:validateLength minimum="4"/>
                        <rich:messages for="nome">

A atributo label irá informar na tela qual campo não passou na validação, o atributo id será utilizado na tag messages.