Hi,

i hacked the menutrails.module to get localized breadcrumbs. Just replace the function:

function _menutrails_recurse_crumbs($tree, $item, &$crumbs, $above = array()) {
  foreach ($tree as $menu_item) {
    if (!$menu_item['link']['in_active_trail']) {
      continue;
    }
    if ($menu_item['link']['link_path'] == $item['href']) {
      foreach ($above as $trail_item) {
        if (module_exists('i18n')) {
          $router = i18nmenu_get_router($trail_item['link']['link_path']);
          if ($trail_item['link']['link_title'] != $router['title']) {
            $trail_item['link']['link_title'] = _i18nmenu_get_item($trail_item['link'], false);
          }
        }
        $crumbs[] = l($trail_item['link']['link_title'], $trail_item['link']['link_path']);
      }
      if (module_exists('i18n')) {
        $router = i18nmenu_get_router($menu_item['link']['link_path']);
        if ($menu_item['link']['link_title'] != $router['title']) {
          $menu_item['link']['link_title'] = _i18nmenu_get_item($menu_item['link'], false);
        }
      }
      $crumbs[] = l($menu_item['link']['link_title'], $menu_item['link']['link_path']);
      break;
    }
    if (is_array($menu_item['below'])) {
      _menutrails_recurse_crumbs($menu_item['below'], $item, $crumbs, array_merge($above, array($menu_item)));
    }
  }
}
CommentFileSizeAuthor
#3 829204.patch1.1 KBweseze
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Wolfgang Reszel’s picture

Project: Node Trail » Menu Trails
Version: 6.x-1.x-dev » 6.x-1.1

Oops, wrong project.

Wolfgang Reszel’s picture

Here the modified function for the latest i18n module:

function _menutrails_recurse_crumbs($tree, $item, &$crumbs, $above = array()) {
  foreach ($tree as $menu_item) {
    if (!$menu_item['link']['in_active_trail']) {
      continue;
    }
    if ($menu_item['link']['link_path'] == $item['href']) {
      foreach ($above as $trail_item) {
        if (module_exists('i18n')) {
          $router = i18nmenu_get_router($trail_item['link']['link_path']);
          if ($trail_item['link']['link_title'] != $router['title']) {
            $trail_item['link']['link_title'] = _i18nmenu_get_item_title($trail_item['link'], false);
          }
        }
        $crumbs[] = l($trail_item['link']['link_title'], $trail_item['link']['link_path']);
      }
      if (module_exists('i18n')) {
        $router = i18nmenu_get_router($menu_item['link']['link_path']);
        if ($menu_item['link']['link_title'] != $router['title']) {
          $menu_item['link']['link_title'] = _i18nmenu_get_item_title($menu_item['link'], false);
        }
      }
      $crumbs[] = l($menu_item['link']['link_title'], $menu_item['link']['link_path']);
      break;
    }
    if (is_array($menu_item['below'])) {
      _menutrails_recurse_crumbs($menu_item['below'], $item, $crumbs, array_merge($above, array($menu_item)));
    }
  }
}
weseze’s picture

Category: feature » bug
Status: Active » Reviewed & tested by the community
FileSize
1.1 KB

This really needs to be fixed. I have to manually apply this patch to all sites and after all updates to this module.
Patch included ;) thx Tekl!

fabianderijk’s picture

This patch works fine for me. It's important to implement this in the module.