#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.