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

时间:2016-05-19 12:56:50

标签: symfony twig translation

我在Twig WebApp项目中使用Symfony 2。我使用{% 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

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

1 个答案:

答案 0 :(得分:0)

域名必须用引号括起来,只需加上最后一个引号即可。 访问http://symfony.com/doc/current/book/translation.html

这样说:

{%trans_default_domain&#34; mypages&#34; %}

我希望你的问题得到解决