我在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目录中添加了。实际上,它不起作用。我错过了什么?
答案 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;
}
在约束消息的验证器目录下创建转换文件,通常在包的Resources / translations /目录中创建。
# validators.en.yml
test: my message
重要最后,在您添加新翻译时清除缓存(即使您处于开发环境中也要这样做。)
$ php app/console cache:clear
对我来说这个解决方案有效。