Drupal — это популярная система управления контентом (CMS), которая позволяет создавать и управлять веб-сайтами. Однако иногда возникают сложности с выводом переведенной ноды в представлении (View). В этой статье мы рассмотрим, как решить эту проблему.

Шаг 1: Установка и настройка модуля Internationalization (i18n)

Первым шагом необходимо установить и настроить модуль Internationalization (i18n), который добавляет многоязычные возможности в Drupal.

composer require drupal/i18n
drush en i18n

Шаг 2: Создание и настройка переводимых типов контента

После установки модуля i18n необходимо создать и настроить переводимые типы контента. Для этого перейдите в раздел «Structure» (Структура) и выберите «Content types» (Типы контента). Создайте новый тип контента или выберите существующий и активируйте опцию «Multilingual support» (Многоязычная поддержка).

Шаг 3: Добавление переводимых полей

Теперь необходимо добавить переводимые поля к типу контента. Для этого на странице настройки типа контента перейдите в раздел «Manage fields» (Управление полями) и создайте новое поле. В разделе «Field Settings» (Настройки поля) активируйте опцию «Enable translation» (Включить перевод) для каждого поля, которое вы хотите перевести.

Шаг 4: Создание представления для вывода переведенных нод

Теперь создайте новое представление (View), чтобы отображать переведенные ноды. Перейдите в раздел «Structure» (Структура) и выберите «Views» (Представления). Создайте новое представление, выбрав тип контента, который содержит переводимые ноды.

$view = views_get_view('your_view_name');
$view->set_display('your_display_name');
$view->pre_execute();
$view->execute();
$view->render();

Дополнительные вопросы и ответы:

1. Как добавить фильтр по языку в представление?

Чтобы добавить фильтр по языку в представление, откройте настройки представления и перейдите в раздел «Filter criteria» (Критерии фильтрации). Нажмите на кнопку «Add» (Добавить) и выберите фильтр «Content: Language» (Контент: Язык). Выберите язык(и), по которым вы хотите фильтровать ноды, и сохраните настройки представления.

2. Как вывести переведенный заголовок ноды в представлении?

Чтобы вывести переведенный заголовок ноды в представлении, откройте настройки представления и перейдите в раздел «Fields» (Поля). Нажмите на кнопку «Add» (Добавить) и выберите поле «Content: Title» (Контент: Заголовок). В разделе «Language options» (Опции языка) выберите «Current user’s language» (Язык текущего пользователя) или «Content language» (Язык контента) для поля заголовка.

3. Как создать представление для переведенных нод определенного языка?

Чтобы создать представление для переведенных нод определенного языка, откройте настройки представления и перейдите в раздел «Contextual filters» (Контекстные фильтры). Нажмите на кнопку «Add» (Добавить) и выберите фильтр «Content: Translation language» (Контент: Язык перевода). В разделе «When the filter value is not in the URL» (Когда значение фильтра отсутствует в URL) выберите «Provide default value» (Предоставить значение по умолчанию) и выберите нужный язык.