Django - gettext - Странный msgstr ""

У меня проблемы с переводом строки.

Вот мой код просмотра:

advice= _("Password must contain at least 1 number or special character")
sentence= advice + " ("+ special_characters + ")"
response_array.append(sentence)

Но когда я собираю PO-файл с django-admin.py makemessages --allЯ получаю странный.po файл:

#: .\mainsite\views.py:131
msgid "Password must contain at least 1 number or special character"
msgstr ""
"Le mot de passe doit contenir au moins 1 chiffre ou un caractère spécial"

Мне не удается понять, что происходит. Я ждал что-то вроде:

#: .\mainsite\views.py:131
msgid "Password must contain at least 1 number or special character"
msgstr "Le mot de passe doit contenir au moins 1 chiffre ou un caractère spécial"

1 ответ

Решение

Это нормальное поведение для длинных строк сообщений. Во время генерации .po Файл автоматически форматируется и длинные строки будут разделены на несколько строк.

Из Джангобука:

Длинные сообщения - особый случай. Там первая строка непосредственно после msgstr (или msgid) является пустой строкой. Тогда сам контент будет записан в следующие несколько строк как одна строка в строке. Эти строки напрямую связаны. Не забывайте замыкать пробелы в строках; в противном случае они будут склеены без пробелов!

Узнайте больше здесь: http://www.djangobook.com/en/2.0/chapter19.html

Другие вопросы по тегам