给定使用消息占位符的对象的约束,例如
/**
* @Assert\MaxLength(limit = 25, message = "name.length.invalid")
*/
public $name;
,其中
name.length.invalid: 'Please enter a shorter name.'
为什么Symfony在尝试呈现具有复数组件的消息时会默认强制使用消息复数规则?如果我对消息有一个复数(由于最大长度的限制就是这种情况)和指定的故意非复数消息(如上所述),为什么Symfony强迫我指定某种形式的复数而不是仅使用非-pluralized形式的消息?
我不想明确定义复数的范围(例如'[0, Inf] Please enter a shorter name.'
),因为它应该由翻译选择的存在隐含。在上述情况下,提供明确的复数选择(例如'Please enter a shorter name|Please enter a shorter name'
)也是多余的。
有没有更好的方法来处理这种情况,或者像这样的情况?
NB:以上案例是说明性的,显然如果将此消息呈现给实际的最终用户,可以进行改进。
在以下问题中可以看到同一问题的另一个例子:double translation in symfony2