我有一个国际化的Django 1.3网站,并希望这样做:
{% 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 :(得分:0)
我认为在这种情况下,最好的选择是将已翻译的字符串添加到您的上下文中。
在views.py
:
...
'button_text': _("Logout {} now").format(user.username),
...
然后在你的模板中:
{% include "snippets/button.html" with button_text=button_text %}
答案 1 :(得分:-1)
这样的事情可能让你继续:
{% blocktrans with value|filter as myvar %}
This will have {{ myvar }} inside.
{% endblocktrans %}
从这里http://www.djangobook.com/en/1.0/chapter18/
它应该与包含一起使用,但我还没有测试过。