2014-11-05 79 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