Drupal 8: многоязычный сайт из коробки

Drupal: 
Модули: 

Drupal 8 как результат работы сообщества разработчиков имеет много полезных возможностей, востребованных во всём мире. Сюда входят:

  • перевод интерфейса на любой язык,
  • поддержка языков,
  • перевод содержимого и категорий сайта (терминов таксономии).

Новичок, который научился устанавливать движок на хостинг, сможет сделать многоязычный сайт и перевести сайт на разные языки, причём у каждой языковой версии может быть свой собственный домен.

Тема урока: создание многоязычного сайта на Drupal 8.
Вопорсы: Как сделать сайт на Друпал 8 многоязычным? Создание языковых версий сайта на Друпал 8. На чём делать многоязычный сайт? Настройка языков и переводов в Друпал 8. Как переводить Представления? Как настроить Представления Views для многоязыкового сайта? Как подключить несколько доменов к сайту на Друпал 8?

 

Добавление языков

После установки Drupal 8 на любом языке можно добавить новые языки сайта тут: Конфигурация - Регион и язык - Языки /admin/config/regional/language кнопка "Добавить язык".

добавление языков в друпал 8

После добавления языков один из них будет отмечен как язык "По умолчанию" на странице Языки: /admin/config/regional/language. Можно сменить язык по умолчанию в любое время.

 

Активация модулей многоязычности

Откройте страницу модулей по кнопке Расширить /admin/modules и найдите подраздел Многоязычность, где вам нужно включить следующие модули:

  • Configuration Translation
  • Content Translation
  • Interface Translation
  • Language

Также для отображения ссылок на языковые версии с флагами скачайте и установите новый модуль Language Icons.

модули многоязычного сайта

 

Настройка переводов материалов, разделов и интерфейса

После активации модулей у вас не всё сразу станет как надо - нужно правильно настроить. Откройте настройки либо по кнопке Configure (Настройки) в описании рядом с модулем Content Translation или через Конфигурация - Регион и язык - Язык содержимого /admin/config/regional/content-language .

Отметьте те сущности которые вам нужно переводить, обычно: Содержимое, Термин таксономии, Пользовательский блок, Пользовательская ссылка меню.

настройка переводов содержимого

На этой же странице при установке чекбоксов снизу появляются настройки переводов. Вы можете указать какие Типы материалов должны стать переводимыми, какие поля Содержимого должны быть переводимыми, какие словари Таксономии должны поддерживать многоязычность, и какие поля Терминов таксономии нужно переводить. Также там можно задать язык по умолчанию при создании этих сущностей.
Для наглядности - настройки нескольких словарей:

настройка переводов таксономии

Эти настройки можно выполнять также и при редактировании Типов материалов (в Структура - Типы материалов /admin/structure/types ) и словарей Таксономии (в Структура - Таксономия /admin/structure/taxonomy ).

 

Перевод материалов

Создайте любой новый материал, выбрав в поле Язык - новый язык. Если вы не нашли поле Язык, настройте Форму в "Управлении отображением формы", например, для типа Основная страница тут: /admin/structure/types/manage/page/form-display . Переместите за крестик поле Язык на нужное место.

поле язык

Создав новый материал, вы сможете видеть его на Главной странице в соответствующей языковой версии. Если нет , тогда нужно правильно настроить Представление.

 

Блок выбора языка

В Структура - Схема блоков поместите в нужный Регион блок "Переключатель языка". Если у вас активирован модуль Language icons, тогда настроить флаги можно по кнопке Configure (Настроить) на странице модулей в описании модуля Language Icons, то есть тут: /admin/config/regional/language/icons.
Так можно поставить флаги языков до или после названия, а также вместо названия.

 

Настройка Представлений

Чтобы на языковых версиях отображались только материалы на текущем языке (языке языковой версии), нужно редактировать Представления, добавив Критерий фильтрации Язык перевода.
настройка представления язык перевода

Чтобы переводить заголовок Представления или менять вывод в зависимости от языка, нужно переводить Представления. Для этого пользуйтесь вкладкой "Перевести просмотр" на странице редактирования Представления. Эта вкладка появляется при включенном модуле Configuration Translation.
drupal 8 перевод представления

 

Связанные переводы

Если включен перевод материалов и терминов таксономии, тогда не нужно создавать новые - нужно нажимать кнопку "Переводы" после добавления нужных материалов или терминов. В этом случае языковые версии будут связаны: при просмотре материала или термина и переходе на другой язык будет отображаться перевод, а не что-то другое.

включить перевод
Включить перевод в настройках Типа материалов

 

Настройка блоков

Блоки можно показывать только на определённых языках, скрывая их там, где они не актуальны. Или можно создавать переводы блоков.
Если, например, меню двух разных языков отличаются (вы создали два разных меню), тогда блоки этих меню можно ограничить только определёнными языковыми версиями:

видимость блока языки

 

Перевод имени сайта и информации о сайте

В разделе Конфигурация - Basic site settings (Базовые настройки сайта) хранится название и слоган. Чтобы перевести, нажмите на вкладку "Перевести system information" и добавьте нужные переводы. Эта вкладка появляется при включенном модуле Configuration Translation.

drupal 8 перевод названия сайта

 

Языковые домены

Установите модуль Domain Access, если хотите для каждого языка настроить разные домены: сайт.рф, site.com, sitio.es.
Активируйте:
domain access multilingual

После активации сайт может перестать работать, пока вы не добавите домены. В настройках Domain добавьте домены /admin/config/domain
Теперь для присвоения языкам собственного домена найдите на странице Конфигурация - Регион и язык - Язык вкладку Определение и выбор и переместите поле URL на первое место, а затем нажмите "Настроить" напротив поля URL. Выберите критерий выбора "Домен" и для каждого языка пропишите нужный домен.
настройки доменов языков

Если вы не знаете, как направить разные домены на один домен на сервере, обратитесь к хостеру или ищите по запросу переадресация Apache, символьные ссылки Linux сайты.

 

Многоязычный сайт на Drupal 8 - это просто!

Мультиязычные сайты заказывают компании по всему Миру. Сообщество разработчиков Drupal продолжает делиться наработками, упрощая работу по созданию новых сайтов для себя и других.

Настройки многоязычного сайта, конечно, могут требовать больше функциональных возможностей CMS Drupal 8, усилий разработчика. Конечно, могут быть ошибки.
В решени проблем вам поможет сообщество:
http://drupal.ru
http://drupal.stackexchange.com