Поддержка Проблемы и решения склонение числительных

  • пишу плагин-аналог форумного хайда.
    в нем можно задать свой шаблон вывода текста, что-то вроде:

    Для просмотра скрытого содержимого у вас должно быть не меньше %comments% комментариев (у вас сейчас %your_comments% комментариев).

    в результате получаю:

    Для просмотра скрытого содержимого у вас должно быть не меньше 100 комментариев (у вас сейчас 51 комментариев).

    то есть вопрос — как вообще реализовать подобную фигню с правильным склонением?

    будь то просто php-код, то там вообще вопросов нет, функций склонения навалом. но вот как это присобачить к шаблону, который задает пользователь?

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    как это присобачить к шаблону, который задает пользователь?

    1. Убрать «комментариев» из текста и сделать частью переменных:
      Для просмотра скрытого содержимого у вас должно быть не меньше %comments% (у вас сейчас %your_comments%).
    2. Дальше можно использовать готовую строку из ядра с правильным склонением:
      
      $output = str_replace( '%comments%', sprintf(
      	_n( '%s Comment', '%s Comments', $number ),
      	number_format_i18n( $number )
      ), $output );
      
    3. Аналогично с %your_comments%.

    спасибо, так и сделал.
    видимо, другого пути нет.

    а number_format_i18n вообще имеет смысл использовать?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    В данном случае — наверное, нет, это для чисел больше 1000 🙂

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «склонение числительных» закрыта для новых ответов.