Symfony2转换来自实体注释的断言消息

Ess*_*led 13 symfony

我有一个带有一些验证和断言消息的实体.我需要将该消息转换为阿拉伯语我有一个messages.ar.xlf文件来自实体的验证消息未被翻译!

    <trans-unit id="1">
        <source>Enter.Car.Details</source>
        <target>?????? ???????</target>
    </trans-unit> 
Run Code Online (Sandbox Code Playgroud)

这是我的实体

/**
 * @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;
Run Code Online (Sandbox Code Playgroud)

这是我的config.yml

framework:
    translator:      { fallback: ar }
Run Code Online (Sandbox Code Playgroud)

注意: - 我在我的twig文件中翻译了一些单词,以检查本地和messages.ar.xlf文件是否正常工作,除了来自实体的验证消息外,它们都正常工作.

Cyp*_*ian 16

验证消息不是来自messages域,而是来自validators一个.

因此,创建validators.ar.xlf文件并将验证消息放在那里并且应该正常工作(请参阅官方的Symfony2文档以供参考).

还有一件事.根据您使用的Symfony版本:maxLength断言ID从Symfony 2.1弃用,并在2.3中删除.因此,如果您使用Symfony> 2.0,那么您应该使用Length断言.