Estou criando um pequeno sistema multilingua. Porém, quando vou validar meus bean usando o Hibernate Validator eu gero as mensagens apenas em inglês. Gostaria de saber como é possível validar por ele e traduzir as mensagens.
Sei que tem como validar pelo próprio VRaptor, mas a quantidade de código de validação que deve ser escrita é bem maior! Alguém tem alguma alternativa? Como vocês fazem?
Baixei o Hibernate Validator 4. Copiei para a WEB-INF/lib:
validation-api-1.0.0.GA.jar
slf4j-api-1.6.1.jar (já tinha na verdade)
hibernate-validator-4.2.0.Final.jar
Não copiei o hibernate-validator-annotation-processor-4.2.0.Final.jar, pelo visto ele é opcional, certo?
Coloquei minhas annotations de validação e ele gera os erros automáticos bonitinho, alguns são até em português, outros não: p. ex. quando vc coloca uma letra num campo numerico ele responde “preco - ???is_not_a_valid_number???”
Não achei na documentação do Hibernate Validator como eu configuro essas mensages e coloco ela várias linguas. Vc sabe me dar mais detalhes?
vc criou o arquivo ValidationMessages.properties no classpath?
se sim, as chaves são geralmente o nome completo da anotação com um .message no final (se vc abrir o jar do hibernate validator, no pacote org.hibernate.validator existem arquivos de exemplo com as chaves)
algo assim:
javax.validation.constraints.NotNull.message = não pode ser nulo
pra colocar outras linguas é a regra do bundle do java, só chamar os arquivos de ValidationMessages_en.properties, ValidationMessages_es.properties, etc
Entendi, muito obrigado. Não tinha criado esse arquivo ainda.
Mas o exemplo que eu dei do campo Preço, não era uma anotação que eu fiz. É uma validação que o Hibernate já faz. Para checar se a pessoa escreveu um número… essas mensagens tem como eu alterar também?