Django 将blocktrans输出分配给变量
我想将blocktrans块的输出分配给模板变量 您可以使用trans标记这样做:Django 将blocktrans输出分配给变量,django,django-templates,Django,Django Templates,我想将blocktrans块的输出分配给模板变量 您可以使用trans标记这样做: {% trans "Some text to translate" as foo %} 但是,对于blocktrans标记,您不能执行相同的操作。我在文档中看不到您可以这样做。这在blocktrans标记中是不可能的 但是,您可以使用它来捕获blocktrans的输出 {% captureas trans_value %} {% blocktrans %} This has some s
{% trans "Some text to translate" as foo %}
但是,对于blocktrans标记,您不能执行相同的操作。我在文档中看不到您可以这样做。这在blocktrans标记中是不可能的 但是,您可以使用它来捕获blocktrans的输出
{% captureas trans_value %}
{% blocktrans %}
This has some stuff in it which will be translated {{ foo }}.
{% endblocktrans %}
{% endcaptureas %}
{{ trans_value }}
Django 1.9在
blocktrans
中添加了asvar
组件:
{%blocktrans asvar the_title%}标题为{{title}。{%endblocktrans%}
{{{u title}}
不幸的是,在添加该链接之前,您似乎需要其他方法来完成此操作。谢谢您的建议,但我不知道将您提供的链接代码放在哪里。@olivier pons您需要将其定义为[模板标签)然后将其加载到模板中接受的答案仅适用于django v 1.9+。此答案适用于<1.9。您可能会说我的产品应该升级,您是对的,但升级不能总是安排好。(此外,captureas似乎比blocktrans更通用)请注意,编写的这个示例将包含空格;如果您只想存储
blocktrans
的输出,请执行以下操作:例如{%captureas trans\u value%}{%blocktrans%}Foo{%endblocktrans%}{%endcaptureas%}
(即,在一行上)只是善意地问:您可以更新更好的答案,使用Django 1.9完美地工作。
{% blocktrans asvar the_title %}The title is {{ title }}.{% endblocktrans %}
<title>{{ the_title }}</title>
<meta name="description" content="{{ the_title }}">