Рейтинг:0

Разрешить настройку модуля для каждого языка

флаг in

У меня есть модуль, который позволяет редакторам сайта вводить простой текстовый заголовок и описание для элемента сайта. Этот сайт поддерживает несколько языков — как включить ввод значений для каждого включенного языка?

Я вижу документацию здесь:

https://www.drupal.org/docs/drupal-apis/configuration-api/configuration-schemametadata#intro

Должен ли я просто обновить свою схему для языкового кода и добавить селектор языка в форму конфигурации?

введите описание изображения здесь

Рейтинг:2
флаг cn

Нет, вам не нужно ничего добавлять в форму конфигурации. После того, как вы создали схему и очистили кеш, форма перевода создается автоматически (если включен модуль перевода конфигурации), и вы можете получить к ней доступ через вкладку «Перевод». Кстати, он выглядит совершенно иначе, чем исходная форма, и содержит только значения, которые могут быть переведены в соответствии со схемой.

Как прокомментировал @Kevin, Drupal ожидает большего, чтобы иметь возможность подключить вкладку перевода к базовому маршруту. Для простой настройки, как в этом случае, определите моймодуль.config_translation.yml файл.

Пример для /admin/config/system/site-information:

system.config_translation.yml

система.site_information_settings:
  title: 'Информация о системе'
  base_route_name: system.site_information_settings
  имена:
    - система.сайт

И вкладку, чтобы вкладки отображались при генерации второй вкладки перевода:

system.links.task.yml

system.site_information_settings_tab:
  имя_маршрута: system.site_information_settings
  Название: Настройки
  base_route: system.site_information_settings
Kevin avatar
флаг in
Я не вижу вкладку перевода, нужно ли мне что-то добавлять в мой маршрутизатор или файл ссылки меню?
4uk4 avatar
флаг cn
Включен ли основной модуль? Я отредактировал ответ.
Kevin avatar
флаг in
Я только что включил его и вижу новые области в администраторе, но нет вкладки перевода, и имя модуля не указано вместе с другими в разделе «Перевод конфигурации».
Kevin avatar
флаг in
Подождите - я думаю, что моя ошибка заключалась в использовании config_object, а не config_entity.
4uk4 avatar
флаг cn
Хорошо, для простой настройки вам нужно определить маршрут в файле yaml, в отличие от объектов конфигурации, где вы делаете это в определении объекта. Я добавляю пример к ответу.
Kevin avatar
флаг in
Да, config_entity будет автоматически подключаться, как вы сказали, — позвольте мне попробовать и другой способ.

Ответить или комментировать

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