diff --git a/custom_menu_active_trail.inc b/custom_menu_active_trail.inc index 9fd8eb8..e4c8315 100644 --- a/custom_menu_active_trail.inc +++ b/custom_menu_active_trail.inc @@ -106,6 +106,7 @@ function __menu_block_set_menu_trail($menu_name = FALSE) { * returned. */ function _menu_link_get_preferred($path = NULL, $menu_name = '') { + global $language; $preferred_links = &drupal_static(__FUNCTION__); if (!isset($path)) { @@ -150,20 +151,20 @@ function _menu_link_get_preferred($path = NULL, $menu_name = '') { $query->fields('m'); $query->condition('ml.link_path', $path_candidates, 'IN'); - // Sort candidates by link path and menu name. + // Sort candidates by language, link path and menu name. $candidates = array(); foreach ($query->execute() as $candidate) { $candidate['weight'] = $candidate['link_weight']; - $candidates[$candidate['link_path']][$candidate['menu_name']] = $candidate; + $candidates[$candidate['language']][$candidate['link_path']][$candidate['menu_name']] = $candidate; } // Pick the most specific link, in the most preferred menu. $preferred_link = FALSE; foreach ($path_candidates as $link_path) { - if (isset($candidates[$link_path])) { + if (isset($candidates[$language->language][$link_path])) { foreach ($menu_names as $menu) { - if (!$preferred_links[$path][$menu] && isset($candidates[$link_path][$menu])) { - $candidate_item = $candidates[$link_path][$menu]; + if (!$preferred_links[$path][$menu] && isset($candidates[$language->language][$link_path][$menu])) { + $candidate_item = $candidates[$language->language][$link_path][$menu]; $map = explode('/', $path); _menu_translate($candidate_item, $map); if ($candidate_item['access']) {