В чём проблема
Обычный алгоритм транслитерации проходит по строке посимвольно и заменяет кириллицу на латиницу. Латинские буквы он не трогает — но только если распознаёт их как латиницу, а не пытается сначала «прочитать по-русски».
Ошибка возникает, когда бренд вписан в русский текст и обрабатывается общей функцией без исключений:
Заголовок: Кроссовки Nike Air Max
Плохо: krossovki-najk-air-maks
Хорошо: krossovki-nike-air-max
Первый вариант получается, если сначала «русифицировать» произношение бренда, а потом транслитерировать результат. Это двойное искажение: бренд по дороге успевает превратиться в кириллицу и обратно.
Основное правило
Латинские слова и названия брендов остаются как есть. Транслитерации подвергается только кириллический текст вокруг них.
| Исходная фраза | Адрес |
|---|---|
| Ноутбук Apple MacBook Air | noutbuk-apple-macbook-air |
| Стиральная машина LG | stiralnaya-mashina-lg |
| Кроссовки Adidas Samba | krossovki-adidas-samba |
| Тушь Maybelline New York | tush-maybelline-new-york |
Правило простое: если слово уже записано латиницей, оно и должно остаться латиницей. Генератор на этом сайте работает именно так — можно свериться в генераторе.
Регистр названия бренда
Отдельный вопрос — сохранять ли регистр внутри названия: iPhone или iphone. Правило единого нижнего регистра для всего адреса действует и здесь без исключений — иначе получаются дубли из-за разного регистра букв.
Верно: /catalog/iphone-16-pro/
Неверно: /catalog/iPhone-16-Pro/
Официальное написание бренда с маленькой первой буквы — не повод делать исключение для адреса. Оно сохраняется в видимом тексте страницы, в заголовке и в описании.
Бренды с кириллическим написанием
Российские и постсоветские бренды часто существуют в двух вариантах написания: кириллицей и латиницей одновременно, например «Балтика» и Baltika.
- Если у бренда есть официальное латинское написание — используйте его.
- Если бренд известен только кириллицей — транслитерируйте по общей таблице, как обычное слово.
- Не смешивайте варианты на одном сайте: выбранное написание должно быть одинаковым во всех карточках бренда.
Проверка перед массовой генерацией. Если адреса товаров формируются автоматически из наименования, проверьте на тестовой выборке в двадцать позиций с иностранными брендами. Ошибка обратной транслитерации обычно всплывает именно на этом шаге, а не при ручном вводе.
Смешанные названия
Сложнее всего с гибридными наименованиями, где русское и иностранное слово стоят рядом без разделителя по смыслу.
Фен Bosch ProSalon 2200
→ fen-bosch-prosalon-2200
Увлажнитель Xiaomi Mi Smart
→ uvlazhnitel-xiaomi-mi-smart
Модельный номер и техническое обозначение внутри латинского названия не разбиваются: ProSalon остаётся одним словом в адресе, даже если состоит из двух смысловых частей — разделять его дефисом означает исказить название модели.
Как настроить автоматику
Для функции транслита правило реализуется одной проверкой: символ обрабатывается только если он входит в таблицу кириллицы, иначе передаётся без изменений. Именно так устроены примеры кода в статье про функцию транслита на PHP, JavaScript и Python — там латинские буквы проходят через словарь без замены естественным образом, никакой отдельной логики не требуется.
Ошибка обычно закрадывается не в саму функцию, а в подготовительном шаге: если перед транслитерацией текст прогоняется через сервис «транскрипции на слух» или ручной словарь производственных терминов, который зачем-то содержит написание брендов кириллицей.
Чек-лист
- Латинские слова и бренды не транслитерируются, а копируются как есть.
- Весь адрес приводится к нижнему регистру, включая название бренда.
- Используется официальное латинское написание, если оно существует.
- Модельные обозначения внутри названия не разбиваются лишними дефисами.
- Правило проверено на выборке карточек с иностранными брендами перед массовой генерацией.
Массовая проверка каталога
Если товары загружаются из учётной системы, ошибка обратной транслитерации проявляется не на одной карточке, а сразу на сотнях — потому что источник один и тот же импорт. Порядок проверки:
- Выгрузите список сформированных адресов вместе с исходными наименованиями.
- Отфильтруйте наименования, где встречаются известные латинские бренды: Apple, Samsung, LG, Bosch и подобные.
- Сравните адрес с ожидаемым — латинское слово должно остаться нетронутым.
- Если находится хотя бы одно расхождение, проблема системная и требует правки функции, а не ручного исправления одной карточки.
Словарь исключений как страховка
Даже при правильно настроенной функции транслита полезно держать отдельный список брендов с эталонным написанием — на случай, если бренд содержит символы, которые генератор обрабатывает неоднозначно: знаки дефиса, точки в середине названия, регистр отдельных букв внутри слова вроде iPhone или eBay.
{
"iphone": "iphone",
"ebay": "ebay",
"youtube": "youtube"
}
Такой словарь подключается перед общей функцией транслитерации и подменяет собой автоматическую обработку только для перечисленных случаев, оставляя всё остальное на общей логике, разобранной в статье про функцию транслита на PHP, JavaScript и Python.
Частые вопросы
Нужно ли транслитерировать iPhone или Samsung в адресе?
Нет. Латинские названия брендов остаются как есть, транслитерируется только окружающий кириллический текст. Регистр при этом приводится к общему нижнему для всего адреса.
Что делать, если генератор превращает Nike в нечитаемый набор букв?
Значит, перед транслитерацией название прошло через транскрипцию «на слух» и уже стало кириллицей. Нужно убрать этот шаг и передавать латинские слова в функцию без изменений.
Как быть с брендами, у которых нет официального латинского написания?
Транслитерировать как обычное русское слово по общей таблице, сохраняя выбранный вариант одинаковым во всех карточках этого бренда.
Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.