Задать вопрос
kratkar
@kratkar
web-developer

Правильная локализация в Modx при работе с множественными числами?

Как правильно сделать локализацию в modx, при работе с множественными числами?
1, 21, 31… день
2, 3, 4… дня
5, 6, 7… дней

Пока только такая идея сниппета:
return (n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)


и использование внутри значения перевода:
[[+count]] [[+plural:is=`0`:then=`день`]][[+plural:is=`1`:then=`дня`]][[+plural:is=`2`:then=`дней`]]


Кстати, есть же select фильтр, но не пробовал. Может вместо сложной конструкции его использовать?
Upd:
[[+plural:select=`0=день&1=дня&2=дней`]]
  • Вопрос задан
  • 3584 просмотра
Подписаться 5 Оценить Комментировать
Решения вопроса 1
@Tiamorphis
В репозитории есть пакет Units - аккурат то, что нужно в таком случае.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bezumkin
@bezumkin
Если нужно выводить даты — проще взять готовое.

Если так не интересно, то можно поглядеть исходники.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы