Было бы неплохо добавить плагин для smarty или модификатор для склонения имен существительных (заказ, заказа, заказов) в темах дизайна, или же сделать реализацию в theme.xml (если это возможно). Пока пользуюсь функцией (алгоритм из php варианта от wa):
{function name="pluralform" n=1 f1='' f2='' f3=''}
{$n = abs($n)}
{$n1 = $n % 10}
{$n2 = $n % 100}
{$n}
{if $n1 == 1 && $n2 != 11}{$f1}
{elseif $n1 >= 2 && $n1 <= 4 && ($n2 < 10 || $n2 >= 20)}{$f2}
{else}{$f3}{/if}
{/function}
{pluralform n=5 f1='отзыв' f2='отзыва' f3='отзывов'}
7 комментариев
это работает только для русского языка.
в theme.xml разве нельзя задавать свои строки дял локализации? Или там нельзя настройки для plurals сделать?
Судя по документации (Локализация тем дизайн), там можно делать локализацию такого вида:
Функция, которую я описал выше, работает. Но для её использования приходится проверять локализацию:
Вот это грустно
ибо преджложенный макрос сработает для русского и в большинстве случаев для украинского, белорусского и сербского. Но нерешенным останется вопрос, например с польским или латышским или литовским. Не говоря уж про киргизский, где нет различий для множественного числа.
Скорее уж в theme.xml надо придумать как множественные числа для локали указывать. Типа
Только тогда от авторов тем придется ожидать познаний в том, сколько в каждом языке, согласно gettext, должно быть множественных форм.
Либо убрать из theme.xml локализацию нафиг и прикладывать к теме отдельный .po файл.
Кстати, на днях пытался сделать локализацию темы при помощи php wa-system/locale/locale.php
Скрипт создал подпапку locale. Мне кажется, WA что-то подозревают :)
Как раз для этого я и поднял тему, чтобы была универсальная реализация.
Возможно такое прикрутить?
https://infostart.ru/public/69...
Мы сделали простенький плагин Форматор.
С его помощью можно склонять любые существительные, после числительных.
https://www.webasyst.ru/store/plugin/shop/yartexformator/