Symfony2验证消息的翻译问题

时间:2015-01-11 08:10:57

标签: php validation symfony internationalization

我在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目录中添加了。实际上,它不起作用。我错过了什么?

1 个答案:

答案 0 :(得分:14)

如果您按照此步骤操作,则应该可以:

首先,打开翻译系统:

# 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;
}

在约束消息的验证器目录下创建转换文件,通常在包的Res​​ources / translations /目录中创建。

# validators.en.yml
test: my message

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

$ php app/console cache:clear

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