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: tomaz.stucin@… 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.

Change History (0)

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