我在 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
对我来说,这个解决方案很有效。
关于php - Symfony2 翻译验证消息问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27885176/