13

いくつかの検証メッセージとアサーション メッセージを含むエンティティがあります。そのメッセージをアラビア語に翻訳する必要があります。messages.ar.xlf ファイルがあります。エンティティからの検証メッセージが翻訳されていません。

    <trans-unit id="1">
        <source>Enter.Car.Details</source>
        <target>بيانات السيارة</target>
    </trans-unit> 

これが私のエンティティです

/**
 * @var string
 * @Assert\Length(max = "4", maxMessage = "Enter.Car.Details")
 * @Assert\NotBlank(message="Enter.Car.Details")
 * @ORM\Column(name="year_made", type="integer", length=4, nullable=true)
 */
private $yearMade;

ここに私のconfig.ymlがあります

framework:
    translator:      { fallback: ar }

注:-小枝ファイルのいくつかの単語を翻訳して、ローカルおよびmessages.ar.xlfファイルが機能しているかどうかを確認しました。エンティティからの検証メッセージを除いて、すべて機能しています。

4

1 に答える 1

16

検証メッセージはドメインからmessagesではなく、ドメインから取得されますvalidators

したがって、validators.ar.xlfファイルを作成し、そこに検証メッセージを配置すると、機能するはずです (参照については、Symfony2 の公式ドキュメントを参照してください)。

もう一つ。使用している Symfony のバージョンによって異なります: maxLengthassertion id は Symfony 2.1 から廃止され、2.3 で削除されました。したがって、Symfony > 2.0 を使用している場合は、Length代わりにアサーションを使用する必要があります。

于 2013-09-08T09:31:08.363 に答える