我在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
所以:虽然翻译在两个模板文件中工作正常,但嵌入块中的相同文本常量不会被翻译。我该如何解决这个问题?
答案 0 :(得分:0)
域名必须用引号括起来,只需加上最后一个引号即可。 访问http://symfony.com/doc/current/book/translation.html
这样说:
{%trans_default_domain&#34; mypages&#34; %}
我希望你的问题得到解决