Opened 17 months ago

Last modified 14 months ago

#21695 new New feature

Allow blocktrans to set a context variable

Reported by: mitar Owned by: nobody
Component: Template system Version: 1.6
Severity: Normal Keywords:
Cc: mmitar@…, bmihelac@… Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no


Currently, we can use {% trans "string" as var %} to set var to translated string. Nothing similar exists for blocktrans.

Change History (6)

comment:1 Changed 17 months ago by timo

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset

Do any other block tags support as var? I'm not sure it's a good idea (or feasible for that matter). Could you describe your use case? Do you have interest in trying to implement it?

comment:2 Changed 17 months ago by mitar

Ehm, use case is string interpolation. I cannot use {% trans "foo {{ bar }}" as var %}. Having only constant translated strings are vars is a bit problematic.

I use that for setting title of the page ({% blocktrans %}{{ username }}'s block{% endblocktrans %}) and I would like to set it to the context variable so that I can reuse it around (title, heading, links ...).

Currently I am using this custom tag to achieve this. But I think this would be useful in the tag itself. Or maybe {% trans "foo {{ bar }}" as var %} should be supported at least? And _("foo {{ bar }}").

comment:3 Changed 14 months ago by bmihelac

  • Cc bmihelac@… added

comment:4 Changed 14 months ago by bmihelac

Here is a link to branch that implements this feature and two simple tests:

Please note that assigning option is named asvar contrary to usual as to avoid confusion between legacy format for using with.

If there is interest in merging this I will add docs and changelog and any more tests if needed.

comment:5 Changed 14 months ago by aaugustin

  • Triage Stage changed from Unreviewed to Accepted

It seems that every tag is going to gain this feature eventually...

comment:6 Changed 14 months ago by mitar

This is why I created this tag which simply sets the context based on whatever is in there. Then there is no need to modify all tags to be able to set context. DRY. :-)

Note: See TracTickets for help on using tickets.
Back to Top