Ответ 1
Для этого вы можете использовать контекст gettext. Django добавила поддержку для версии 1.3 (в коде) и 1.4 (для шаблонов), см. https://docs.djangoproject.com/en/dev/topics/i18n/translation/#contextual-markers
Update:
Например, следующий код:
from django.utils.translation import pgettext, ugettext
month = pgettext("month name", "May")
month = pgettext("fifth month", "May")
month = ugettext("May")
Переведено на:
#: foo/views.py:4
msgctxt "month name"
msgid "May"
msgstr ""
#: foo/views.py:5
msgctxt "fifth month"
msgid "May"
msgstr ""
#: foo/views.py:6
msgid "May"
msgstr ""
Каждое сообщение отличается и может быть переведено по-разному.