如何使用 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%!
.
我正在使用 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 gettextmsgid
for this string would beHello %name%!
.