Задать вопрос
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=дней`]]
  • Вопрос задан
  • 3586 просмотров
Подписаться 5 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@Tiamorphis
В репозитории есть пакет Units - аккурат то, что нужно в таком случае.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bezumkin
@bezumkin
Если нужно выводить даты — проще взять готовое.

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽