Django模板{%trans%}多重化

Django模板{%trans%}多重化,django,django-templates,Django,Django Templates,根据Django文档中的说明,对于需要翻译复数的情况,我应该使用{%blocktrans%}。然而,对于下面这样的例子,我能做的不是更方便吗 {% blocktrans count video.views.count as views %} The video has been viewed <span>{{ views }}</span> time {% plural %} The video has been viewed <span>{{ views }

根据Django文档中的说明,对于需要翻译复数的情况,我应该使用
{%blocktrans%}
。然而,对于下面这样的例子,我能做的不是更方便吗

{% blocktrans count video.views.count as views %}
The video has been viewed <span>{{ views }}</span> time
{% plural %}
The video has been viewed <span>{{ views }}</span> times
{% endblocktrans %}

但是它抛出了
TemplateSyntaxError:'blocktrans'不允许在它里面有其他块标记(见u'multiple')

您忘记了在blocktrans标记中将
计数变量作为变量\u name

该变量的值将用于检测它是否为复数

{% blocktrans count variable as variable_name %}
    time
    {% plural %}
    {{ variable_name }} times
{% endblocktrans %}
您可以使用:

{% blocktrans with video.views.count|pluralize as foo  and  video.views.count as views %}
The video has been viewed <span>{{ views }}</span> time{{ foo }}
{% endblocktrans %}
{%blocktrans with video.views.count |复数形式为foo和video.views.count形式为views%}
该视频已被多次观看{{views}{{foo}
{%endblocktrans%}

Ah现在我明白了:)我仍然觉得应该有一种比这更方便的方式:{%trans“视频已经被观看了”%}{{video.views.count}{%blocktrans count video.views.count as views%}时间{%multiple%}次{%endblocktrans%}链接到文档……这是对blocktrans使用的失败。它创造了更多的单词拼图。最好使用
{%plural%}
解决方案。这对翻译人员来说非常困难,因为您正在强制对单词进行排序;如果翻译要求在
{{views}
前面有复数形式,该怎么办?冗长的表达确实是一种方式。
{% blocktrans with video.views.count|pluralize as foo  and  video.views.count as views %}
The video has been viewed <span>{{ views }}</span> time{{ foo }}
{% endblocktrans %}