2013-02-25 32 views
7

Vorrei assegnare l'uscita di un blocco blocktrans a una variabile template.Assegnazione dell'uscita blocktrans alla variabile

è possibile farlo utilizzando il tag trans in questo modo:

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

Tuttavia non si può fare lo stesso con un tag blocktrans. Non vedo nella documentazione che puoi farlo.

+0

Semplicemente chiedendo: è possibile aggiornare la risposta a quella migliore funzionando perfettamente con Django 1.9. – webjunkie

+0

Grazie. Aggiornato. – LeeMobile

risposta

6

Django 1.9 aggiunge una componente 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 }}"> 

Purtroppo, sembra che prima di che è stato aggiunto avevi bisogno di qualche altro modo di farlo.

4

Ciò non è possibile con il tag blocktrans.

Tuttavia, è possibile utilizzare questo captureas templatetag per acquisire l'output di blocktrans.

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

{{ trans_value }} 
+0

Grazie per il suggerimento, ma non so dove inserire il codice che hai fornito al link. –

+0

@ olivier-pons È necessario definirlo come [https://docs.djangoproject.com/en/1.9/howto/custom-template-tags/](codice di modello personalizzato) e quindi caricarlo nel modello – guival

+0

risposta accettata funziona solo in django v 1.9+. Questa risposta funziona per <1,9. Potresti dire che il mio prodotto dovrebbe essere aggiornato e hai ragione, ma l'aggiornamento non può sempre essere programmato. (anche, captureas se più generale che solo per blocktrans) –

Problemi correlati