Index: i18nmenu/i18nmenu.module =================================================================== --- i18nmenu/i18nmenu.module (revision 34252) +++ i18nmenu/i18nmenu.module (working copy) @@ -233,6 +233,32 @@ /** * Implementation of hook_form_form_id_alter(). * + * Register a submit callback to process menu title. + */ +function i18nmenu_form_menu_edit_menu_alter(&$form, $form_state) { + $form['#submit'][] = 'i18nmenu_menu_edit_menu_submit'; +} + +/** + * Submit handler for the menu_edit_item form. + * + * On menu item insert or update, save a translation record. + */ +function i18nmenu_menu_edit_menu_submit($form, &$form_state) { + // Ensure we have a menu to work with. + if (isset($form_state['values']['menu_name']) && isset($form_state['values']['title'])) { + if ($form['#insert']) { + $context = 'menu:menu:menu-' . $form_state['values']['menu_name'] . ':title'; + } else { + $context = 'menu:menu:' . $form_state['values']['menu_name'] . ':title'; + } + i18nstrings_update_string($context, $form_state['values']['title']); + } +} + +/** + * Implementation of hook_form_form_id_alter(). + * * Add a language selector to the menu_edit_item form and register a submit * callback to process items. */ Index: i18nblocks/i18nblocks.module =================================================================== --- i18nblocks/i18nblocks.module (revision 34252) +++ i18nblocks/i18nblocks.module (working copy) @@ -255,6 +255,7 @@ if (module_exists('i18nmenu')) { if ($block->module == 'menu') { $block->content = i18nmenu_translated_tree($block->delta); + $block->subject = i18nstrings('menu:menu:' . $block->delta . ':title', $block->subject); } elseif ($block->module == 'user' && $block->delta == 1) { $block->content = i18nmenu_translated_tree('navigation');