Вы здесь

Габор Хойцы — Мультиязычность в Друпале 8 (часть 5): Назначение языка

Gabor Hojtsy

Стандартный язык сайта используется как ключевой (и опасный для изменения) параметр, потому что все вещи, которые были не определены для языка работали вместе с ним. В Друпале 8, одной из наших важнейших целей было сделать так, чтобы связать с языком все критические параметры.

Специальные языки

Не всё может иметь язык, даже если оно имеет свойства относящиеся к языку. Друпал 7 имел один специальный язык для этих целей, который назывался нейтральным (неопределённым). Этот язык назначался содержанию, которое не связывалось с определённым языком. Он использовался в том случае, когда язык не был известен, но какой-либо язык назначался ему впоследствии. В Друпале 8 это разделено на два свойства — «Не применяется» и «Не определено». Так же, эти два специальных языка хранятся в конфигурации с другими настроенными управляющим сайтом языками, но не показываются на странице настройки, чтобы избежать путаницы. Модули и сборки могут добавлять свои специальные языки. Это заблокировано (не может быть отредактировано или удалено) и когда эти языки показываются в списке языков, то они показываются после настраиваемых вручную языков.

Широкие возможности по назначению языка

Возможности по назначению языка стали шире. Простой пример с видами — каждый вид знает свой язык. Все виды распространяемые с ядром Друпала — на английском языки, но вы можете сделать для своего сайта виды на любом языке.

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

Габор Хойцы — мультиязычность в Друпале 8, часть 5

Мы даже отслеживаем языковые параметры для названия и слогана сайта. В ядре нет интерфейса для работы с этой возможностью, но но мы сохраняем название и слоган на языке, который использовался при установке сайта. Поэтому, если вы устанавливали сайт на каталонском, то Друпал будет знать название и слоган сайта на каталонском.

Объекты с группами получили большую гибкость

В Друпале 7 языковые возможности настраивались для каждого типа документов. Можно было перейти к правке определённого типа документов и включить возможность перевода документов этого типа. В ядре Друпала 8 реализованы многие возможности модуля Internationalization и языки теперь настраиваются для всех типов объектов и групп.

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

Габор Хойцы — мультиязычность в Друпале 8, часть 5

Для каждого типа объекта можно настроить параметры по группам (таким как типы документов для документов или словари для терминов). У вас есть параметр для показа ссылок выбора языка в интерфейсе, которые позволяют пользователю изменить стандартный язык или выбрать динамический выбор языка на основе определённых значений. Эти значения включают стандартный язык сайта в момент создания, текущий язык интерфейса для добавления содержания или предпочитаемый пользователем язык.

Габор Хойцы — мультиязычность в Друпале 8, часть 5

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