Обработка знака процента (%) в тегах Django blocktrans - PullRequest
5 голосов
/ 27 марта 2011

Я в настоящее время локализую свое приложение Django. Все остальные переводы работают нормально, кроме знака процента внутри тегов blocktrans.

В моем шаблоне у меня есть {% blocktrans %}Original % blocktrans{endblocktrans %}.

django-admin makemessages производит это в django.po:

#: templates/index.html:78
#, python-format
msgid "Original %% blocktrans"
msgstr ""

Я обновляю это до msgstr "Translated %% blocktrans", запускаю django-admin compilemessages, перезагружаю dev-сервер и обновляю страницу, но я все еще вижу Original % blocktrans в выводе. Другие переводы отображаются правильно.

Для справки, {% trans "Original % trans" %} тоже работает нормально. После составления сообщений и перевода у меня есть:

#: templates/index.html:72
msgid "Original % trans"
msgstr "Translated % trans"

Работает как положено - отображается переведенная версия.

Я должен использовать blocktrans, потому что мне также нужно встраивать переменные в строки. Я использую Django 1.2.5.

Как я могу заставить blocktrans работать со знаками процента?

Ответы [ 3 ]

3 голосов
/ 27 марта 2011

Проверьте этот билет - это не решение, но оно проливает свет на происходящее

2 голосов
/ 29 августа 2011

Еще одна заявка была открыта для этой конкретной проблемы, с патчем, который исправляет ее.Надеюсь, это будет исправлено для Django 1.4.

https://code.djangoproject.com/ticket/16721

2 голосов
/ 13 апреля 2011

Не удалось найти реального решения проблемы, поэтому я использовал обходной путь: создайте константу PERCENT_SIGN = u '%' и используйте ее как {{PERCENT_SIGN}} внутри blocktrans-блоков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...