Как стать автором
Обновить

Мультиязычность в Drupal 7. Меню

Время на прочтение2 мин
Количество просмотров22K
Ранее я рассказал как быстро и легко можно переводить контент (ноды) в D7.
Сейчас я расскажу про 2 способа перевода меню.

В обоих случаях мы будем использовать модули i18n, i18n_menu. На этот раз Entity translation нам не помошник, так как он может переводить только entity. В Drupal 6 для этого использовался Menu Translation, позже он был объеденен с Internationalization.


Предполагается что модуль i18n уже включен и настроено определения языка (если нет, то вам сюда).
Первым делом давайте включим подмодуль для перевода меню, воспользуемся drush.
drush en -y i18n_menu

Способ первый


На странице редактирования меню «admin/structure/menu/manage/%menu%/edit» выбираем пункт «Translate and Localize».


Как видим, на странице меню появилась новая вкладка «Translate».


С помощью неё можно перевести название и описание этого меню.


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


На странице «admin/structure/menu/item/%menu_item_id%/translate» можно добавить новый перевод к этой ссылке, а можно указать существующую в качестве перевода.


В результате перевода ссылки дублируются, но с разными языками.


Способ второй


Во втором способе мы будет использовать эти же модуля, но другому.

Важно: при создании новой ссылки необходимо выбрать нейтральный язык


Все, теперь можно переводить. Это делается на одной из двух страниц, на ваш выбор:
Через вкладку «Translate» на странице редактирования ссылки.

Либо на странице «admin/config/regional/translate/translate».

При использовании второго способа сами ссылки не дублируются

Результат

Английский:
Немецкий:

Update

Если вы собираетесь выводить программно, то должны использовать функцию
<?php print render( i18n_menu_translated_tree('menu-name') ); ?>
вместо
<?php print render( menu_tree('menu-name') ); ?>
Теги:
Хабы:
Всего голосов 19: ↑14 и ↓5+9
Комментарии7

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн