我正在尝试根据评论的数量以正确的形式用俄语显示“评论”一词。
{% set numberOfComments = 11 %}
{{ numberOfComments }} {% if numberOfComments|last == 1 and not (numberOfComments ends with 11) %}комментарий{% elseif numberOfComments|last > 1 and numberOfComments|last < 5 %}комментария{% else %}комментариев{% endif %}
但是它会忽略and not (numberOfComments ends with 11)
并显示“комментарийв”而不是“комментариев”,即使注释数为11/111 / etc。我该怎么办?
答案 0 :(得分:1)
正如评论中所建议的那样,我使用了一个正则表达式。所以我想出了这个:
{{ numberOfComments }} {% if numberOfComments|last == 1 and not (numberOfComments matches '{11$}') %}комментарий{% elseif numberOfComments|last > 1 and numberOfComments|last < 5 and not (numberOfComments matches '{1[2-4]$}') %}комментария{% else %}комментариев{% endif %}
正则表达式{11$}
选择以11结尾的任何给定字符串。{}
仅用于在Twig中定义正则表达式。
UPD:为问题中缺少但实际上是必需的以12-14结尾的数字添加了缺失逻辑。