Opened 13 years ago
Last modified 12 years ago
#18114 closed Bug
makemessages does not care about context in trans templatetag — at Initial Version
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Core (Management commands) | Version: | 1.4 |
Severity: | Normal | Keywords: | trans context pgettext makemessages i18n |
Cc: | Akos Ladanyi | Triage Stage: | Unreviewed |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
We are working with translations and we have done the following
- we have 2 templates: template1.html and template2.html
- in template1 we have the following:
{trans 'contact' as trans_contact %}
- in template2 we have the following:
{trans 'contact' context 'suggestive' as trans_contact %}
- when we makemessages -a we get the following in the django.po file:
#: web/templates/web/template1.html:35 #: web/templates/web/template2.html:21 msgid "contact" msgstr ""
- what we expect instead (in django.po) is actually:
#: web/templates/web/template1.html:35 msgid "contact" msgstr "" #: web/templates/web/template2.html:21 msgctxt "suggesttive" msgid "contact" msgstr ""
So it seems that the "django-admin.py makemessages -a" does not take into account context in the trans templatetag (but it does process both trans tag as can be seen in the comment)
If we write (anywhere in the code) the following:
from django.utils.translation import pgettext test = pgettext('suggesttive', 'contact')
then the django.po content is as expected and if we translate the strings (in django.po) and then render the template, the context is taken into account and the translation on the webpage (produced from the template) is as it should be, so the trans templatetag works as expected, just the makemessages does not.
If this is a "feature" I apologize in advance.