如果在 symfony 中为复数,则将结果复数化(良好实践)

pluralize results if plural in symfony (good practice)

我有一个过滤栏,可以让我在我的数据库中搜索一些结果。

当我在里面输入一个词时,我有一个 flash 消息显示找到了多少结果。

这是我的控制器

 if ($filter != '') {
        $this->get('session')->getFlashBag()->add('info', 'worked!');
      }

这是我的模板

{% for message in app.session.flashbag.get('info') %}
    {{ message }}
{% endfor %}

所以当我实际研究事物时,无论我有 1 个或更多结果都不会改变我的句子。

résultats 仍然用 s 编写,因为它是硬编码的。我怎样才能创建允许我在模板中对单词进行复数和单数化的内容?我应该直接进入控制器吗?

编辑

我直接在模板中使用了这个方法,但我不认为它是 "good practice" 一个。有什么帮助可以让它变得更好吗?

{{ results.getTotalItemCount }}
{% if results.getTotalItemCount <= 1 %}
   {{ 'this.is.your.result'|trans({ '%count%': results.getTotalItemCount}) }}
{% else %}
   {{ 'this.is.your.results'|trans({ '%count%': results.getTotalItemCount}) }}
{% endif %}

翻译中

this:
    is:
       your.result:    "résultat"
       your.results:   "résultats"

你也许应该检查翻译中的复数形式here, you can use transChoice() method, it is explained here如何使用它。

在这里你可以看到如何在 twig 中使用它:

编辑: 您可以这样回答问题:

this:
    is:
       your.result: "1 résultat|%count% résultats"

然后在你的树枝中:

{{ 'this.is.your.result'|transchoice(results.getTotalItemCount) }}