php - Symfony2 翻译验证消息问题

标签 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/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/

相关文章:

php - 一对多关系 - Laravel 和 Mysql

使用 col 和 row 索引的 PHPExcel 样式格式化

php - Mysqli 未找到行

php - 德鲁帕尔 7 : Node fields in webform

Perl Mason 语法验证

php - 使用 HTML 形式的 token 并检查 PHP 代码的原因

validation - Symfony2 条件形式验证

php - Twig:如何检查变量是否为 DateTime 对象

php - 如何存储图像?

php - Twig:动态属性的类型