diff --git a/src/Plugin/MenuItemsFormat/JsonApiMenuItemsFormat.php b/src/Plugin/MenuItemsFormat/JsonApiMenuItemsFormat.php
index 6d7c69a6c8aae5458e68ba75e092544c573ac6a7..bc6af767702ab3de077cd206ac846de13fad9865 100644
--- a/src/Plugin/MenuItemsFormat/JsonApiMenuItemsFormat.php
+++ b/src/Plugin/MenuItemsFormat/JsonApiMenuItemsFormat.php
@@ -3,12 +3,20 @@
 namespace Drupal\jsonapi_menu\Plugin\MenuItemsFormat;
 
 use Drupal\Core\Cache\CacheableMetadata;
+use Drupal\Core\Entity\EntityRepositoryInterface;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Menu\MenuLinkInterface;
+use Drupal\Core\Menu\MenuLinkTreeInterface;
 use Drupal\Core\Menu\MenuTreeParameters;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\jsonapi\JsonApiResource\ResourceObject;
 use Drupal\jsonapi\JsonApiResource\ResourceObjectData;
+use Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface;
 use Drupal\jsonapi_menu\Plugin\MenuItemsFormatBase;
 use Drupal\system\MenuInterface;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\Serializer\SerializerInterface;
 
 /**
  * Plugin implementation of the 'json_api' format.
@@ -17,7 +25,7 @@ use Drupal\system\MenuInterface;
  *   id = "json_api"
  * )
  */
-class JsonApiMenuItemsFormat extends MenuItemsFormatBase {
+class JsonApiMenuItemsFormat extends MenuItemsFormatBase implements ContainerFactoryPluginInterface {
   /**
    * Drupal\Core\Menu\MenuLinkTreeInterface definition.
    *
@@ -53,16 +61,50 @@ class JsonApiMenuItemsFormat extends MenuItemsFormatBase {
    */
   protected $resourceTypeRepository;
 
-  public function __construct(array $configuration, $plugin_id, $plugin_definition) {
-    parent::__construct($configuration, $plugin_id, $plugin_definition);
+  /**
+   * The entity respository.
+   *
+   * @var \Drupal\Core\Entity\EntityRepositoryInterface
+   */
+  protected $entityRepository;
 
-    $this->menuLinkTree = \Drupal::service('menu.link_tree');
-    $this->moduleHandler = \Drupal::service('module_handler');
-    $this->entityTypeManager = \Drupal::service('entity_type.manager');
-    $this->serializer = \Drupal::service('jsonapi.serializer');
-    $this->resourceTypeRepository = \Drupal::service('jsonapi.resource_type.repository');
+  /**
+   * @param array $configuration
+   * @param $plugin_id
+   * @param $plugin_definition
+   * @param \Drupal\Core\Menu\MenuLinkTreeInterface $menuLinkTree
+   * @param \Drupal\Core\Extension\ModuleHandlerInterface $moduleHandler
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager
+   * @param \Symfony\Component\Serializer\SerializerInterface $serializer
+   * @param \Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface $resourceTypeRepository
+   * @param \Drupal\Core\Entity\EntityRepositoryInterface $entityRepository
+   */
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, MenuLinkTreeInterface $menuLinkTree, ModuleHandlerInterface $moduleHandler, EntityTypeManagerInterface $entityTypeManager, SerializerInterface $serializer, ResourceTypeRepositoryInterface $resourceTypeRepository, EntityRepositoryInterface $entityRepository) {
+    parent::__construct($configuration, $plugin_id, $plugin_definition);
+    $this->menuLinkTree = $menuLinkTree;
+    $this->moduleHandler = $moduleHandler;
+    $this->entityTypeManager = $entityTypeManager;
+    $this->serializer = $serializer;
+    $this->resourceTypeRepository = $resourceTypeRepository;
+    $this->entityRepository = $entityRepository;
   }
 
+  /**
+   * {@inheritDoc}
+   */
+  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
+    return new static(
+      $configuration,
+      $plugin_id,
+      $plugin_definition,
+      $container->get('menu.link_tree'),
+      $container->get('module_handler'),
+      $container->get('entity_type.manager'),
+      $container->get('jsonapi.serializer'),
+      $container->get('jsonapi.resource_type.repository'),
+      $container->get('entity.repository'),
+    );
+  }
 
   protected function getMenuItemResourceType(MenuLinkInterface $menuLink) {
     if ($this->moduleHandler->moduleExists('menu_item_extras')) {
@@ -119,6 +161,7 @@ class JsonApiMenuItemsFormat extends MenuItemsFormatBase {
         ->loadByProperties(['uuid' => $menuLinkEntityId])
       ;
       $menuLinkEntity = reset($query);
+      $menuLinkEntity = $this->entityRepository->getTranslationFromContext($menuLinkEntity);
       $items[] = ResourceObject::createFromEntity($resourceType, $menuLinkEntity);
 
       if ($menuTreeLink->subtree) {
diff --git a/src/Plugin/MenuItemsFormat/NestedMenuItemsFormat.php b/src/Plugin/MenuItemsFormat/NestedMenuItemsFormat.php
index 3b463c62229c8ef463e832eb0580f1c2044a5910..e304f31f4d936c6cade762e8fcbc8bb728fdae09 100644
--- a/src/Plugin/MenuItemsFormat/NestedMenuItemsFormat.php
+++ b/src/Plugin/MenuItemsFormat/NestedMenuItemsFormat.php
@@ -3,15 +3,24 @@
 namespace Drupal\jsonapi_menu\Plugin\MenuItemsFormat;
 
 use Drupal\Core\Cache\CacheableMetadata;
+use Drupal\Core\Entity\EntityFieldManagerInterface;
+use Drupal\Core\Entity\EntityRepositoryInterface;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Field\FieldConfigInterface;
 use Drupal\Core\GeneratedUrl;
 use Drupal\Core\Menu\MenuLinkInterface;
 use Drupal\Core\Menu\MenuLinkTreeElement;
+use Drupal\Core\Menu\MenuLinkTreeInterface;
 use Drupal\Core\Menu\MenuTreeParameters;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\jsonapi\JsonApiResource\ResourceObject;
+use Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface;
 use Drupal\jsonapi_menu\Plugin\MenuItemsFormatBase;
 use Drupal\menu_link_content\MenuLinkContentInterface;
 use Drupal\system\MenuInterface;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\Serializer\SerializerInterface;
 
 /**
  * Plugin implementation of the 'nested' format.
@@ -20,7 +29,8 @@ use Drupal\system\MenuInterface;
  *   id = "nested"
  * )
  */
-class NestedMenuItemsFormat extends MenuItemsFormatBase {
+class NestedMenuItemsFormat extends MenuItemsFormatBase implements ContainerFactoryPluginInterface {
+
   /**
    * Drupal\Core\Menu\MenuLinkTreeInterface definition.
    *
@@ -72,16 +82,45 @@ class NestedMenuItemsFormat extends MenuItemsFormatBase {
 
   static array $resourceTypeCache = [];
 
-  public function __construct(array $configuration, $plugin_id, $plugin_definition) {
+  /**
+   * @param array $configuration
+   * @param $plugin_id
+   * @param $plugin_definition
+   * @param \Drupal\Core\Menu\MenuLinkTreeInterface $menuLinkTree
+   * @param \Drupal\Core\Extension\ModuleHandlerInterface $moduleHandler
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager
+   * @param \Symfony\Component\Serializer\SerializerInterface $serializer
+   * @param \Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface $resourceTypeRepository
+   * @param \Drupal\Core\Entity\EntityRepositoryInterface $entityRepository
+   * @param \Drupal\Core\Entity\EntityFieldManagerInterface $entityFieldManager
+   */
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, MenuLinkTreeInterface $menuLinkTree, ModuleHandlerInterface $moduleHandler, EntityTypeManagerInterface $entityTypeManager, SerializerInterface $serializer, ResourceTypeRepositoryInterface $resourceTypeRepository, EntityRepositoryInterface $entityRepository, EntityFieldManagerInterface $entityFieldManager) {
     parent::__construct($configuration, $plugin_id, $plugin_definition);
+    $this->menuLinkTree = $menuLinkTree;
+    $this->moduleHandler = $moduleHandler;
+    $this->entityTypeManager = $entityTypeManager;
+    $this->serializer = $serializer;
+    $this->resourceTypeRepository = $resourceTypeRepository;
+    $this->entityRepository = $entityRepository;
+    $this->entityFieldManager = $entityFieldManager;
+  }
 
-    $this->menuLinkTree = \Drupal::service('menu.link_tree');
-    $this->moduleHandler = \Drupal::service('module_handler');
-    $this->entityTypeManager = \Drupal::service('entity_type.manager');
-    $this->serializer = \Drupal::service('jsonapi.serializer');
-    $this->resourceTypeRepository = \Drupal::service('jsonapi.resource_type.repository');
-    $this->entityRepository = \Drupal::service('entity.repository');
-    $this->entityFieldManager = \Drupal::service('entity_field.manager');
+  /**
+   * {@inheritDoc}
+   */
+  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
+    return new static(
+      $configuration,
+      $plugin_id,
+      $plugin_definition,
+      $container->get('menu.link_tree'),
+      $container->get('module_handler'),
+      $container->get('entity_type.manager'),
+      $container->get('jsonapi.serializer'),
+      $container->get('jsonapi.resource_type.repository'),
+      $container->get('entity.repository'),
+      $container->get('entity_field.manager'),
+    );
   }
 
   /**
@@ -159,6 +198,7 @@ class NestedMenuItemsFormat extends MenuItemsFormatBase {
     if ($plugin === 'menu_link_content') {
       /* @var $menuLinkContentEntity MenuLinkContentInterface */
       $menuLinkContentEntity = $this->entityRepository->loadEntityByUuid('menu_link_content', $menuLinkEntityId);
+      $menuLinkContentEntity = $this->entityRepository->getTranslationFromContext($menuLinkContentEntity);
 
       $this->addMenuLinkContentFieldValues($menuLink, $menuLinkContentEntity, $data);
       $data['uri'] = $menuLinkContentEntity->link->uri;