Pessoal, tenho uma app web, que usa hibernate validator, e precisa estar disponivel em 3 idiomas diferentes, gostaria de saber como internacionalizar as mensagens do hibernate validator para estes mesmos idiomas?
Obrigado!
Pessoal, tenho uma app web, que usa hibernate validator, e precisa estar disponivel em 3 idiomas diferentes, gostaria de saber como internacionalizar as mensagens do hibernate validator para estes mesmos idiomas?
Obrigado!
Olá pirado8,
Segundo a documentação basta incluir na sua aplicação o arquivo ValidationMessages_XX.properties, onde XX é a localização, ex. pt_BR.
Se você abrir o jar do hibernate-validator vai encontrar os seguintes já prontos:
ValidationMessages_de.properties (alemão)
ValidationMessages_en.properties (inglês, esta vazio pois usa o default)
ValidationMessages_fr.properties (francês)
ValidationMessages_mn_MN.properties (Mongólia?)
ValidationMessages_tr.properties (Turkish ?)
ValidationMessages.properties (o default)
Esse é o conteúdo do ValidationMessages.properties que está no jar :
# $Id: ValidationMessages.properties 19251 2010-04-20 15:28:18Z hardy.ferentschik $
javax.validation.constraints.AssertFalse.message=must be false
javax.validation.constraints.AssertTrue.message=must be true
javax.validation.constraints.DecimalMax.message=must be less than or equal to {value}
javax.validation.constraints.DecimalMin.message=must be greater than or equal to {value}
javax.validation.constraints.Digits.message=numeric value out of bounds (<{integer} digits>.<{fraction} digits> expected)
javax.validation.constraints.Future.message=must be in the future
javax.validation.constraints.Max.message=must be less than or equal to {value}
javax.validation.constraints.Min.message=must be greater than or equal to {value}
javax.validation.constraints.NotNull.message=may not be null
javax.validation.constraints.Null.message=must be null
javax.validation.constraints.Past.message=must be in the past
javax.validation.constraints.Pattern.message=must match "{regexp}"
javax.validation.constraints.Size.message=size must be between {min} and {max}
org.hibernate.validator.constraints.Email.message=not a well-formed email address
org.hibernate.validator.constraints.Length.message=length must be between {min} and {max}
org.hibernate.validator.constraints.NotBlank.message=may not be empty
org.hibernate.validator.constraints.NotEmpty.message=may not be empty
org.hibernate.validator.constraints.Range.message=must be between {min} and {max}
org.hibernate.validator.constraints.URL.message=must be a valid URL
org.hibernate.validator.constraints.CreditCardNumber.message=invalid credit card number
org.hibernate.validator.constraints.ScriptAssert.message=script expression "{script}" didn't evaluate to true
Neste link tem essa dica e outro jeito mais avançado…
http://stackoverflow.com/questions/6261858/internationalization-in-hibernate-validators
jamirdeajr , obrigado pela ajuda. Tinha realmente visto os arquivos no jar do hibernate validator.
Meu problema acredito seja um pouco maior, veja bem, eu tenho um projeto maven somente para os meus modelos, pois são modelos compartilhados. Este projeto encapsula o hibernate validator e hibernate annotations, eu uso como uma lib no meu projeto web principal.
No meu projeto web principal é onde está configurado a internacionalização.
A minha dúvida agora é, onde eu coloco os arquivos properties? No projeto dos modelos? em qual pasta? algum pacote específico? Senaõ, devo por na minha aplicação web? Isso sobrescreveria os arquivos originais no jar do hibernate?
Obrigado!
Creio que deva ficar na aplicação WEB, no ‘JSR 303 Reference Implementation Reference Guide’ diz que deve ficar no diretório raiz, e somente se o hibernate-validator não encontrar irá buscar em '/org/hibernate/validator/ValidationMessages.properties’
http://www.scribd.com/doc/36370675/Hibernate-Reference
Assim mesmo dei uma pesquisada em alternativas, para alguns foi necessário criar uma ‘subpasta’ e colocar lá para ser reconhecido e em alguns falam em usar ‘/src/main/resources/’, bom, só testando mesmo.
Aqui fala alguma coisa também, é para o vraptor mas pode ser que seja útil:
http://www.guj.com.br/java/230664-vraptor-320-validationmessagesproperties-e-messagesproperties#1184314
Boa sorte!