Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Транслит для загранпаспорта ГОСТ 7.79 ISO 9 Блог Вопросы и ответы Создать URL
Транслитерация

Strapi: поле UID и транслитерация кириллицы в slug

В Strapi slug создаёт поле UID. Для русских заголовков его результат стоит проверять: на форуме сообщают о неточной транслитерации. Разберём, что известно и какие есть варианты.

Что делает поле UID

Поле UID автоматически создаёт идентификатор из другого поля (обычно из названия). Согласно описанию на форуме, результат должен соответствовать шаблону /^[A-Za-z0-9-_.~]*$: то есть только латинские буквы, цифры и несколько знаков.

Что сообщают о кириллице

  • На форуме Strapi пользователи пишут, что транслитерация русских и украинских букв во встроенном поле работает неверно, и спрашивают, какая библиотека используется — ответа в найденном обсуждении нет.
  • Один из ответов показывает, что параметры slugify можно менять для отдельного поля через options в schema.json (например, "decamelize": false).

Какие есть варианты

  • Заполнять UID вручную результатом генератора.
  • Подключить плагин: на маркетплейсе Strapi есть плагины с транслитерацией (я их не проверял).
  • Вычислять slug на стороне Strapi в хуке создания записи и сохранять его в поле; для этого можно использовать функцию из статьи «Функция транслита на PHP, JavaScript и Python»

Как проверить

Чтобы узнать, как Strapi превращает заголовок в адрес, создайте тестовую страницу с названием «Щёлково цех юг» и сравните результат. Таблица Яндекса даёт shhelkovo-ceh-yug; привычный английский вариант — shchyolkovo-tsekh-yug. Как читать другие результаты — в статье «Транслит Яндекса против встроенного в CMS».

Связанные статьи

Связку Strapi и Next.js описывает статья «ЧПУ в Strapi и Next.js».

Источники

Использованы обсуждения на форуме Strapi: неверная транслитерация в InputUID и странный slug из UID. Это сообщения пользователей, а не официальная документация.

Типичные ошибки

  • Полагаться на встроенную транслитерацию без проверки.
  • Пытаться хранить в UID кириллицу: шаблон её не допускает.
  • Менять UID опубликованной записи без редиректа.
  • Подключать плагин без проверки его таблицы.

Пошагово: приводим адреса к единому виду

  1. Проверьте, как UID преобразует контрольную фразу.
  2. Решите, оставить встроенный результат или менять.
  3. Для массового заполнения подготовьте список адресов в генераторе.
  4. Запишите значения в поле UID.
  5. При смене UID опубликованных записей настройте редиректы.

Разбор заголовка по шагам

Возьмём заголовок «Как выбрать беговые кроссовки» и пройдём путь до адреса. UID создаётся из названия записи.

Заголовок:           Как выбрать беговые кроссовки
Без служебных слов:  Как выбрать беговые кроссовки
Адрес целиком:       kak-vybrat-begovye-krossovki
Адрес короче:        kak-vybrat-begovye-krossovki

Режим «Убрать служебные слова» в генераторе делает второй шаг сам. Короткий адрес читается легче и лучше помещается в строку браузера. Ограничения по длине и другие правила составления адреса собраны в статье «Как составить ЧПУ-адрес страницы».

Памятка для редактора

Если в проекте несколько редакторов, дайте им короткую памятку. Достаточно этих правил:

  • UID проверяем контрольной фразой.
  • Для схемы Яндекса — вручную или хук.
  • Менять UID — с редиректом.

Чек-лист

  1. Создать запись «Щёлково цех юг» и посмотреть UID.
  2. Сравнить с таблицей схем.
  3. Если схема не подходит — вручную или хук.
  4. Менять UID — с редиректом.

Частые вопросы

Какие символы допускает UID в Strapi?

По обсуждению на форуме — латинские буквы, цифры и знаки - _ . ~.

Правильно ли Strapi транслитерирует русский?

Пользователи сообщают о неточностях. Проверьте на своей версии.

Можно ли настроить slugify для поля?

Да, через options в schema.json (пример — decamelize: false).

Как получить схему Яндекса?

Вручную из генератора или хуком с функцией транслита.

Проверьте свои заголовки: вставьте их в генератор ЧПУ и посмотрите, как в адресе выглядят слова с этой буквой.

Читайте также