меню на 2х языках

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

Аватар пользователя mgk mgk 6 июня 2008 в 19:48

сталкнулся с задачей сделать сайт на 2х языках
по структуре сайта (простая визитка) сложное меню не нужно достаточно только $primary_links

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

создаем второе меню с русским названием "Первые ссылки" и "машинным" названием "primarylinksru'"и руско язычные страницы добовляем в это меню а их переводы в primary_links

а теперь просто выводим необходимое меню

в page.tpl.php
вместо

<?php      if (isset($primary_links) ) { ?><?php print theme('links', $primary_links, array('class' => 'links', 'id' => 'navlist')) ?><?php } ?>

пишем

<?php
if($language->language=='ru') print theme('links', menu_navigation_links('menu-primarylinksru'), array('class' => 'links', 'id' => 'navlist'));
if (isset($primary_links) && $language->language!='ru') { ?><?php print theme('links', $primary_links, array('class' => 'links', 'id' => 'navlist')) ?><?php }
?>

результат тут
http://www.tyrexport.com

Комментарии

Аватар пользователя mgk mgk 7 июня 2008 в 13:18

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

и выводить для каждого языка

<?php
  if($language->language=='ru') print theme('links', menu_navigation_links('menu-primarylinksru'), array('class' => 'links', 'id' => 'navlist'));
?>

где
'menu-primarylinksru' - машинное имя меню
'ru' - машинное имя языка

если немного додумать то можно будет реализовать и второй уровень меню

Аватар пользователя venture venture 27 ноября 2008 в 19:34

а как будет выглядеть page.tpl.php, если первоначально там было только это:

<div id="navigation"><?php print $primary_links; ?></div>

1)пробовал так:

<div id="navigation">
<?php
if($language->language=='ru') {
   print theme('links', menu_navigation_links('menu-primarylinksru'), array('class' => 'links', 'id' => 'navlist'));
}
if (isset($primary_links) && $language->language!='ru') {
   print theme('links', $primary_links, array('class' => 'links', 'id' => 'navlist'));
}
?>
</div>

русское меню отображается нормально, но когда переключаешься с английского на русский сопровождается ошибкой:

warning: Invalid argument supplied for foreach() in ***/www/includes/theme.inc on line 1112.

английское при этом вообще не отображается.
2)пробовал так:

<div id="navigation">
<?php
if($language->language=='ru') print menu_navigation_links('menu-primarylinksru');
if (isset($primary_links) && $language->language!='ru') { ?><?php print $primary_links ?><?php }
?>
</div>

английское меню нормально отображается, а вот русское нет - пишет одно слово Array.
3)пробовал так еще:

<div id="navigation">
<?php
if($language->language=='ru') print $menu-primarylinksru;
if (isset($primary_links) && $language->language!='ru') { ?><?php print $primary_links ?><?php }
?>
</div>

английское - нормально, русское выдает - 0.

И страница главная не всегда переводиться по нажатию en,ru. Переключаю через Language Switcher. Еще вроде должен быть блок Translition(который переводит и меню и текст), но его нигде не нашел, вроде он на 5ой был, а сейчас его убрали.
Может модули какие еще установить надо? или удалить?
Что имею?
Drupal 6.6
i18n 6.x-1.0-beta6
languageicons 6.x-1.0
translation_overview 6.x-2.0-beta3
Что вообще нужно?
Получить такой же сайт по структуре как у автора топика. Т.е. сайт на 2х языках(для начала), по умолчанию один язык(английский) главной страницы и менюшек, при нажатии на спецкнопку с надписью "Русский", например - весь сайт переводиться на другой язык(Русский) - текст на главной на русском+менюшки на русском.
Итак вопрос: КАК? Как это можно сделать? Подскажите, бьюсь уже несколько дней с этой проблемой никак не врублюсь.
Спасибо.

Аватар пользователя SergO SergO 6 мая 2009 в 12:42

mgk - спасибо!!!
Я уже приближаюсь к тому, чтобы сделать двуязычный сайт без i18n (что-то он нормально с чешской локализацией не хотел работать, а искать ошибку нет времени =)), только с помощью стандартного Content translation.