Якобы многоязычные меню

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

Аватар пользователя direqtor direqtor 3 июля 2008 в 7:06

На своем проекте делаю многоязычные меню и столкнулся с проблемой невозможности перевода их заголовков.

Например, на руской части сайта должно быть меню с заголовком «Разделы» с пунктами «Новости сайта» и «Новости проектов», а на английской соответственно «Chapters» с пунктами «Site news» и «Our projects»

В модуле i18n включены Multilingual Menu и Mutilingual Blocks. После создания меню и добавления в него пунктов на странице переводов нахожу в группе строк Меню пункты меню, но заголовка – нет. Его нигде нет. В результате, при переключении языка, пункты меню переводятся, а заголовок меню - нет. Если поставить заголовок блока, который дает меню, то его тоже невозможно перевести. Причем для блоков созданных пользователем это работает - в разделе Блоки в есть возможность перевести и заголовок и тело.

Короче, единственный видимый мной выход – это создать для каждого языка свое меню, но такой вариант, честно говоря, обламывает. Проблема была решена изменением функции menu_block. В файле menu.module строчка

  1.     $data['subject'] = check_plain($menus[$delta]);

заменена на

  1.     $data['subject'] = t(check_plain($menus[$delta]));

Опять запатчил ядро. Sad

Знает кто-нибудь более разумное решение проблемы?

Создание своего меню для каждого языка не предлагать. Smile

Комментарии

Аватар пользователя Bios Bios 4 июля 2008 в 9:48

У меня аналогичная проблема ))))

Только ваша проблема это еще цветочки )))

самое смешное будет кога у вас появится хотябы одна внешняя ссылка в Primary links...

Например в создадите ссылку на drupal.ru c текстом "мой любимый сайт" и вы эту надпись на русском языке будете наблюдать на всех языках... Я около недели боролся с проблемой искал обработчики меню...
Когда нашел то узнал что внешние ссылки обрабатываются совсем подругому... menu.inc - содержит около 30 функций... Пробовал устранить проблему - не получилось...
В итоге все равно создал свое меню...
И никаких проблем...

ЕСЛИ ВЫ РЕШИТЕ ЭТУ ПРОБЛЕМУ ДАЙТЕ ЗНАТЬ... ТАК КАК ТЕМА АКТУАЛЬНА ДЛЯ ВСЕХ КТО ДЕЛАЕТ МНОГОЯЗЫЧНЫЙ САЙТ НА ДРУПАЛЕ...

Аватар пользователя direqtor direqtor 9 июля 2008 в 13:57

Если у внешней ссылки в меню название и она указана как All languages, то ее можнео найти в переводах в группе строк Меню.

Аватар пользователя Bios Bios 18 июля 2008 в 7:22

Как обычно самое сложное решается простейшим способом ))

Спасибо огромное!!!

Кстати а почему вам не нравится вариант с отдельным меню для каждого языка???

На мой взгяд это неудобно только в случае если вы используете готовые шаблоны.... Так как Primary links обычно оформлено по другому...

Аватар пользователя Bios Bios 22 июля 2008 в 8:13

Да это с одной стороны тупо но:
Когда у вас будет десять языков и одно ПРИМАРИ ЛИНКС то еще больше шансов запутаться... ИМХО
Так как вы зщнаете допустим 2 языка... А у вас их десять... Наврядли вы сможете отличить допустим казахский язык от узбекского или киргизского....
дело конечно ваше...
Я сделал 3 меню с префиксами Primary links RU, Primary links EN и т д... Когда добавляешь материал Сразу видно в какой язык он вкладывается...

А представьте что у вас Primary links будет иметь 15 пунктов для каждого языка... Это же 150 пунктов в итоге... Незная языков очень легко запутаться...

Имхо чем больше языков, теб больше я склоняюсь к отдельному меню...
А для двуязычного сайта конечно удобнее просто одно меню для двух языков...