diff --git a/entity_translation_i18n_menu/entity_translation_i18n_menu.module b/entity_translation_i18n_menu/entity_translation_i18n_menu.module index 7b1a495..6020369 100644 --- a/entity_translation_i18n_menu/entity_translation_i18n_menu.module +++ b/entity_translation_i18n_menu/entity_translation_i18n_menu.module @@ -58,11 +58,10 @@ function entity_translation_i18n_menu_node_presave($node) { return; } - // If we change from menu localization to translation sets while working on - // a translation (i.e. not the source node), then leave the source menu item - // intact and create a new one. + // When creating a new translation, leave the source menu item intact and + // create a new one. $langcode = entity_language('node', $node); - if (!empty($node->menu) && $tset && $node->menu['language'] == LANGUAGE_NONE && !empty($source_langcode)) { + if (!empty($node->menu) && $tset && !empty($source_langcode)) { $node->source_menu = menu_link_load($node->menu['mlid']); unset($node->menu['mlid']); } @@ -262,7 +261,7 @@ function entity_translation_i18n_menu_item($item) { * @param $node * A node object, with a menu item ($node->menu). * @param $langcode - * The language into which the menu item should be translates. + * The language into which the menu item should be translated. */ function entity_translation_i18n_menu_node_menu_item_translate($node, $langcode) { // Localization. diff --git a/entity_translation_i18n_menu/entity_translation_i18n_menu.test b/entity_translation_i18n_menu/entity_translation_i18n_menu.test index d12535c..8689c2f 100644 --- a/entity_translation_i18n_menu/entity_translation_i18n_menu.test +++ b/entity_translation_i18n_menu/entity_translation_i18n_menu.test @@ -26,6 +26,7 @@ class EntityTranslationMenuTranslationTestCase extends EntityTranslationTestCase $this->login($this->getAdminUser(array('administer menu'))); $this->addLanguage('en'); $this->addLanguage('es'); + $this->addLanguage('it'); $this->configureContentType(); $this->configureMenu(); $this->enableUrlLanguageDetection(); @@ -232,6 +233,17 @@ class EntityTranslationMenuTranslationTestCase extends EntityTranslationTestCase $this->get('en', ''); $this->assertText($link_title_en2); + // Add another translation, and check that other menu items are not + // affected. See https://drupal.org/node/1982140 + $link_title_it = $this->randomName(); + $node_translation = $this->createTranslation($node, $link_title_it, NULL, 'it', TRUE); + + // Check that Spanish and English menu links have not changed. + $this->get('es', ''); + $this->assertText($link_title_es2); + $this->get('en', ''); + $this->assertText($link_title_en2); + // Delete Spanish translation and check that the respective menu item has // been deleted as well. $this->removeTranslation($node, 'es');