我想將blocktrans塊的輸出分配給模板變量。將blocktrans輸出分配給變量
你可以做,使用像這樣的反式標籤:
{% trans "Some text to translate" as foo %}
但是你不能做同樣的一個blocktrans標籤。我沒有在文檔中看到它可以做到這一點。
我想將blocktrans塊的輸出分配給模板變量。將blocktrans輸出分配給變量
你可以做,使用像這樣的反式標籤:
{% trans "Some text to translate" as foo %}
但是你不能做同樣的一個blocktrans標籤。我沒有在文檔中看到它可以做到這一點。
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 }}">
不幸的是,這似乎使添加之前,你需要做的一些其他的方式。
這對於blocktrans標籤來說是不可能的。
但是,您可以使用此captureas templatetag來捕獲blocktrans的輸出。
{% captureas trans_value %}
{% blocktrans %}
This has some stuff in it which will be translated {{ foo }}.
{% endblocktrans %}
{% endcaptureas %}
{{ trans_value }}
謝謝你的建議,但我不知道在哪裏把你給的鏈接代碼。 – 2015-07-29 11:49:16
@ olivier-pons您需要將其定義爲[https://docs.djangoproject.com/en/1.9/howto/custom-template-tags/](custom模板標籤),然後將其加載到模板中 – guival 2016-07-26 16:52:18
The接受的答案只適用於django v 1.9+。這個答案適用於<1.9。你可能會說我的產品應該升級,而且你是對的,但是升級並不總是可以預定的。 (同樣,captureas如果比一般的blocktrans更普遍) – 2016-08-23 15:48:13
只是好心地問:你可以更新的答案,以更好的工作與Django 1.9完美。 – webjunkie 2016-06-22 10:30:58
謝謝。更新。 – LeeMobile 2016-06-22 13:55:20