全局覆盖symfony2.1上的NotBlank约束消息?

时间:2013-02-20 15:48:58

标签: php symfony constraints messages

如何在整个Symfony 2.1应用程序中全局覆盖NotBlank约束消息This value should not be blank

我尝试使用validators.en.yml文件,但只有当我将validation.yml文件中的每个NotBlank约束设置为not.blank.field之类的常量时,这才有效 - 但是修改过多

1 个答案:

答案 0 :(得分:3)

要替换在您的应用程序级别触发This value should not be blank约束时显示的NotBlank消息,只需在正确的位置创建正确的翻译文件。

为简单起见,您的语言环境似乎是英语(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?!

第一部分必须与您要翻译的消息完全匹配(在您的情况下为This value should not be blank.)。

如果您有自定义文件/文件夹层次结构,只需在<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