Многоязычное меню без использования Menu translation (i18n)

Код ниже, пропускает все названия пунктов Main Menu через функцию t(), поэтому можно не мучатся с модулем Menu translation и переводить пункты с помощью стандартного интерфейса admin/config/regional/translate/translate:
/**
 * Preprocess function for theme_menu_link()
 */
function THEMENAME_preprocess_menu_link(&$vars) {
  if ($vars['element']['#original_link']['menu_name'] == 'main-menu' && !empty($vars['element']['#title'])) {
    $vars['element']['#title'] = t($vars['element']['#title'], array(), array('context' => 'menu'));
  }
}

Добавить в template.php, заменить THEMENAME на имя темы, сбросить кэш.

P.S: оригинальные названия всех пунктов должны быть на английском.

Написанное актуально для
Drupal 7
Теги:
многоязычность, работа с меню
Добавлено: 30 Июля 2018 07:33:00 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...