メッセージプレースホルダーを使用してオブジェクトに制約がある場合、たとえば
/**
* @Assert\MaxLength(limit = 25, message = "name.length.invalid")
*/
public $name;
どこ
name.length.invalid: 'Please enter a shorter name.'
複数形のコンポーネントを持つメッセージをレンダリングしようとすると、Symfonyがデフォルトでメッセージの複数形ルールを強制するのはなぜですか?メッセージに複数形があり(最大長の制限のため)、意図的に複数形ではないメッセージが指定されている場合(上記のように)、Symfonyが非複数形を使用するのではなく、何らかの形の複数形を指定するように強制するのはなぜですか? -メッセージの複数形?
複数化の範囲(たとえば'[0, Inf] Please enter a shorter name.'
)を明示的に定義する必要はありません。これは、翻訳の選択肢が存在することによって暗黙的に行われる必要があるためです。また、上記の場合に明示的な複数形の選択肢(たとえば'Please enter a shorter name|Please enter a shorter name'
)を提供することは冗長です。
この状況、またはこのような状況を処理するためのより良い方法はありますか?
注意:上記のケースは例示的なものであり、このメッセージが実際のエンドユーザーに提示された場合に行われる可能性のある改善が明らかにあります。
同じ問題の別の例は、次の質問で見ることができます:symfony2での二重翻訳