Мультиязычность - основные ссылки меню Superfish не переводится(установлен i18n)

Главные вкладки

Аватар пользователя defaze defaze 24 августа 2011 в 18:47

Привет. У меня такая проблема, мучаюсь уже 3ий день. Нужно создать мультиязычный сайт на друпале. Установил модуль i18n все его компаненты и все, что ему требуется для работы. НАстраивал всё по мануалам и советов по форуму. Весь сайт переводится,а заголовки ссылок в меню наверху в Superfish не переводятся, хотя я все сделал, добавил каждой кнопке перевод на разные языки, установил "Нейтральность к языкам". Эти кнопки даже можно найти теперь в закладке "Перевод Интерфейса -> Перевести."

Что делать?

Комментарии

Аватар пользователя lordofbits lordofbits 2 октября 2011 в 20:47

Точно такая же проблема( может кто ответит нам(.

Когда через superfish основные линки, показует в кучу и ру и енг, когда ставлю в настройках диза без superfish показывать основные линки, все ок, но тоогда не робит выпадающий список

Аватар пользователя saratsubolg saratsubolg 31 декабря 2011 в 12:14

Тоже присоединяюсь ... "Когда через superfish основные линки, показует в кучу и ру и енг, когда ставлю в настройках диза без superfish показывать основные линки, все ок, но тоогда не робит выпадающий список" ... у меня точно также проблема, только с РУС и УКР переводом (((

Делал отдельный блок Суперфиш для каждого языка ( т.е в настройках каждого из этих блоков ставил два разных языка )

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

Также заметил, что в тех некоторых пунктах меню которые выводятся, в настройках пути стоит <font> , т.е. на Главную.

При этом все вышеуказанное пробовал делать как для Основних, так и для Секондари линкс.

Вобщем объяснять много бес толку, поскольку если человек (тот который будет, или не будет отвечать на этот пост) не имеет возможности сам создать два блока меню Суперфиш, установить модуль Internationalization и сделать два отдельных меню Суперфиш например в Primary links для двух разних языков, то не имеет смисла дальше о чем то говорить...

Правда если так, то какой тада вообще толк от форума "Техподдержка Drupal → Решение проблем" если здесь даже при множественном обращении нуждающихся в помоще по одной конкретной проблеме имеющей прямое отношение к текущей тематике
форума, ИМ НИКТО РЕАЛЬНО НЕ МОЖЕТ/НЕ УМЕЕТ (или не хочет) помочь.

Аватар пользователя noizo noizo 10 мая 2012 в 0:32

Проблема решается следующим образом.

1. Редактируем файл sites/all/modules/superfish/superfish.module

2. После строки 775-777

// Start caching the menu.
    $cache = array();
    $menu = menu_tree_all_data($menu_name);

Добавляем код:

    if (function_exists('i18n_menu_localize_tree')) {
      $cache['menu'] = i18n_menu_localize_tree($menu);
    }
    else {
      $cache['menu'] = $menu;
    }

Это добавляет поддержку модуля internatiolization в superfish.

3. Строку 1012 (после шага №2 1019)

     
$output['content'] .= l($menu_item['link']['title'], $menu_item['link']['link_path'], $link_options);

меняем на

     
$output['content'] .= l($menu_item['link']['title'], $menu_item['link']['href'], $link_options);

Это исправляет отображение ссылок с node/xx на clean url

Вот так вот.
Надеюсь помог.
Удачи

Аватар пользователя ProMax ProMax 10 июля 2012 в 3:48

http://promax.blogdns.com/ пробовал , но ссылки с русскими названиями не выводятся , вместо них либо пусто , или же если сделать как советовал предыдущий оратор , меню вообще не выводиться

Аватар пользователя skeef skeef 3 августа 2012 в 16:04

В моем случае строки 775-777 содержали следующий код:

$cache = array();
$cache['menu'] = menu_tree_all_data($menu_name);

Поэтому пришлось заменить последнюю строку на:

$menu = menu_tree_all_data($menu_name);

Ну а далее - по тексту.

Спасибо за решение Smile

Аватар пользователя divined divined 3 октября 2012 в 12:37

Вообще-то ничего менять не надо. Работа с меню в 7-ке достаточно специфичная.
Нейтральный язык для пункта меню в мультиязычном сайте недопустим. Для русского материала делаете русскую ссылку меню, потом переводите этот элемент.

Если сделаете неитральный + перевод, то будет переводить для админа, но для анонима не будет.

Работает без всяких кривых патчей, что вы привели.

Аватар пользователя divined divined 3 октября 2012 в 12:41

saratsubolg

А может ситуация немного иначе выглядит для других людей?

У меня, например, нет проблем с суперфиш + перевод. Что я делаю не так?

Значит просто кто-то недостаточно грамотен чтобы понять что ошибка не в друпале, а в нем.

Аватар пользователя Antoniy Antoniy 3 января 2013 в 22:46

"divined" wrote:
Нейтральный язык для пункта меню в мультиязычном сайте недопустим.

Создаю пункт меню, ставлю язык (не нейтральный) и в переводах интерфейса эта строка для перевода отсутствует. А с нейтральным языком всё в порядке, кроме трабла с superfish. Что я делаю не так?

Аватар пользователя Antoniy Antoniy 3 января 2013 в 23:03

Поставил свежую dev'ку Superfish 7.x-1.9-beta5+1-dev и поддержка переводов заработала.

В файле superfish.module нашел:

  if (function_exists('i18n_menu_localize_tree')) {
    $menu = i18n_menu_localize_tree($menu);
  }