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

时间:2017-09-26 07:19:04

标签: symfony pluralize

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

我有一条flash消息,显示我在其中输入单词时会发现多少结果。

这是我的控制器

    public ActionResult Delivery()
    {
        return PartialView();
    }

,这是我的模板

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

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

enter image description here

enter image description here

{% for message in app.session.flashbag.get('info') %} {{ message }} {% endfor %} 仍然使用résultats编写,因为它是硬编码的。我怎样才能创建一些允许我在模板中复数和单个化单词的东西?我应该直接进入控制器吗?

修改

我在模板中直接使用了这种方法,但我不认为这是一种“好习惯”。有什么帮助可以做得更好吗?

s

翻译

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

1 个答案:

答案 0 :(得分:1)

你应该检查翻译here中的复数,你可以使用transChoice()方法,解释here如何使用它。

在这里,您可以看到如何在树枝中使用它:

https://stackoverflow.com/a/10817495/5258172

修改: 你的答案可以这样做:

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

然后在你的树枝上:

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