#33554 closed Bug (duplicate)
Only first translation being found in Jinja handlebars when multiple strings are defined
| Reported by: | Alex Ford | Owned by: | nobody | 
|---|---|---|---|
| Component: | Utilities | Version: | 3.2 | 
| Severity: | Normal | Keywords: | translations, makemessages, jinja, handlebars, multiple strings | 
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no | 
| Needs tests: | no | Patch needs improvement: | no | 
| Easy pickings: | no | UI/UX: | no | 
Description
When running makemessages on our project we found some strings were missing from translations in our Jinja files. After diving into utils/translation/template.py we found examples of where the translations were going wrong.
Below is an example of it working:
{{ _('Hello World') }} - This works fine and 'Hello World' is added to the translatable strings. This example has a token type VAR.
Below are 3 examples of it not working:
{{ _('Hello World') + _('Foobar') }} - 'Hello World' is added to the translatable strings but 'Foobar' is not. This example has a token type VAR. Seems to be only trying to find one word to match with and that's it, should be finding all possible words.
{{ foo(_('Hello World'), _('Foobar')) }} - Exact same as above example. This is our common use case of this bug.
{{ _('Hello World') +
   _('Foobar') }}
This example is a bit different as this doesn't find any of the words as this is seen as a token type TEXT which gets ignored. 
Change History (2)
comment:2 by , 4 years ago
| Resolution: | → duplicate | 
|---|---|
| Status: | new → closed | 
Looks like this is a duplicate of #24167 — Please follow-up Alex if investigation there reveals not. 
Hi Alex. Hmmm...
So, question, why is this not an issue for Jinga? (Or, equally, what could Django do about this?) 🤔
Edit: "...After diving into utils/translation/template.py..." — A: Because we only tokenise Django templates.