在 Symfony 2 中使用 Twig:嵌入块内的翻译不起作用

Using Twig in Symfony 2: Translation inside an embeded block does not work

我在 Symfony 2 WebApp 项目中使用 Twig。我使用 {% embed SomeTamplate %} 将一个模板文件的内容包含在另一个模板文件中。这工作正常,但翻译在嵌入文件中不起作用。

页面模板:

{% extends 'AppBundle::layout.html.twig' %}
{% trans_default_domain mypages' %}

1: {{ 'pages.home.sometext'|trans }}

{% embed "block.html.twig" with {'classes': 'homepage-hero'} %}
    {% block content %}
        2: {{ 'pages.home.sometext'|trans }}
    {% endblock %}
{% endembed %}

{% embed "block.html.twig" with {'classes': 'red-bg'} %}
    {% block content %}
        3: {{ 'pages.home.sometext'|trans }}
    {% endblock %}
{% endembed %}

块模板:

{% trans_default_domain mypages' %}

<div class="full-width-block{% if classes is defined %} {{ classes }}{% endif %}">
    X: {{ 'pages.home.sometext'|trans }}

    {% block content %}
    {% endblock %}
</div>

输出:

1: SomeText

X: SomeText
2: pages.home.sometext

X: SomeText
3: pages.home.sometext

所以:虽然翻译在两个模板文件中工作正常,但嵌入块中的相同文本常量未翻译。我该如何解决这个问题?

域名必须用引号括起来,最后一个引号就可以了。 访问 http://symfony.com/doc/current/book/translation.html

这样说:

{% trans_default_domain "mypages" %}

希望你的问题得到解决