【发布时间】:2016-08-08 06:23:16
【问题描述】:
使用 i18n 验证表单中的所有内容都很好,但无法弄清楚如何翻译表单验证。例如,现在当我尝试提交带有空字段的表单时,我收到弹出验证消息“请填写此字段。”
翻译已打开并启用注释:
// config_dev.yml
framework:
router:
resource: "%kernel.root_dir%/config/routing_dev.yml"
strict_requirements: true
profiler: { only_exceptions: false }
translator: { fallback: en }
validation: { enable_annotations: true }
实体被操纵用于验证注释:
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
....
/**
* @var string
* @Assert\NotBlank(message = "Custom validation error message")
* @ORM\Column(name="url", type="string", length=512)
*/
private $url;
我还在我的 app/Resources/translations 文件夹中创建了文件 validators.en.yml,但不知道从哪里开始。有人可以帮忙吗?
【问题讨论】:
-
您从浏览器中看到消息,您甚至没有提交表单。这是一条 HTML5 验证消息,与 Symfony 无关。
-
@malcolm 该消息在您提交表单时出现。下一个答案....
-
如果您看到带有 HTML5 验证消息的工具提示。 Symfony 验证消息在提交表单并重新加载/重定向页面后出现,但您知道得更好......如果您想知道,Symfony 中 not_blank 断言的默认消息是:“此值不应为空。”你会得到“请填写此字段”。来自浏览器的默认消息。
-
@malcolm 好的,是的,我的设置只会帮助为提交表单后返回的错误消息编写消息。诚然,我错了。如果您尝试提交空的必填字段,我需要了解如何翻译弹出的 HTML5 消息。嗯
-
你可以用javascript来做。