代码之家  ›  专栏  ›  技术社区  ›  jmagnusson

Django模板%trans%复数

  •  10
  • jmagnusson  · 技术社区  · 15 年前

    根据 this section 在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 %}
    

    我试着做以下工作:

    {% blocktrans %}time{% plural %}times{% endblocktrans %}
    

    但它扔了 TemplateSyntaxError: 'blocktrans' doesn't allow other block tags (seen u'plural') inside it

    2 回复  |  直到 9 年前
        1
  •  13
  •   Flimm D. Ben Knoble    9 年前

    你忘了 count variable as variable_name 在blocktrans标签中

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

    {% blocktrans count variable as variable_name %}
        time
        {% plural %}
        {{ variable_name }} times
    {% endblocktrans %}
    
        2
  •  -1
  •   jbrendel    13 年前

    你可以使用:

    {% 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 %}