2013-02-25 7 views
7

Ich möchte die Ausgabe eines blocktrans-Blocks einer Template-Variablen zuweisen.Zuweisen der Blocktrans-Ausgabe zur Variablen

können Sie tun das mit dem trans-Tag wie so:

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

jedoch nicht das gleiche mit einem blocktrans Tag tun können. Ich sehe es in der Dokumentation nicht, dass Sie das tun können.

+0

Nur freundlich fragen: Sie könnten die Antwort auf die bessere aktualisieren, die perfekt mit Django 1.9 funktioniert. – webjunkie

+0

Danke. Aktualisiert. – LeeMobile

Antwort

6

Django 1,9 hinzugefügt, um eine Komponente zu asvarblocktrans. An example from the docs:

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

Leider scheint es, dass, bevor das hinzugefügt wurde, um Sie, es zu tun eine andere Art und Weise benötigt.

4

Das ist mit dem Blocktrans-Tag nicht möglich.

Sie könnten jedoch captureas templatetag verwenden, um die Ausgabe von Blocktrans zu erfassen.

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

{{ trans_value }} 
+0

Vielen Dank für Ihren Vorschlag, aber ich weiß nicht, wo Sie den Code, den Sie den Link gaben, setzen. –

+0

@ olivier-pons Sie müssen es als [https://docs.djangoproject.com/en/1.9/howto/custom-template-tags/] (benutzerdefiniertes Vorlagen-Tag) definieren und dann in die Vorlage – guival

+0

laden akzeptierte Antwort funktioniert nur in Django v 1.9+. Diese Antwort funktioniert für <1.9. Sie könnten sagen, dass mein Produkt aktualisiert werden sollte, und Sie haben Recht, aber die Aktualisierung kann nicht immer geplant werden. (auch captainas, wenn allgemeiner als nur für Blocktrans) –

Verwandte Themen