Подтвердить что ты не робот

Такая же строка с другим переводом

У меня есть одна строка, которая может быть переведена в varius часть моего кода двумя разными способами.

Теперь, если использовать django-admin makemessages -l it

Я получаю в django.po это:

#: pingapi/ping.py:17 pingapi/nots.py:10
msgid "may"
msgstr "maggio"

Но мне нужен два разных перевода:

#: pingapi/ping.py:17 
msgid "may"
msgstr "posso"

#: pingapi/nots.py:10
msgid "may"
msgstr "maggio"

Если я запустил django-admin compilemessage с файлом перевода, опубликованным, я получаю:

Error: errors happened while running msgmerge
 error 'duplicate message definition' 

Любые подсказки? Я использую Django.

4b9b3361

Ответ 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 ""

Каждое сообщение отличается и может быть переведено по-разному.