diff --git a/core/modules/menu_link/src/Plugin/Field/FieldType/MenuLinkItem.php b/core/modules/menu_link/src/Plugin/Field/FieldType/MenuLinkItem.php index 6fce727..f2301df 100644 --- a/core/modules/menu_link/src/Plugin/Field/FieldType/MenuLinkItem.php +++ b/core/modules/menu_link/src/Plugin/Field/FieldType/MenuLinkItem.php @@ -181,8 +181,8 @@ public function delete() { protected function doSave() { $plugin_id = $this->getMenuPluginId(); - // When the entity is saved via a plugin instance, we should not call - // the menu tree manager to update the definition a second time. + // When the entity is saved via a plugin instance, we should not call the + // menu tree manager to update the definition a second time. if ($menu_plugin_definition = $this->getMenuPluginDefinition()) { if (!$this->menuPluginManager->hasDefinition($plugin_id)) { $this->menuPluginManager->addDefinition($plugin_id, $this->getMenuPluginDefinition()); @@ -233,7 +233,7 @@ protected function getMenuPluginDefinition() { $menu_definition['metadata']['entity_id'] = $entity->id(); $menu_definition['metadata']['entity_type_id'] = $entity->getEntityTypeId(); $menu_definition['metadata']['field_name'] = $this->definition->getFieldDefinition()->getName(); - $menu_definition['metadata']['translatable'] = is_subclass_of($entity, '\Drupal\Core\TypedData\TranslatableInterface'); + $menu_definition['metadata']['translatable'] = $entity->getEntityType()->isTranslatable(); $url = $entity->urlInfo(); $menu_definition['route_name'] = $url->getRouteName(); diff --git a/core/modules/menu_link/src/Plugin/Menu/MenuLinkField.php b/core/modules/menu_link/src/Plugin/Menu/MenuLinkField.php index f66c286..a1dfe75 100644 --- a/core/modules/menu_link/src/Plugin/Menu/MenuLinkField.php +++ b/core/modules/menu_link/src/Plugin/Menu/MenuLinkField.php @@ -98,8 +98,7 @@ protected function getProperty($property) { // if the site is configured to be multilingual. if (!empty($this->pluginDefinition['metadata']['translatable']) && $this->languageManager->isMultilingual()) { /** @var \Drupal\Core\TypedData\TranslatableInterface|\Drupal\Core\Entity\EntityInterface $entity */ - $entity = $this->getEntity(); - $entity = $entity->getTranslation($this->languageManager->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId()); + $entity = $this->entityManager->getTranslationFromContext($this->getEntity()); $field_name = $this->getMetaData()['field_name']; if ($property_value = $entity->$field_name->$property) { return $property_value;