Многоязычность в Drupal: чек-лист перед продакшеном
Перевести страницы недостаточно: в Drupal язык может расходиться у контента, интерфейса, конфигурации и URL. Проверьте эти слои на тестовом сайте до запуска — иначе часть посетителей увидит смешанные языки или попадёт не на ту версию страницы.

Перед запуском многоязычного сайта на Drupal проверьте не только переводы страниц. В Drupal 10 и 11 язык контента, интерфейса, конфигурации и адресов связан, но настраивается в разных местах. Ошибка в одном слое может оставить посетителю англоязычную кнопку на русской странице или отправить его на неверный URL. Ниже — чек-лист для тестового окружения и финальной проверки.
Сначала зафиксируйте, что именно переводится
В основе многоязычности Drupal — несколько модулей ядра: Language задаёт языки сайта, Content Translation отвечает за переводы сущностей, Configuration Translation — за переводимые настройки, Interface Translation — за интерфейс. Набор модулей и их настройки проверьте в вашей версии Drupal: названия экранов могут отличаться.
До настройки составьте перечень того, что должно быть доступно на каждом языке. Например, перевод текста страницы не означает автоматически, что переведены меню, подпись поля, сообщение формы и название таксономического термина.
- Контент: типы материалов, поля, абзацы и термины таксономии.
- Интерфейс: подписи, системные сообщения, кнопки и строки модулей.
- Конфигурация: названия и описания блоков, представлений и других настроек, которые должны различаться по языкам.
- Навигация и адреса: языковая версия меню, префиксы URL или иной выбранный способ определения языка.
Отметьте для каждого пункта ответственного и способ проверки. Если переводы готовит редакция, настройте им понятный процесс: кто создаёт перевод, кто проверяет связь с исходной страницей и кто публикует результат.
Проверьте языки, URL и определение языка
На тестовом сайте откройте настройки языков и убедитесь, что добавлены только те языки, которые действительно будут доступны. Для каждого выберите ожидаемый путь определения языка: например, языковой префикс в URL или домен. Не считайте автоматическое определение языка по браузеру заменой этим настройкам: проверьте фактическое поведение сайта в чистом сеансе.
Заранее решите, что увидит посетитель, если перевода нет. Drupal может показывать исходную версию, но выбранное поведение зависит от настроек отображения и реализации сайта. Проверяйте его на конкретных страницах, а не предполагайте, что все сущности ведут себя одинаково.
| Что проверить | Ожидаемый результат | Где искать проблему |
|---|---|---|
| Языковой префикс или домен | Адрес соответствует выбранному языку | Настройки определения языка, маршрутизация, перенаправления |
| Переключатель языка | Ведёт на перевод той же страницы, если он существует | Связь переводов, доступность языковой версии |
| Страница без перевода | Показывает заранее выбранный вариант или понятное отсутствие | Настройки контента и логика темы |
| Главная страница | Для каждого языка открывается правильный вариант | Назначение главной страницы, алиасы и языковой контекст |
Проверьте переходы по внутренним ссылкам и прямое открытие адреса в новой вкладке. Переключатель, который работает только со страницы, где уже есть перевод, не закрывает сценарий входа из поиска или закладки.
Пройдите по цепочке перевода контента
Создайте тестовый материал и проведите его через редакционный процесс целиком: сохранение исходника, создание перевода, редактирование, снятие с публикации и повторную публикацию. Для каждого типа контента проверьте, какие поля переводятся, а какие общие для всех языков. Это особенно важно для структурированных страниц с абзацами и вложенными компонентами.
- Проверьте поля. Убедитесь, что текстовые поля, ссылки и подписи настроены ожидаемым образом. Проверка успешна, если изменение перевода не меняет исходный текст другой языковой версии.
- Проверьте связанные сущности. Откройте страницу с терминами таксономии, изображениями и встроенными материалами. Убедитесь, что язык каждой сущности соответствует заданному сценарию.
- Проверьте статусы. Снимите перевод с публикации, не меняя исходник. Убедитесь, что он больше не доступен как опубликованная версия, а исходная страница ведёт себя ожидаемо.
- Проверьте роли. Войдите под редакторской ролью и выполните те же действия. Проверка успешна, если редактор может перевести разрешённый контент, но не получает лишних прав на публикацию или изменение настроек.
Не ограничивайтесь одной страницей. В выборку включите материал каждого типа, страницу с вложенными абзацами, страницу без перевода и страницу, у которой перевод недавно изменили.
Интерфейс и конфигурация: отдельные слои
Перевод содержимого не переводит интерфейс автоматически. Проверьте, что нужный перевод интерфейса доступен и применяется для выбранного языка сайта. Пройдите формы входа, поиска, отправки комментария и ошибок валидации: именно там часто остаются заметные строки на другом языке.
Затем проверьте конфигурацию, которая отображается посетителю: заголовки блоков, подписи представлений, меню и другие переводимые значения. Для каждой строки задайте вопрос: это общий текст сайта или он должен меняться вместе с языком? Если переводится только часть конфигурации, смешанный результат может быть корректным — но это должно быть осознанным решением.
«Перевод готов не тогда, когда редактор видит его в форме, а когда посетитель может открыть нужную языковую версию по прямой ссылке и пройти весь сценарий без неожиданного переключения языка».
Кеш, поиск и выпуск изменений
Проверяйте страницы как минимум в двух независимых сеансах: например, в обычном окне и приватном. Сравните результат для разных языков, затем повторите проверку после изменения перевода. Если сайт показывает чужой язык или старый текст, выясните, где именно сохраняется устаревший результат: браузер, CDN, обратный прокси или кеш Drupal. Не очищайте всё подряд в продакшене, пока не определили слой и возможную нагрузку от сброса.
Проверьте поиск и навигацию по тем языкам, которые публикуете: индексируются ли нужные страницы, не ведут ли результаты на исходник вместо перевода. Если используется модуль поиска или сторонняя поисковая система, проверьте её документацию и настройки отдельно — поведение зависит от конкретного решения.
Перед выпуском сравните конфигурацию тестового и рабочего окружений. Убедитесь, что включены необходимые модули и перенесены настройки языков и переводов. Не проверяйте только административный интерфейс: пройдите пользовательские маршруты из списка ниже.
- Открыть главную страницу каждого языка по прямому адресу.
- Перейти на перевод той же страницы через переключатель.
- Открыть страницу, у которой перевода нет.
- Отправить форму и проверить ошибки, подтверждение и письма, если они есть.
- Изменить перевод, обновить страницу и убедиться, что посетитель видит актуальную версию.
- Проверить меню, поиск, хлебные крошки и ссылки на связанные материалы.
Что ломается на границах
Самые неприятные дефекты появляются там, где языковая версия неполная или состояние сущностей расходится. Например, страница переведена, но связанный термин — нет; URL открывается, но переключатель ведёт на главную; перевод сняли с публикации, а ссылка на него осталась в меню. Для каждой такой ситуации определите ожидаемое поведение и проверьте его до выпуска.
Для диагностики фиксируйте адрес, выбранный язык, роль пользователя, наличие перевода и результат после обновления страницы. Эти пять пунктов помогают отделить проблему настройки Drupal от кеша, темы или внешнего модуля. Если дефект воспроизводится только на одном типе контента, начните с его полей и связей, а не с глобальных настроек языка.
Сноска. Сущность* — объект Drupal с данными и полями: например, материал, пользователь, термин таксономии или абзац.
* В Drupal одна страница может быть собрана из нескольких сущностей, поэтому перевод основного материала не гарантирует перевод всех вложенных частей.
Что сделать дальше
Перед релизом заведите короткий языковой регрессионный набор: по одной странице каждого типа, одну страницу без перевода, форму и сценарий переключения языка. Запускайте его после обновления ядра, модулей, темы и конфигурации. В продакшене отслеживайте не только ошибки страниц, но и обращения с неверными языковыми адресами, пропавшими переводами и устаревшим содержимым в кеше.
Чек-лист рассчитан на Drupal 10 и 11; точные названия экранов и доступные возможности сверяйте с документацией вашей версии и установленными модулями.
Тендерный специалист 44-ФЗ / 223-ФЗ: Разбор PDF-документации закупки, поиск «заточек» под поставщика, чек-лист заявки.
Спросить за 20 ₽Источники: Drupal: Multilingual guide, Drupal User Guide: Content translation
Частые вопросы
Если перевода страницы нет, Drupal покажет исходную версию?
Почему переключатель языка ведёт на главную, а не на перевод?
Нужно ли включать отдельный модуль для перевода интерфейса?
Почему после публикации перевода посетители видят старый текст?
Можно ли переводить только часть полей материала?
Проверочный список подходит для Drupal 9?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.