Проблема с "Хлебными крошками" на двух языках

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

Аватар пользователя boratiche boratiche 2 февраля 2011 в 17:44

Добрый день.
Помогите пожалуйста решить проблему.
Есть сайт на английском и русском языках, необходимо настроить навигационную цепочку (Хлебные крошки, breadcrumb).
Перепробовал много модулей: custom_breadcrumbs, menu_breadcrumb, menutrails, node_breadcrumb, nodetrail, taxonomy_breadcrumb.
Из всех подошли только custom_breadcrumbs и menu_breadcrumb. (может не разобрался с остальными).
С помощью custom_breadcrumbs удается настроить хлебные крошки только для одного языка, т.е. если я настраиваю на русском - Главная - Новости - Статья_такаято, при переходе на английский, хлебный крошки остаются на русском, поскольку модуль не поддерживает вставки php кода.
Статьи вывожу с помощью views'ов и получается вот такой путь "mysite/ru(или en)/news/name_article" - в хлебных крошках должно быть так - "Главная (Home) - Новости (News) - Название статьи (Name article) "
Вот код который пишу custom_breadcrumbs, в поле "Заголовки" - "Новости [title-raw]", в поле "Пути" - "/news/ [node-path]".
Пробовал использовать вместо "Новости" [menu-raw] но не чего не возвращает

Комментарии

Аватар пользователя AI AI 2 февраля 2011 в 18:44

Вообще хлебные крошки довольно своеобразны... Мне удалось на одном три-язычном проекте победить путем перевода оных, но путь не из простых.
Попробуйте сделать так: файл template.php, в нем переопределить функцию вывода крошек. Разложить $breadcrumb на $breadcrumb_item'ы. Вместо $breadcrumb_item написать t($breadcrumb_item).
Сразу вам куча оговорок: подсмотреть как переопределить можно в каждой второй теме, потому код не привожу здесь; лучше крошки писать на англицком языке, потом переводить на русский и прочие (сами потом поймете почему) языки; много рутинной работы по вколачиванию каждого термина; автоматизировать не сумел.

Аватар пользователя boratiche boratiche 3 февраля 2011 в 13:45

К сожалению те примеры которые я нашел в темах, не решают проблем. Не могли бы вы привести пример функции которую вы используете?

Аватар пользователя divined divined 24 января 2012 в 15:20

t($breadcrumb_item)это пройдет только если это не термин а часть интерфейса, эта функция не переведет термин таксономии (

<?php
foreach($breadcrumb as $crumb){
           
preg_match_all("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/"$crumb$matches);
           
//Выделяем текст крошки
           
$term taxonomy_get_term_by_name($matches[3][0]);
           
//Пытаемся получить термин для перевода, но не срабатывает =(
           
if ($term == null) {
              
$translated t($matches[3][0]); //Объект не термин
           
} else {
              
$translated tt("term:$term->tid:name",$term->name,$lang); //Объект термин
           
}
           
$new[$i]=$matches[1][0].$translated.$matches[4][0];
           
$i++; 
      }
?>