Jay*_*Jay 5 php validation internationalization symfony
我在Symfony中翻译验证器消息时遇到了一个常见问题,所有建议的解决方案对我没有帮助.这是我的约束:
// src/AppBundle/Entity/Friend.php
/**
* @var string
*
* @Assert\NotBlank(message = "test")
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
Run Code Online (Sandbox Code Playgroud)
并提供翻译文件:
// src/AppBundle/Resources/translations/validators.en.yml
test: my message
Run Code Online (Sandbox Code Playgroud)
我也在app目录中添加了带翻译的同一文件.实际上,它不起作用.我错过了什么?
aco*_*ell 14
如果您按照此步骤操作,它应该工作:
首先,打开翻译系统:
# app/config/config.yml
framework:
translator: { fallback: en }
Run Code Online (Sandbox Code Playgroud)
像你一样创建约束:
// 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;
}
Run Code Online (Sandbox Code Playgroud)
在约束消息的验证器目录下创建转换文件,通常在包的Resources/translations /目录中创建.
# validators.en.yml
test: my message
Run Code Online (Sandbox Code Playgroud)
重要事项最后,在添加新翻译时清除缓存(即使您处于开发环境中也要这样做).
$ php app/console cache:clear
Run Code Online (Sandbox Code Playgroud)
对我来说这个解决方案有效