Twig对0结果使用特定值,1结果和多个结果

Ste*_*fan 3 php symfony twig

在Symfony2中处理文章模块时,我必须显示读取内容的次数.为了使'句子'在语法上正确,我使用下面的代码.

这很明显,但它让我觉得我找不到更简洁,更清洁的方式.有没有article.getReads|length|displayresult('No results', '%d result', '%d results)可用的东西或我必须自己做这个?

{% if article.getReads|length == 0 %}Be the first one to read this!
{% else %}
  {{ article.getReads|length|number_format(0, ',', '.') }} 
  read{% if article.getReads|length != 1 %}s{% endif %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)

Mat*_*teo 5

您可以使用此处所述的symfony2复数转换组件.

例如,您可以声明一个文件,如:

#src / Acme / DemoBundle / Resources / translations / messages.en.xliff

            <trans-unit id="11">
                <source>article.read</source>
                <target>{0} No results|{1} one result|[2,Inf] results</target>
            </trans-unit>
Run Code Online (Sandbox Code Playgroud)

广告在树枝模板中使用如下:

{{ 'article.read'|transchoice(article.getReads|length) }}
Run Code Online (Sandbox Code Playgroud)

希望这有帮助