【发布时间】:2015-06-18 09:44:00
【问题描述】:
是否可以用'trans'标签翻译模板中twig变量的值?
例如,我将产品传递给我的模板。该产品有一个带有反式标签的定义,例如{{ product.definition|trans }}。这个定义可以是 EN 或 DE 或其他一些语言。我该如何翻译这个定义。
【问题讨论】:
标签: symfony twig translation template-engine
是否可以用'trans'标签翻译模板中twig变量的值?
例如,我将产品传递给我的模板。该产品有一个带有反式标签的定义,例如{{ product.definition|trans }}。这个定义可以是 EN 或 DE 或其他一些语言。我该如何翻译这个定义。
【问题讨论】:
标签: symfony twig translation template-engine
你想做什么不是一个好方法,它看起来像这样:
messages.en.yml
product:
definition:
some_value1: Some value 1
some_value2: Some value 2
在模板中,你会做这样的事情:
{% set definition_value = product.definition %}
{% set trans_definition = 'product.definition.' ~ definition_value %}
{{ trans_definition|trans }}
它会工作,如果它找到了钥匙。找不到怎么办?
这就是为什么你应该使用来自 KnpLabs 的DoctrineBehaviors,它会为你处理所有的动态翻译..
【讨论】:
如果{{ product.definition }} 等于“手机”,则以下应该可以工作。
message.language.yml:
'cellphone': This will work!
但是,如果您想将其与消息文件中的“产品”键映射,如下所示:
product:
'cellphone': This also works
像这样将密钥添加到树枝模板中:
{{('product.'~product.definition)|trans }}
【讨论】: