Функция склонения не привязана к языку, который задан в админке. Она просто берет три формы слова из кнстанты и применяет математические правила русского языка (1, 2-4, 5-20).
Константа уже содержит нужный набор форм для того языка, который сейчас активен.
Для русского языка это define('LANG_TOTAL_POSTS', 'пост|поста|постов');
Для другого языка(у меня второй En) - define('LANG_TOTAL_POSTS', 'post|posts|posts');
Работает это так:
В админке выбрали русский - загрузился русский файл с LANG_TOTAL_POSTS = 'пост|поста|постов'
В админке выбрали английский - загрузился английский файл с LANG_TOTAL_POSTS = 'post|posts|posts'
Функция для склонения одна и та же, просто получает на вход разные строки:
1) Для русского: "пост|поста|постов" - выбирает нужную форму
2) Для английского: "post|posts|posts" - тоже выбирает, но там формы 2 и 3 совпадают
В самом шаблоне (админка, фронт - не важно) выводим так: <?php echo totalposts . ' ' . plural(totalposts, LANG_TOTAL_POSTS); ?>
Там более менее стабильная версия, которая сейчас активно допиливается. Перевод сделан на 95% - как админки, так и фронта. Кстати, отдельная история с переводом в js файлах. Пока сделана костылем, но потом буду думать глубже.
За старания лайк. Но скажу одну очевидную вещь - как бы фронтенд не пытался уйти от JS - у него это не получится по ряду многих причин.
Я не хейтер CSS, наоборот, рад, что скролл-снэп наконец-то довели до ума. Но если честно - как только карусель становится чуть сложнее «три картинки, листай вправо-влево», сразу вылезают грабли:
динамическая подгрузка контента;
синхронизация с состоянием;
доступность для скринридеров и клавиатуры - на CSS это до сих пор боль;
бесконечный цикл без копирования DOM-элементов;
кастомные триггеры при смене слайда.
Так что мой посыл простой: не надо натягивать сову на глобус. Если нужна галерея в портфолио - можно и через CSS, прокатит. Если проект живой и с логикой, то 10 - 15 кб своего js вместо 140 кб swiper сделают свое дело. Главное, не строить иллюзий, что веб вдруг станет "без js". Не станет. Даже в 2026.
А ведь это был настоящий агрессивный маркетинг сайтов вроде "Мамба", "Лавпланет" и др, которых современный пользователь интернета даже и не знает наверное.
Скучаю по тем временам и по этим креативам. А сейчас - извините, пукнуть страшно, приходится телефон отключать, чтобы товарищу майору не фонило.
Они бы сначала доделали элементарные вещи, например - сортировать загруженные фото, чтобы выстраивать хоть какой-то порядок. Банальная фича, которая есть даже в самых отсталых мессенджерах, наглухо отсутствует в максе
Здравствуйте! В этом подходе склонение числительных реализовано через плюрализацию на стороне вывода. Константа может содержать несколько вариантов слова, разделённых вертикальной чертой |, например:
Посмотрел ваше приложение "Дели Умножай" и внезапно понял, что все ИИ-агенты при создании дизайна очень любят использовать emoji иконки и фиолетовые градиенты. (Или синие) - но с каждым разом, когда натыкаюсь на ИИ-приложение / сайт / программу - уже выкупаешь эту тему =)
Грустно, но предсказуемо. Сделать крутой продукт в гараже можно. Тягаться с корпорациями, у которых фермы из десятков тысяч H100 — уже нет. Надеюсь, с деньгами они не потеряют душу
Ну так занимайтесь на здоровье. При чем тут я и мои продукты? Я уже давно прошел этот путь - и дом построил, и сына почти вырастил, и второго в школу в этом году отправляю. В общем-то и в целом, благодаря всему тому - что вы называете баловством и пустой тратой времени. Предлагаю закончить этот диалог, так как конструктивно Вы сказать ничего не можете - единственное ваше оружие - влепить минус моему комментарию.
"Если есть в человеке гнильца, то рано или поздно она себя проявит, причем непременно в самый ненужный момент"
Поковыряться и потешить самолюбие на время это все что его ждет. Дальше дела житейские и отсутствие какой то монетизации, интереса пользователей сделают своё дело...
Вам бы на программу "Битва Экстрасенсов" - там ваши таланты относительно прогнозов будущего пригодятся очень кстати. За свою долгую карьеру в IT я сделал дохрена всего - в том числе кучу самописных CMS, среди которых была даже CMS для ведения борделя (Да, не смейтесь). И что удивительно - почти все мои продукты поддерживаются в актуальном состоянии. Если Вы в свое время столкнулись с продуктами, котоыре не поддерживаются - что ж, очень плохо, я такого не приветствую. За пожелания удачи спасибо, давайте закончим этот бессмысленный спор, все равно каждый останется со своим мнением. Вам также удачи и благополучия.
Зачем я прочитал это на ночь глядя. Теперь не усну 😁
Функция склонения не привязана к языку, который задан в админке. Она просто берет три формы слова из кнстанты и применяет математические правила русского языка (1, 2-4, 5-20).
Константа уже содержит нужный набор форм для того языка, который сейчас активен.
Для русского языка это
define('LANG_TOTAL_POSTS', 'пост|поста|постов');Для другого языка(у меня второй En) -
define('LANG_TOTAL_POSTS', 'post|posts|posts');Работает это так:
В админке выбрали русский - загрузился русский файл с
LANG_TOTAL_POSTS = 'пост|поста|постов'В админке выбрали английский - загрузился английский файл с
LANG_TOTAL_POSTS = 'post|posts|posts'Функция для склонения одна и та же, просто получает на вход разные строки:
1) Для русского:
"пост|поста|постов"- выбирает нужную форму2) Для английского:
"post|posts|posts"- тоже выбирает, но там формы 2 и 3 совпадаютВ самом шаблоне (админка, фронт - не важно) выводим так:
<?php echo totalposts . ' ' . plural(totalposts, LANG_TOTAL_POSTS); ?>Надеюь объяснил понятно =)
Вообще, можете посмотреть сами: https://github.com/pechoradev/BloggyCms
Там более менее стабильная версия, которая сейчас активно допиливается. Перевод сделан на 95% - как админки, так и фронта. Кстати, отдельная история с переводом в js файлах. Пока сделана костылем, но потом буду думать глубже.
А что же Россиянин для своего сервиса сделал сайт, который без vpn не открывается )
За старания лайк. Но скажу одну очевидную вещь - как бы фронтенд не пытался уйти от JS - у него это не получится по ряду многих причин.
Я не хейтер CSS, наоборот, рад, что скролл-снэп наконец-то довели до ума. Но если честно - как только карусель становится чуть сложнее «три картинки, листай вправо-влево», сразу вылезают грабли:
динамическая подгрузка контента;
синхронизация с состоянием;
доступность для скринридеров и клавиатуры - на CSS это до сих пор боль;
бесконечный цикл без копирования DOM-элементов;
кастомные триггеры при смене слайда.
Так что мой посыл простой: не надо натягивать сову на глобус. Если нужна галерея в портфолио - можно и через CSS, прокатит. Если проект живой и с логикой, то 10 - 15 кб своего js вместо 140 кб swiper сделают свое дело. Главное, не строить иллюзий, что веб вдруг станет "без js". Не станет. Даже в 2026.
Само число не хранится в константе — оно передаётся отдельно. Константа отвечает только за склоняемую часть слова.
Полная фраза собирается на уровне шаблона или представления:
define('LANG_ACTION_POSTS_BOOKMARKS_PAGE_TITLE', 'закладка|закладки|закладок');$text = "$count " . plural($count, LANG_ACTION_POSTS_BOOKMARKS_PAGE_TITLE);Знаю, что решение неидеально, но зато полностью справляется с текущей задачей без плясок с распарсиванием json, как предлагали в комментариях выше.
Немного не в тему - но:
А ведь это был настоящий агрессивный маркетинг сайтов вроде "Мамба", "Лавпланет" и др, которых современный пользователь интернета даже и не знает наверное.
Скучаю по тем временам и по этим креативам. А сейчас - извините, пукнуть страшно, приходится телефон отключать, чтобы товарищу майору не фонило.
Они бы сначала доделали элементарные вещи, например - сортировать загруженные фото, чтобы выстраивать хоть какой-то порядок. Банальная фича, которая есть даже в самых отсталых мессенджерах, наглухо отсутствует в максе
Ну все. А потом они объявят смартфоны враждебной техникой и мы снова перейдем на дисковые телефоны...Что ж не везет то так......
Здравствуйте! В этом подходе склонение числительных реализовано через плюрализацию на стороне вывода. Константа может содержать несколько вариантов слова, разделённых вертикальной чертой
|, например:А в коде вызывается функция-помощник, которая в зависимости от числа подставляет нужную форму.
Как насчет пикабу? Года два назад, раскачивая свой сайт, у меня неожиданно пошел трафик со старого доброго «яплакал».
Всё, кина не будет - положили сайт
Посмотрел ваше приложение "Дели Умножай" и внезапно понял, что все ИИ-агенты при создании дизайна очень любят использовать emoji иконки и фиолетовые градиенты. (Или синие) - но с каждым разом, когда натыкаюсь на ИИ-приложение / сайт / программу - уже выкупаешь эту тему =)
О, круто! Надо попробовать их в один svg-спрайт упаковать
Грустно, но предсказуемо. Сделать крутой продукт в гараже можно. Тягаться с корпорациями, у которых фермы из десятков тысяч H100 — уже нет. Надеюсь, с деньгами они не потеряют душу
Почему мне кажется, что мы медленно, но верно идет к какому-то глобальному трындецу.
Для начала будьте добры ткнуть меня туда, где я что-то говорю про "Охрененный уровень"
Я ведь пожелал вам всего доброго. Вам всё хочется до чего-то докопаться?
Полностью поддерживаю!
Ну так занимайтесь на здоровье. При чем тут я и мои продукты? Я уже давно прошел этот путь - и дом построил, и сына почти вырастил, и второго в школу в этом году отправляю. В общем-то и в целом, благодаря всему тому - что вы называете баловством и пустой тратой времени. Предлагаю закончить этот диалог, так как конструктивно Вы сказать ничего не можете - единственное ваше оружие - влепить минус моему комментарию.
"Если есть в человеке гнильца, то рано или поздно она себя проявит, причем непременно в самый ненужный момент"
Вам бы на программу "Битва Экстрасенсов" - там ваши таланты относительно прогнозов будущего пригодятся очень кстати. За свою долгую карьеру в IT я сделал дохрена всего - в том числе кучу самописных CMS, среди которых была даже CMS для ведения борделя (Да, не смейтесь). И что удивительно - почти все мои продукты поддерживаются в актуальном состоянии. Если Вы в свое время столкнулись с продуктами, котоыре не поддерживаются - что ж, очень плохо, я такого не приветствую. За пожелания удачи спасибо, давайте закончим этот бессмысленный спор, все равно каждый останется со своим мнением. Вам также удачи и благополучия.