Symfony2:如何翻译@Assert \ Callback消息

时间:2013-04-19 16:03:23

标签: symfony twig translate

我的权利

中有一个callBack方法
@Assert\Callback(methods={"isStudentsOK"}) 
....
public function isStudentsOK(ExecutionContext $context)
{
  if ( $this->students->isEmpty())
    $context->addViolationAtSubPath('students', 'Missing students informations', array(), null);
} 

我想在我的模板中翻译le message {{ form_errors(form.student)|trans }}不起作用...... 我有这个

<span class="help-inline">Missing students informations</span>

这是一个错误吗?我该怎么办?

编辑

我自己找到了答案:

我已经安装了BootstrapBundle,并且{% block form_errors %}显示在范围内

我已覆盖form_div_layout.html.twig模板。

1 个答案:

答案 0 :(得分:0)

你的代码正在使用| trans过滤器,所以我假设你正在使用Twig i18n扩展,后者又使用PHP的gettext函数。

如果您的PHP代码生成了消息,您可以在那里进行翻译:

@Assert\Callback(methods={"isStudentsOK"}) 
....
public function isStudentsOK(ExecutionContext $context)
{
  if ( $this->students->isEmpty())
    $context->addViolationAtSubPath('students', _('Missing students informations'), array(), null);
} 

请注意错误消息中的下划线功能。这是“Trans”过滤器的PHP等价物。