Как реализовать склонения слов по падежам на Yii2?

Как лучше реализовать склонения слов по падежам на Yii2, что бы писалось найдено 2 вакансиИ , найдено 100 вакансиЙ, найдено 5 вакансиЙ, найдена 1 вакансиЯ и т.д...
  • Вопрос задан
  • 1751 просмотр
Пригласить эксперта
Ответы на вопрос 4
mashletov
@mashletov
Math.random()
Я раньше пользовался подобной функцией. Не знаю, насколько это плохо:

class Helper
{
    /**
     * Выбирает слово с правильными окончанием после числительного.
     *
     * @param int $number число
     * @param array $words варианты склонений ['яблоко', 'яблока', 'яблок']
     * @return string
     */
    public static function plural(int $number, array $words): string
    {
        return $words[($number % 100 > 4 && $number % 100 < 20) ? 2 : [2, 0, 1, 1, 1, 2][min($number % 10, 5)]];
    }
}

// echo "Загружено $count " . Helper::plural($count, ['запись', 'записи', 'записей'];
Ответ написан
Комментировать
berezuev
@berezuev
#define TRUE FALSE
https://yiiframework.ru/forum/viewtopic.php?t=22495
ну, либо гуглить yii2 russian plural form
Ответ написан
Комментировать
@BorisKorobkov
Web developer
Комментировать
Уже придуман способ склонения произвольных слов: morphos.io/try/numerals?number=5&word=%D1%81%D0%BE...
И адаптер для yii2 - https://github.com/wapmorgan/yii2-inflection
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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