Index: menu_breadcrumb.module===================================================================--- menu_breadcrumb.module (revision 403)+++ menu_breadcrumb.module (working copy)@@ -300,13 +300,17 @@ * Set the active menu according to the current path. */ function menu_breadcrumb_init() {+ global $language;+ $menu_lang_check = variable_get('menu_breadcrumb_determine_menu_language', 0); if (variable_get('menu_breadcrumb_determine_menu', 1)) { // Find the set of menus containing a link for the current page. $menu_item = menu_get_item();- $result = db_query("SELECT mlid, menu_name FROM {menu_links} WHERE link_path = '%s'", $menu_item['href']);- $menu_link_menus = array();+ $result = db_query("SELECT mlid, menu_name, options FROM {menu_links} WHERE link_path = '%s'", $menu_item['href']);+ $menu_link_menus = $menu_link_options = array(); while ($menu_link = db_fetch_array($result)) {+ $temp_options = unserialize($menu_link['options']); $menu_link_menus[$menu_link['menu_name']] = TRUE;+ $menu_link_options[$menu_link['menu_name']] = $temp_options['langcode']; } // Choose the highest-priority 'Enabled' menu.@@ -318,7 +322,15 @@ if ($is_pattern) { // Look for each of the $menu_link_menus in the pattern match cache. foreach (array_keys($menu_link_menus) as $menu_link_menu_name) {- if (array_key_exists($menu_link_menu_name, $match_cache)+ if ($menu_lang_check+ && array_key_exists($menu_link_menu_name, $match_cache)+ && $match_cache[$menu_link_menu_name] == $menu_name+ && $menu_link_options[$menu_link_menu_name] == $language->language) {+ menu_set_active_menu_name($menu_link_menu_name);+ break 2;+ }+ else if (!$menu_lang_check+ && array_key_exists($menu_link_menu_name, $match_cache) && $match_cache[$menu_link_menu_name] == $menu_name) { menu_set_active_menu_name($menu_link_menu_name); break 2;@@ -326,10 +338,17 @@ } } else {- if (array_key_exists($menu_name, $menu_link_menus)) {+ if ($menu_lang_check+ && array_key_exists($menu_name, $menu_link_menus)+ && $menu_link_options[$menu_name] == $language->language) { menu_set_active_menu_name($menu_name); break; }+ else if (!$menu_lang_check &&+ array_key_exists($menu_name, $menu_link_menus)) {+ menu_set_active_menu_name($menu_name);+ break;+ } } } }@@ -360,13 +379,26 @@ * The settings form used by Menu breadcrumb. */ function menu_breadcrumb_admin_settings_form() {- $form['menu_breadcrumb_determine_menu'] = array(+ $form['menu_breadcrumb_determine_menu_fset'] = array(+ '#type' => 'fieldset',+ );++ $form['menu_breadcrumb_determine_menu_fset']['menu_breadcrumb_determine_menu'] = array( '#type' => 'checkbox', '#title' => t('Use menu the page belongs to for the breadcrumb.'), '#description' => t('By default, Drupal 6 will use the Navigation menu for the breadcrumb. If you want to use the menu the active page belongs to for the breadcrumb, enable this option.'), '#default_value' => variable_get('menu_breadcrumb_determine_menu', 1), );+ $form['menu_breadcrumb_determine_menu_fset']['menu_breadcrumb_determine_menu_language'] = array(+ '#type' => 'checkbox',+ '#title' => t('Also take current language into account when determening the menu item.'),+ '#description' => t('If you use a separate menu for each language, and you have activated the + <strong>Menu translation</strong> of <strong>i18n</strong> you can take the menu language into account. <strong>Each menu item must have a language set.</strong>'),+ '#default_value' => variable_get('menu_breadcrumb_determine_menu_language', 0),+ '#disabled' => !module_exists('i18nmenu'),+ );+ $form['menu_breadcrumb_append_node_title'] = array( '#type' => 'checkbox', '#title' => t('Append page title to breadcrumb'),