为什么Symfony 2似乎需要翻译消息的多元化?

为什么Symfony 2似乎需要翻译消息的多元化?,symfony,localization,translation,pluralize,Symfony,Localization,Translation,Pluralize,给定使用消息占位符的对象约束,例如 /** * @Assert\MaxLength(limit = 25, message = "name.length.invalid") */ public $name; 在哪里 为什么Symfony在默认情况下在尝试呈现包含复数化组件的消息时强制消息复数化规则?如果我在消息上有一个复数形式(由于最大长度的限制,情况就是这样)和一个故意指定的非复数形式的消息(如上所述),为什么Symfony强迫我指定某种形式的复数形式,而不仅仅是使用非复数形式的消息 我

给定使用消息占位符的对象约束,例如

/**
 * @Assert\MaxLength(limit = 25, message = "name.length.invalid")
 */
public $name;
在哪里

为什么Symfony在默认情况下在尝试呈现包含复数化组件的消息时强制消息复数化规则?如果我在消息上有一个复数形式(由于最大长度的限制,情况就是这样)和一个故意指定的非复数形式的消息(如上所述),为什么Symfony强迫我指定某种形式的复数形式,而不仅仅是使用非复数形式的消息

我不希望必须明确定义复数的范围(例如,
“[0,Inf]请输入一个较短的名称。”
),因为它应该由翻译选项的存在隐含。在上述情况下,提供明确的多元化选择(例如,
“请输入一个较短的名称|请输入一个较短的名称”
)也是多余的

有没有更好的方法来处理这种情况,或者类似的情况

NB:上述情况是说明性的,如果将此消息呈现给实际的最终用户,显然可以进行改进


同样问题的另一个例子可以在下面的问题中看到:

。我认为你现在无法解决这个问题。感谢@WouterJ;你介意把这句话作为回答,这样我就可以把它标记为回答了吗?谢谢,但我不认为这是一个实际的回答。因此,我认为最好还是保持开放状态,看看有没有人在未来几天/几周内找到解决方案。
name.length.invalid: 'Please enter a shorter name.'