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

我已经尝试过使用validators.en.yml文件,但是只有当我将validation.yml文件中的每个NotBlank约束都设置为类似于not.blank.field的常量时,此方法才有效-但修改太多。

最佳答案

要替换在应用程序级别触发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

关于php - 全局覆盖symfony2.1上的NotBlank约束消息吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14984112/

10-12 02:47