(Как) Могу ли я использовать подстановку строк для работы с тегом Django i18n {% trans%}? - PullRequest
1 голос
/ 25 февраля 2010

Я ищу что-то вроде этого:

{% trans "There are %{flowers}n flowers in the vase" < flowers:3 %}

Теперь, очевидно, синтаксис поддельный, но его должно быть достаточно, чтобы продемонстрировать, что я ищу.

Должен ли я приготовить что-то свое? Это похоже на обычный вариант использования, поэтому я был очень удивлен, что быстрый поиск в сети не дал ничего полезного.

На самом деле я начинаю ненавидеть работу с шаблонной системой Django ... Хотя я понимаю, что она предназначена для обеспечения разделения логики приложения от представления, она делает это, навязывая свой рабочий процесс. Я должен быть в состоянии быстро создавать прототипы и только тогда, когда мне нужно работать с дизайнером, и только тогда я должен быть более строг в отношении чего-то подобного.

Ответы [ 3 ]

3 голосов
/ 25 февраля 2010

Я не совсем уверен, что вы пытаетесь сделать (что должен делать < flowers:3), но вы смотрели на blocktrans ?

{% blocktrans count flowers|length as counter %}
    There is one flower in the vase.
{% plural %}
    There are {{ counter }} flowers in the vase.
{% endblocktrans %}
1 голос
/ 25 февраля 2010

Используйте {% blocktrans %} вместо {% trans %}.

0 голосов
/ 10 июля 2010

Модуль inflect.py может оказаться полезным, хотя это будет означать отход от системы шаблонов.

import inflect
p = inflect.engine()
p.num(numflowers, show=False)
return 'There %s %s %s in the vase.' % (
              p.pl('is'),
              p.numwords(numflowers),
              p.pl('flower'))

с числами = 1

'There is one flower in the vase.'

с числами = 2

'There are two flowers in the vase.'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...