如何使用 Twig 和 i18n 扩展创建复数翻译?

How do I create a plural translation using Twig and the i18n extension?

我正在使用 Slim PHP 框架和 Twig 以及国际化的 Twig 扩展。我需要创建一个复数翻译来显示数组中的消息数。我正在使用文本编辑器创建 .po 文件,并使用 Poedit 将其编译为 .mo 文件。

这是我的模板:

        {% set count=messages|length %}
        {% trans %}
            Showing the last message.
        {% plural count %}
            Showing the last {{count}} messages.
        {% endtrans %}<br>

这是我的 .po 文件(瑞典语翻译):

msgid "Showing the last message."
msgid_plural "Showing the last %count messages."
msgstr[0] "Visar det senaste meddelandet."
msgstr[1] "Visar de %count senaste meddelandena."

这不起作用,它给了我

Visar de %count senaste meddelandena.

即使 count 为 16。

我哪里错了?

The documentation提出如下用法

{% transchoice count %}
    {1} Showing the last message.|]1,Inf[ Showing the %count% messages.
{% endtranschoice %}

一个更复杂的例子:

{% transchoice count with {'%name%': 'Fabien'} from 'app' %}
    {0} %name%, there are no apples|{1} %name%, there is one apple|]1,Inf[ %name%, there are %count% apples
{% endtranschoice %}

%count 应该改为 %count%documentation of the i18n extension 有这个例子:

{% trans %}
    Hello {{ name }}!
{% endtrans %}

During the gettext lookup these placeholders are converted. {{ name }} becomes %name% so the gettext msgid for this string would be Hello %name%!.