【问题标题】:Symfony2 translation of validation messages issueSymfony2 验证消息的翻译问题
【发布时间】:2015-03-09 05:26:45
【问题描述】:

我在 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 目录中添加了带有翻译的相同文件。实际上,它不起作用。我错过了什么?

【问题讨论】:

  • 你在 Symfony 上打开翻译系统了吗?

标签: php validation symfony internationalization


【解决方案1】:

如果您按照以下步骤操作,它应该可以工作:

首先,打开翻译系统:

# 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

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

【讨论】:

  • 非常感谢@acontell。我通常不习惯清除缓存,因为在dev模式下工作时不需要这样做。你节省了我的时间
  • @Jay 是的,我时常发生。我已经更新了答案,更加重视该部分,因为它必然会发生在更多人身上。
  • 感谢@acontell,您 3 岁前的回答救了我!
  • 感谢@acontell,你 3 岁的回答救了我!你的回答应该被周杰伦接受
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多