В друпал 8 широкие возможность для перевода уже из коробки. Давайте рассмотрим как можно добавить новый язык на сайт например Немецкий. Для этого зайдите в раздел Конфигурации Регоин и язык.
Давайте пройдемся по всем настройкам этого раздела.
Видео:
https://www.youtube.com/watch?v=kfKj4S9yCLc
Региональные настройки
Здесь все предельно понятно, но думаю стоит первый день недели поменять на понедельник. Вы также можете дать возможность выбирать пользователю часовую зону при регистрации, но можете и убрать. Это нужно когда на сайте есть функционал связанный с временем, например События, дата которого отображается для каждого в его собственном часовом поясе.
Форматы даты и времени
Мы можем через админку задать собственный формат вывода времени. Довольно часто в новостях нужно вывести дату в виде день-месяц-год. Давайте сделаем это.
Нажимайте +Добавить формат и добавим формат для новостей. Для нашего формата нам нужен будет строка даты d-m-Y
Подробнее о Format string вы можете почитать в руководстве по функции date().
http://php.net/manual/ru/function.date.php
Теперь мы можем поставить вывод нашей даты для всех полей типа Дата и для других выводов даты.
Вот мы и подобрались непосредственно к языкам в друпал 8. Давайте добавим немецкий язык.
После добавления языка друпал 8 начнет обновление перевода, для этого нужен интернет и это займет некоторое время.
Собственно все, мы добавили новый язык на сайт, можно его включить и удостовериться, что все работает.
Вернем русский язык обратно. Если вы зайдете во вкладку Определение и выбор вы сможете выбрать каким образом определять язык на сайте. Лучше всего использовать URL страницы. Если вы зайдет на страницу редактирования немецкого языка:
То там есть настройка код языка. Вот этот код добавляется к URL страницы чтобы определить для какого языка эта страница, например
Будет для немецкого языка.
Для русского, но при этом для языка по умолчанию код языка можно не указывать, так например
Тоже будет для русского языка.
Еще, если вы зайдете на страницу редактирования типа материала, например Статьи, то там можно поставить галочку, чтобы выбор языка был доступен при создание ноды:
/admin/structure/types/manage/article
Языки содержимого
Мы можем выбирать язык не только для нод, но и для блоков, пользователей, комментариев и прочих сущностей нашего сайта.
Теперь при добавление блока мы можем выбирать для какого языка этот блок добавлен.
Перевод пользовательского интерфейса
Вы наверно уже заметили, что друпал переводит не 100% интерфейса:
Для оставшихся строк мы можем использовать форму ручного перевода:
/admin/config/regional/translate
Вводим искомую фразу на английском и друпал нам находит все строки с этой фразой. Мы пишем перевод и нажимем кнопку Сохранить внизу страницы.
И так мы можем перевести строки по всему друпалу.
Также мы можем перевсти друпал вручную и выгрузить наши переводы во вкладке Экспорт.
Друпал выгрузить файл .po, который вы сможете использовать на других ваших сайтах, загрузив этот файл .po через вкладку Импорт
И в завершение у нас есть вкладка Настройки, где мы можем выставить проверку обновлений переводов. Вы можете поставить проверку переводов ежемесечно, но не думаю что ставить еженедельно хорошая идея. Друпал будет постоянно показывать вам непереведенные строки, никогда не бывает 100% перевода на другой язык. С каждым добавлением нового модуля, появляется непереведенные строки.