Перевод переменной шаблона Django (экземпляр модели) - PullRequest
0 голосов
/ 21 ноября 2018

В моей базе данных есть модель Product с name CharField.На странице есть шаблон для отрисовки одного экземпляра модели Product.В связи с этим я передаю переменную template product, которая является отфильтрованным экземпляром модели Product.В шаблоне мне нужно перевести переменную {{ product.name }} в зависимости от того, какая страница экземпляров Product рендерит сейчас.После прочтения документации Django:

Чтобы перевести выражение шаблона - скажем, доступ к атрибутам объекта или использование фильтров шаблона - вам необходимо привязать выражение к локальной переменной для использования в блоке перевода.

я решил использовать следующее:

{% blocktrans with product_name=product.name%}{{product_name}}{% endblocktrans %}

в файле django.po я получаю:

msgid "%(product_name)s"

Можете ли вы сказать мне, пожалуйста, я направильный путь?И как name атрибуты других product экземпляров должны быть переведены, если такой подход позволяет обеспечить перевод только для одного product.name?Спасибо за внимание!

1 Ответ

0 голосов
/ 21 ноября 2018

Это не так.

Когда генерируются файлы .po, он не проходит через вашу БД, чтобы захватить все продукты и создать msgid для их названий.

Вы можете переводить статический контент с помощью встроенного в django механизма перевода.

Для того, что вы пытаетесь достичь, я думаю, что что-то вроде django-modeltranslation подойдет.

...