Symfony2 翻译验证消息问题

Symfony2 translation of validation messages issue

我在 Symfony 中翻译验证器消息时遇到一个常见问题,所有建议的解决方案都没有帮助我。 这是我的约束:

//  src/AppBundle/Entity/Friend.php   
/**
         * @var string
         *
         * @Assert\NotBlank(message = "test")
         *
         * @ORM\Column(name="name", type="string", length=255)
         */
        private $name;

以及带有翻译的文件:

// src/AppBundle/Resources/translations/validators.en.yml
test: my message

带有翻译的同一个文件我也添加到应用程序目录中。实际上,这是行不通的。我错过了什么?

如果您按照以下步骤操作,它应该会起作用:

首先,开启翻译系统:

# app/config/config.yml
framework:
    translator: { fallback: en }

像您一样创建约束:

// src/AppBundle/Entity/Friend.php
use Symfony\Component\Validator\Constraints as Assert;// Don't forget this part.

class Friend
{
    /**
     * @var string
     * @Assert\NotBlank(message = "test")
     * @ORM\Column(name="name", type="string", length=255)
     */
    public $name;
}

在验证器目录下为约束消息创建一个翻译文件,通常像您一样在包的 Resources/translations/ 目录中。

# validators.en.yml
test: my message

重要最后,在添加新翻译时清除缓存(即使在开发环境中也要这样做)。

$ php app/console cache:clear

对我来说这个解决方案有效。