#django
#django
Вопрос:
Я использую приложение для сортировки django:
https://github.com/directeur/django-sorting
Мне просто интересно, есть ли способ создать локальные имена для фильтров сортировки … Например. Я пытаюсь локализовать следующее:
<th>{% anchor total Rating %}</th>
И использование стандартного трюка django
<th>{% anchor total _("Rating") %}</th>
не помогает… Не знаю, что делать…
Ответ №1:
вы должны использовать тег trans template из шаблонов..
https://docs.djangoproject.com/en/dev/topics/i18n/internationalization/#trans-template-tag
Обновить
Если вы хотите, чтобы заголовок был переведен, вам просто нужно изменить код тега шаблона привязки django-sorting, например, взглянув на исходный код здесь:
https://github.com/directeur/django-sorting/blob/master/django_sorting/templatetags/sorting_tags.py
Внутри anchor вы могли бы изменить его, например, добавив функцию ugettext как «_()», когда заголовок передается классу SortAnchorNode:
return SortAnchorNode(bits[1].strip(), _(title.strip()))
Или вы можете выбрать другое место для запуска перевода, это просто для демонстрации, но это должно сработать
это переведет заголовок, который вы указываете в своем теге:
{% anchor total "Result" %} //{% anchor field title %}
Вы должны быть уверены, что слова, которые вы передаете, переведены в ваших словарях..
Комментарии:
1. Похоже, решение не сработало … упустил из виду, что в po-файле нет сообщений : (
2. что вы имеете в виду? вы должны добавить po-файлы для слов, которые вам нужно перевести
3. Я имею в виду, когда я выполняю django-admin.py при компиляции сообщений я вижу строку типа #: .settings.py:27 msgid «Русский» msgstr «» Но там нет копии результата… Среди строк django.po
4. makemessages не найдет вашу строку «Результат» в шаблоне, он просто проверит ваш исходный код, в котором используется ugettext, поэтому вам нужно будет добавить его вручную в po-файл, а затем использовать команду compilemessages..
5. Пытаюсь сейчас… Но, похоже, тоже безуспешно… Файл скомпилирован, но строка не заменена 🙁