Index: i18nmenu/i18nmenu.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/i18n/i18nmenu/i18nmenu.module,v
retrieving revision 1.2.2.21
diff -u -p -r1.2.2.21 i18nmenu.module
--- i18nmenu/i18nmenu.module	25 May 2010 13:57:20 -0000	1.2.2.21
+++ i18nmenu/i18nmenu.module	3 Jul 2010 09:40:07 -0000
@@ -70,7 +70,8 @@ function i18nmenu_menu_link_alter(&$item
  */
 function i18nmenu_translated_menu_link_alter(&$item, $map) {
   if ($item['module'] == 'menu') {
-    $item['title'] = _i18nmenu_get_item($item);
+    $item['title'] = _i18nmenu_get_item_title($item);
+    $item['localized_options']['attributes']['title'] = _i18nmenu_get_item_description($item);
   }
 }
 
@@ -123,8 +124,9 @@ function i18nmenu_localize_tree(&$tree, 
         $router = i18nmenu_get_router($link['router_path']);
         // If the title is the same it will be localized by the menu system.
         if ($link['link_title'] != $router['title']) {
-          $tree[$index]['link']['title'] = _i18nmenu_get_item($link, $update);
+          $tree[$index]['link']['title'] = _i18nmenu_get_item_title($link, $update);
         }
+        $tree[$index]['link']['localized_options']['attributes']['title'] = _i18nmenu_get_item_description($link, $update);
         // Localize subtree.
         if ($item['below'] !== FALSE) {
           i18nmenu_localize_tree($tree[$index]['below'], $update);
@@ -201,7 +203,7 @@ function i18nmenu_preprocess_page(&$vars
 /**
  * Optionally insert/update and return a localized menu item title.
  */
-function _i18nmenu_get_item($link, $update = FALSE) {
+function _i18nmenu_get_item_title($link, $update = FALSE) {
   $key = 'menu:item:'. $link['mlid'] .':title';
   if ($update) {
     i18nstrings_update($key, $link['link_title']);
@@ -210,6 +212,21 @@ function _i18nmenu_get_item($link, $upda
 }
 
 /**
+ * Optionally insert/update and return a localized menu item description.
+ */
+function _i18nmenu_get_item_description($link, $update = FALSE) {
+  if (empty($link['options']['attributes']['title'])) {
+    return;
+  }
+  $key = 'menu:item:'. $link['mlid'] .':description';
+  $description = $link['options']['attributes']['title'];
+  if ($update) {
+    i18nstrings_update($key, $description);
+  }
+  return i18nstrings($key, $description);
+}
+
+/**
  * Delete a menu item translation.
  */
 function _i18nmenu_delete_item($mlid) {
@@ -320,7 +337,8 @@ function _i18nmenu_update_item($item) {
     $item['mlid'] = db_result(db_query("SELECT MAX(mlid) FROM {menu_links} WHERE link_path = '%s' AND menu_name = '%s' AND module = 'menu' AND plid = %d AND link_title = '%s'", $item['link_path'], $item['menu_name'], $item['plid'], $item['link_title']));
   }
   if (!empty($item['mlid'])) {
-    _i18nmenu_get_item($item, TRUE);
+    _i18nmenu_get_item_title($item, TRUE);
+    _i18nmenu_get_item_description($item, TRUE);
   }
 }
 
