Twig消息翻译

时间:2016-01-19 14:51:12

标签: php symfony

过去2天我一直在学习php和symfony,通过视频教程学习,因为我需要学习使用php和symfony等作为用java编写的spring应用程序的前端。

我正处于无效登录的部分,有些事情我无法理解,我不知道它的语法是什么,但它真的不清楚这里发生了什么:

{% if error %}
        <div>{{error.messageKey|trans(error.messageData, 'security') }}</div>
    {% endif %}

我理解错误对象是隐式可用的,因为框架将它放在那里但是发生了什么?看起来messageKey值被传递到trans函数但是该函数在做什么?

如果我只打印出error.messageKey而没有trans函数,那么管道符号是OR而不是此实例中的管道吗?

1 个答案:

答案 0 :(得分:0)

管道符号是树枝过滤器&#39;。它告诉symfony和twig,他左边的文字需要翻译。

在此处详细了解http://symfony.com/doc/current/book/translation.html

来自评论:

  

有时,异常身份验证可能包含一个占位符数组值,然后用于转置error.messageKey,这是实际的消息字符串,但在示例中,我跟随占位符数组实际上是空的,字符串不包含和%var%占位符,所以我总是得到标准&#34;无效的凭证。&#34; <div>{{ 'Invalid %vara% %name%' |trans({'%name%': 'Steve', '%vara%':'login'}, "app") }}</div> - berimbolo