Опубликовано Ivan Abramenko от Вос, 11/17/2019 - 11:37

В друпал 8 широкие возможность для перевода уже из коробки. Давайте рассмотрим как можно добавить новый язык на сайт например Немецкий. Для этого зайдите в раздел Конфигурации Регоин и язык.

Drupal 8 region and language

Давайте пройдемся по всем настройкам этого раздела.

Региональные настройки

Drupal 8 language translation

Здесь все предельно понятно, но думаю стоит первый день недели поменять на понедельник. Вы также можете дать возможность выбирать пользователю часовую зону при регистрации, но можете и убрать. Это нужно когда на сайте есть функционал связанный с временем, например События, дата которого отображается для каждого в его собственном часовом поясе.

Форматы даты и времени

Мы можем через админку задать собственный формат вывода времени. Довольно часто в новостях нужно вывести дату в виде день-месяц-год. Давайте сделаем это.

drupal 8 date and time formats

Нажимайте +Добавить формат и добавим формат для новостей. Для нашего формата нам нужен будет строка даты d-m-Y

drupal 8 format date

Подробнее о Format string вы можете почитать в руководстве по функции date().

http://php.net/manual/ru/function.date.php

 Теперь мы можем поставить вывод нашей даты для всех полей типа Дата и для других выводов даты.

Языки

Drupal 8 languages

Вот мы и подобрались непосредственно к языкам в друпал 8. Давайте добавим немецкий язык.

drupal 8 add language

После добавления языка друпал 8 начнет обновление перевода, для этого нужен интернет и это займет некоторое время.

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

Drupal 8 German

Вернем русский язык обратно. Если вы зайдете во вкладку Определение и выбор вы сможете выбрать каким образом определять язык на сайте. Лучше всего использовать URL страницы.

drupal 8

Языки содержимого

Если вы зайдет на страницу редактирования немецкого языка:

drupal 8

То там есть настройка код языка. Вот этот код добавляется к URL страницы чтобы определить для какого языка эта страница, например

http://site/de/node/10

Будет для немецкого языка.

http://site/ru/node/10

Для русского, но при этом для языка по умолчанию код языка можно не указывать, так например

http://site/node/10

Тоже будет для русского языка.

Еще, если вы зайдете на страницу редактирования типа материала, например Статьи, то там можно поставить галочку, чтобы выбор языка был доступен при создание ноды:

/admin/structure/types/manage/article

drupal 8 languages

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

Теперь при добавление блока мы можем выбирать для какого языка этот блок добавлен.

Drupal 8 translation

Перевод пользовательского интерфейса

Вы наверно уже заметили, что друпал переводит не 100% интерфейса:

Drupal 8 interface translation

Для оставшихся строк мы можем использовать форму ручного перевода:

/admin/config/regional/translate

Drupal 8 line feed

Вводим искомую фразу на английском и друпал нам находит все строки с этой фразой. Мы пишем перевод и нажимем кнопку Сохранить внизу страницы.

И так мы можем перевести строки по всему друпалу.

Также мы можем перевсти друпал вручную и выгрузить наши переводы во вкладке Экспорт.

Drupal 8 language export

Друпал выгрузить файл .po, который вы сможете использовать на других ваших сайтах, загрузив этот файл .po через вкладку Импорт

drupal 8 import translations

И в завершение у нас есть вкладка Настройки, где мы можем выставить проверку обновлений переводов. Вы можете поставить проверку переводов ежемесечно, но не думаю что ставить еженедельно хорошая идея. Друпал будет постоянно показывать вам непереведенные строки, никогда не бывает 100%  перевода на другой язык. С каждым добавлением нового модуля, появляется непереведенные строки.

drupal 8 settings