2012-07-10 22 views
1

我怎麼能在父模板page.html.twig整個塊翻譯:的在Twig中翻譯父模板塊的文本?

{# app/Resources/views/page.html.twig #} 
{% extends '::bootstrap.html.twig' %} 

{% block page %} 
    <div class="page-header"> 
     <h1>{% block header %}{% endblock %} 
     <small>{% block small %}{% endblock %}</small></h1> 
    </div> 
    <div id="content" class="container-fluid"> 
     {% block content %}{% endblock %} 
    </div> 
{% endblock %} 

...而不是在每個子模板調用trans

{# src/AcmeHelloBundle/Resources/views/User/show.html.twig #} 
{% extends '::page.html.twig' %} 

{% block header %}{% trans %}Utente{% endtrans %}{% endblock %} 
{% block small %}{% trans %}dettaglio{% endtrans %}{% endblock %} 

{% block content %}{% endblock %} 

我已經與{% trans %}環繞{% block header %}嘗試,但它抱怨trans這應該是一個簡單的字符串,而不是一個表達式。

回答

3

沒關係。通過自己直接使用block發現:

{% block page %} 
<div class="page-header"> 
    <h1>{{ block('header')|trans }} 
    <small>{{ block('small')|trans }}</small></h1> 
</div> 
<div id="content" class="container-fluid"> 
    {% block content %}{% endblock %} 
</div> 
{% endblock %} 

我不會刪除的問題,因爲我無法找到任何類似的...

+0

真棒。我也找不到答案! – Mick 2012-07-10 14:18:09

+0

@ Sydney_o9很樂意爲您提供幫助。當(比如說)'small'包含一個動態字符串時,唯一的問題就發生了。我正在尋找比留下'{%block small%} {%endblock%}'更好的解決方案...... – gremo 2012-07-10 14:23:45