我使用Slim PHP框架和Twig以及Twig扩展i18n。我需要创建一个复数转换,显示数组中的消息数。我使用文本编辑器创建.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。
我哪里错了?
答案 0 :(得分:0)
https://www.consolelog.io/angularjs-change-path-without-reloading/提出以下用法
{% 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 %}
答案 1 :(得分:0)
%count
应该是%count%
。 documentation of the i18n extension有这个例子:
{% trans %} Hello {{ name }}! {% endtrans %}
在gettext查找期间,这些占位符将被转换。
{{ name }}
变为%name%
,因此此字符串的gettextmsgid
为Hello %name%!
。