2013-02-20 42 views
3

如何在整個Symfony 2.1應用程序中全局覆蓋NotBlank約束信息This value should not be blank全局覆蓋symfony2.1上的NotBlank約束消息?

我試過validators.en.yml文件,但是這隻適用於我將validation.yml文件中的每個NotBlank約束設置爲像not.blank.field這樣的常量 - 但修改太多了。

+0

未經測試,但如何創建從https://github.com/symfony/複製的文件「<內核根目錄>/Resources/translations/validators.en.xlf」驗證/ blob /主/資源/翻譯/ validators.en.xlf,只是改變你想要的消息? – cheesemacfly 2013-02-20 16:39:14

+0

它無法在validators.en.yml(或任何其他格式)上工作在messages.en.yml ..任何ideea? – 2013-02-20 16:57:48

+0

'它對messages.en.yml有效'是什麼意思? – cheesemacfly 2013-02-20 17:15:22

回答

3

要在您的應用程序級別上觸發NotBlank約束條件時替換This value should not be blank消息,只需在正確的位置創建正確的翻譯文件即可。

爲簡單起見,您的區域似乎是英語(en),所以創建文件app/Resources/translations/validators.en.yml,寫在下面幾行:

# app/Resources/translations/validators.en.yml 
This value should not be blank.: Y U NO SET THE VALUE?! 

第一部分具有精確匹配所需信息翻譯(在你的情況下​​)。

如果您有自定義的文件/文件夾層次結構,只需在<kernel root directory>/Resources/translations下創建該文件即可。

如果你想爲另一種語言的相同的行爲(法語爲例),只需創建在同一文件夾對應的文件:

# app/Resources/translations/validators.fr.yml 
This value should not be blank.: La valeur doit etre specifiee. 

不要忘記加入後清除緩存新文件!

它爲什麼有效?由於Symfony2按位置優先考慮翻譯文件:http://symfony.com/doc/current/book/translation.html#translation-locations-and-naming-conventions