# Backlog ## 1. Популярность инструментов — оценка: S Поле `popularity` (число) в записи реестра; проставить всем текущим инструментам значения вручную (crop/resize/rescale выше остальных). - Сортировка выдачи поиска и каталога: сначала популярные среди равного скоринга. - Опционально: блок «Популярные» под героем поиска на главной. ## 2. Иконки инструментов — оценка: M У каждой записи поле `icon`; отображается в результатах поиска, каталоге `/list-tools`, легендах шагов цепочки. - Источник иконок: готовый открытый набор (Lucide, MIT) — подобрать по смыслу для всех инструментов; недостающие — нейтральная заглушка. - Рендер одним SVG-спрайтом, без отдельных файлов на иконку. - Кропотливая часть — подбор 50 осмысленных иконок, техника тривиальна. ## 3. Карточки результатов поиска — оценка: S Заменить строки выдачи на карточки: иконка слева, название и описание справа; сетка в одну-две колонки в зависимости от размера героя. - Зависимость: лучше делать после №1 (иконка), но можно раньше с плейсхолдером. - Сохранить клавиатурную навигацию ↑↓ Enter Esc и подсветку активной карточки. ## 4. Несколько языков — оценка: L, разбита на подзадачи ### 4a. Инфраструктура i18n — M Модуль словарей (`locales/ru.ts`, `locales/en.ts`), функция перевода с фолбэком на базовый язык, состояние активной локали (localStorage), переключатель в шапке, обновление ``. ### 4b. Перевод каркаса интерфейса — S/M Шапка, кнопки, подписи полей и состояний («Результат появится здесь», тексты ошибок исполнителя), главная-герой, страница каталога. ### 4c. Перевод контента реестра — L по объёму, механическая Вынести title/description инструментов и label/options параметров в словари локалей с фолбэком. Объём: ~51 инструмент плюс параметры — основной трудозатратный кусок волны. ### 4d. Поиск по любому языку — M Матчинг запроса против названий/описаний во всех поддерживаемых локалях сразу (не только активной); нормализация: нижний регистр, ё→е, снятие диакритики (NFD). Скоринг существующий сохраняется, лучшая локаль даёт балл. Транслитерация ru↔en наизусть — не входит, отдельно при необходимости.