2011-10-31 86 views
3

我有一個國際化的Django 1.3網站,並希望這樣做:在包括模板標籤Django的變量替換

{% include "snippets/button.html" with button_text=_("Logout {{ user.username }} now") %} 

而且snippets/button.html看起來是這樣的:

<button 
    type="{{ button_type|default:_('submit') %}" 
    class="all_my special classes" 
    {% if button_title %} title="{{ button_title }}"{% endif %}> 
    <span class=ui-button-text>{{ button_text|default:_("Submit") }}</span> 
</button> 

的唯一途徑,我可以看到這樣做是這樣的:

{% include "snippets/button.html" with button_text="Logout "|add:user.username|add:" now" %} 

但這是不可接受的,因爲字符串將需求轉化爲包括髮生變量替換的地方。我已經看到Interpolate Django template include variable但這不包括這種用法。

回答

0

我認爲在這種情況下你最好的選擇是將已經翻譯的字符串添加到你的上下文中。

在你views.py

... 
'button_text': _("Logout {} now").format(user.username), 
... 

然後在你的模板:

{% include "snippets/button.html" with button_text=button_text %}