You can use gettext’s context for that. Django has added support for that in 1.3 release (in code) and 1.4 (for templates), see https://docs.djangoproject.com/en/dev/topics/i18n/translation/#contextual-markers
Update:
For example following code:
from django.utils.translation import pgettext, ugettext
month = pgettext("month name", "May")
month = pgettext("fifth month", "May")
month = ugettext("May")
Translates to:
#: 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 ""
Each message being different and can be translated differently.