Имеется два ССК поля: текстовое "Количество" и список "Единица измерения". Во втором поле забит предустановленный список значений типа "пачка, ящик, коробка, вагон" и т.д. Хочется, чтобы при выводе материала название единиц измерения склонялись в соответствии с введённым количеством из первого поля, например: "1 ящик", "2 пачки", "5 вагонов".
Поделитесь кто-нибудь готовым алгоритмом для данной задачи, или хотя бы укажите путь с наименьшим количеством грабель!
Комментарии
Посмотрите сервис Яндекса - Склонятор
Сервис, безусловно, полезный, но вряд ли разумно на каждый показ страницы делать несколько запросов к постороннему серверу. Наверняка есть какой-то более простой способ, тем более, что задача-то - типовая, и наверняка уже много раз решалась опытными Друпалерами.
Тогда лучше выкрутиться через темизацию.
смотрим для примера перевод модуля comment (modules-comment.ru.po):
msgid "1 new comment"
msgid_plural "count new comments"
msgstr[0] "count новый комментарий"
msgstr[1] "count новых комментария"
msgstr[2] "count[2] новых комментариев"
http://www.pcmag.ru/pcmag_search/index.php?cx=011017192007104986438%3Aqr...
Выбираем по вкусу алгоритм и прикручиваем.
Да, этот вариант я сразу попробовал. Проблема в том, что строки из списка значений недоступны для перевода, так как они не забиты в коде, а вводятся при создании поля. Или я неправильно понял ваш совет?
Проблема, собственно, не в алгоритме склонения (он у меня и так уже есть), а в том, как его вызвать при выводе поля.
Пока в голову приходят только два варианта: либо темизировать вывод поля и обрабатывать его в зависимости от значения в соседнем поле, либо найти какой-нибудь хук, через который передаётся значение поля перед его выводом.