2014-11-05 138 views
2

我有一个类并使用注释来验证类属性。如何本地化Bean验证消息

我的网页(jsf2.2/primefaces/Maven的)是多语言(DE-UTCH,FR-rench,IT-阿莲)。我的问题是,hibernate-validator支持某些语言(de,en,es,fr,hu,tr,pt_BR,mn_MN,zn_CN),但不支持意大利语! 所以当我用我的网页的意大利版本的验证信息显示在英语(默认选择休眠的)(在罐子里,org-> hibernate->验证器中列出)。

我如何可以覆盖此,并提供定制的意大利验证消息?

我不想用休眠罐子混乱,因为该项目是Maven和罐子是自动获取。

回答

3

确定重复我设法克服这种不与休眠罐子搞乱。 1)如果有人想覆盖默认的ValidationMessages.properties,你应该选择合适的文件(提示:将它们从hibernate jar中复制:ValidationMessages.properties,ValidationMessages_de.properties,ValidationMessages_fr.properties)并相应地改变它们。

2)将它们全部放在您的项目的src/main/resources/文件夹中。因此该文件夹包含所有* .properties文件。

3)为了提供更多的语言验证(除休眠默认的),我的情况意大利语,我创建了一个“ValidationMessages_it.properties”,并把它放在的src /主/资源/文件夹。 (SRC /主/资源/ ValidationMessages_it.properties)。

当我的语言环境设置为意大利语所以现在休眠首先查看该文件夹中,如果有覆写/其他验证消息(ValidationMessages _ *。属性)。它找到我创建的文件(ValidationMessages_it.properties)并将这些值用作验证消息!

这种解决方案很简单,但有很多的麻烦/时间失去了找到它。我没有找到如何导入这种简单方式的自定义验证消息的文档,这些消息适用于不同于已经在hibernate-validator中实现的其他语言环境。

注意:该解决方案是MAVEN项目,如果该项目没有Maven的,你应该把* properties.files在/src目录/主/ JAVA/文件夹,as answeared in another similar question comments

+2

无需提取任何东西。只需添加您需要或想要覆盖的属性文件即可。他们需要位于类路径的根目录中。用户提供的ValidationMessages属性文件优先于内置的文件。 – Hardy 2014-11-05 18:34:33