Hi,

I was having many problems with breadcrumbs, especially:

  • The 'Home' is set to '<front>', which is translated to 'nothing' and is not language aware (link will become: http://domain.ext/)
  • drupal_is_front_page() is not language aware
  • drupal_is_front_page() is not taking care of the default front page setting

All this leads to problems with code that needs to know when it's in the front page (generally) and breadcrumbs (when the i18n module is installed). Here is what I did to solve most of these problems (Note: I'm not familiar with the drupal API and I tested these only with the i18n module installed, don't know if it still works without it):

In 'menu.inc', replace the line
$links[] = l(t('Home'), '<front>');
with
$links[] = l(t('Home'), drupal_get_normal_path(variable_get('site_frontpage', 'node')));

In 'path.inc', replace 'drupal_is_front_page()' with:

function drupal_is_front_page() {
  // As drupal_init_path updates $_GET['q'] with the 'site_frontpage' path,
  // rely on $_REQUEST to verify the original value of 'q'.
  if (!isset($_REQUEST['q'])) return true;

  $request = "";
  $front_page = "";

  if (function_exists('i18n_get_normal_path'))
  {
    $request = i18n_get_normal_path(trim($_REQUEST['q'], '/'));
    $front_page = i18n_frontpage();
  }
  else
  {
    $request = drupal_get_normal_path(trim($_REQUEST['q'], '/'));
    $front_page = drupal_get_normal_path(variable_get('site_frontpage', 'node'));
  }

  //drupal_set_message("q=".$_REQUEST['q']." request=$request front_page=$front_page");

  return ($request == "" || $request == $front_page);
}

Hope this helps ;)

Bye