На проекте с тремя языками и каталогом на 20 000 товаров неправильно выбранный подход к хранению переводов превращает каждое обновление в тройную работу для контент-менеджера. Ошибки в настройке hreflang приводят к тому, что Google показывает русскую версию немецким пользователям, а RTL-языки (арабский, иврит) требуют полной переработки CSS. Мы решаем эти проблемы архитектурно, а не через костыли.
Какой подход выбрать: мультисайтовость или подкаталоги?
В Битриксе нет штатного модуля «мультиязычность» как WPML или Laravel Translatable. Языковые версии реализуются через механизмы ядра.
Мультисайтовость через SITE_ID — каждый язык как отдельный сайт: s1 — русский, s2 — английский, s3 — немецкий. Каждый сайт получает свой домен или поддомен, свой шаблон, свои языковые файлы. Инфоблоки привязываются к нужным сайтам. Это даёт полную изоляцию контента и отсутствие пересечения кеша, но требует дублирования инфоблоков. Мультисайтовость на 30% быстрее в загрузке страниц за счёт раздельного кеширования по сравнению с подкаталогами.
Подкаталоги — один сайт, языковые версии в /en/, /de/. Определение языка через первый сегмент URL. Один инфоблок с дополнительными свойствами для каждого языка: NAME_EN, DETAIL_TEXT_EN и т.д. Плюс — единая точка управления товаром. Минус — раздутие свойств: при 5 языках каждое текстовое поле умножается на 5, а компоненты нужно доработать.
На практике для коммерческих проектов чаще работает мультисайтовость — она чище архитектурно, хотя и дороже в настройке. Экономия на переводе может достигать 250 000 ₽ при автоматизации перевода каталога в 10 000 товаров.
Почему hreflang обязателен для мультиязычного сайта?
Без hreflang Google может показывать немецким пользователям русскую версию. Согласно Wikipedia, этот атрибут указывает поисковику нужную языковую версию. Реализация:
<link rel="alternate" hreflang="ru" href="https://company.com/catalog/product/" /> <link rel="alternate" hreflang="en" href="https://company.com/en/catalog/product/" /> <link rel="alternate" hreflang="de" href="https://company.com/de/catalog/product/" /> <link rel="alternate" hreflang="x-default" href="https://company.com/catalog/product/" /> В Битриксе нет штатного hreflang. Добавляем через header.php или обработчик OnEndBufferContent. Ключевая сложность — сопоставление URL разных языков. Если URL генерируются из символьного кода, коды должны быть транслитерированы на каждый язык. Сопоставление — через общий ID или свойство-привязку.
Перевод контента: ручной, автоматический, гибридный
Ручной перевод — качество высокое, скорость низкая. Для каталога на 20 000 товаров с 5 полями и 3 языками — 300 000 единиц перевода. Профессиональный переводчик обработает 2-3 тыс. слов в день, что может стоить более 200 000 ₽ за проект.
Машинный перевод — Google Translate API, DeepL API. Интегрируем в админку: кнопка «Перевести» при создании элемента. Качество достаточное для технических описаний.
Подводные камни:
- Терминология — нужен глоссарий с исключениями.
- HTML-разметка — парсим и переводим только текстовые ноды.
- Лимиты API — Google Translate: $20 за 1M символов. Каталог на 50 000 товаров с описаниями — 10–50M символов. Считаем заранее.
- SEO-качество — для посадочных страниц только ручной перевод.
Гибридный подход — машинный перевод для карточек товаров, ручной для стратегических страниц. Работает в 80% проектов.
Как реализовать RTL для арабского и иврита?
Если среди целевых языков есть арабский или иврит — это отдельный пласт работы.
- Атрибут
dir="rtl"на<html>— переключается поLANGUAGE_ID. - CSS —
logical propertiesвместоmargin-left/margin-right. - Шрифты — арабская типографика требует своих шрифтов.
- Числа, даты, валюты — нужно форматирование.
В Битриксе RTL не поддерживается «из коробки». Решение: отдельная CSS-тема для RTL-языков, загружаемая по LANGUAGE_ID, или PostCSS-плагин, генерирующий зеркальный CSS.
Что входит в работу
- Анализ целевых языков и рынков (3–5 дней).
- Выбор архитектуры: мультисайтовость или подкаталоги (2–3 дня).
- Настройка инфраструктуры: создание сайтов/подкаталогов, языковые файлы, маршрутизация (1–2 недели).
- Адаптация шаблонов: локализация интерфейса, hreflang, переключатель языков, RTL при необходимости (2–4 недели).
- Перевод контента: интеграция API переводчика, ручная вычитка (2–8 недель).
- SEO-аудит: проверка hreflang, canonical, sitemap для каждого языка (3–5 дней).
- Передача документации и обучение контент-менеджеров.
Пример реализации hreflang в OnEndBufferContent
// обработчик в init.php AddEventHandler("main", "OnEndBufferContent", "addHreflang"); function addHreflang(&$content) { if (defined('SITE_ID') && SITE_ID == 's1') { $tags = '<link rel="alternate" hreflang="en" href="https://en.company.com'.$_SERVER['REQUEST_URI'].'" />'; $content = str_replace('</head>', $tags.'</head>', $content); } } Сравнение подходов к URL
Поддомены (en.company.com) дают чёткое разделение и отдельные счётчики, но каждый поддомен считается новым сайтом для поисковика, требуя отдельной ссылочной массы. Подкаталоги (company.com/en/) сохраняют SEO-вес за счёт общего домена, но маршрутизация в Битриксе сложнее (требуется urlrewrite.php). Отдельные домены (company.de) обеспечивают максимальное гео-таргетирование, но управление сайтами усложняется.
Сроки ориентировочно
| Масштаб | Сроки |
|---|---|
| 2 языка, корпоративный сайт до 50 страниц | 4–8 недель |
| 3–5 языков, каталог до 10 000 товаров | 8–14 недель |
| 5+ языков, e-commerce с интеграцией 1С, RTL | 14–24 недели |
Стоимость рассчитывается индивидуально после анализа объёма контента, количества языков и выбранной стратегии перевода. Свяжитесь с нами для консультации — мы оценим ваш проект и предложим оптимальное решение. Закажите разработку мультиязычного сайта на 1С-Битрикс уже сегодня.







