将blocktrans输出分配给变量

时间:2013-02-25 18:20:40

标签: django django-templates

我想将blocktrans块的输出分配给模板变量。

您可以使用trans标签执行此操作:

{% trans "Some text to translate" as foo %}

但是你不能对blocktrans标签做同样的事情。我没有在文档中看到你可以这样做。

2 个答案:

答案 0 :(得分:6)

Django 1.9向asvar添加了blocktrans个组件。 An example from the docs

{% blocktrans asvar the_title %}The title is {{ title }}.{% endblocktrans %}
<title>{{ the_title }}</title>
<meta name="description" content="{{ the_title }}">

不幸的是,似乎在添加之前你还需要其他一些方法来实现它。

答案 1 :(得分:4)

使用blocktrans标签是不可能的。

但是,您可以使用此captureas templatetag来捕获blocktrans的输出。

{% captureas trans_value %}
    {% blocktrans %}
        This has some stuff in it which will be translated {{ foo }}.
    {% endblocktrans %}
{% endcaptureas %}

{{ trans_value }}