diff --git a/src/Access/GroupMenuItemTranslateAccess.php b/src/Access/GroupMenuItemTranslateAccess.php
new file mode 100644
index 0000000..f5f6ae4
--- /dev/null
+++ b/src/Access/GroupMenuItemTranslateAccess.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Drupal\group_content_menu\Access;
+
+use Drupal\Core\Access\AccessResult;
+use Drupal\Core\Routing\Access\AccessInterface;
+use Drupal\Core\Session\AccountInterface;
+use Drupal\group\Access\GroupAccessResult;
+
+/**
+ * Checks access for displaying administer menu pages.
+ */
+class GroupMenuItemTranslateAccess implements AccessInterface {
+  /**
+   * {@inheritdoc}
+   */
+  public function access(AccountInterface $account) {
+    $parameters = \Drupal::routeMatch()->getParameters();
+    $group = $parameters->get('group');
+    if (!$parameters->has('group')) {
+      return AccessResult::neutral();
+    }
+    $groupAccess = groupAccessResult::allowedIfHasGroupPermission($group, $this->currentUser, 'manage group_content_menu menu items translation');
+    //dump($groupAccess->isAllowed());
+    if($groupAccess->isAllowed()) {
+      return AccessResult::allowed();
+    }
+    return AccessResult::neutral();
+  }
+}
diff --git a/src/Controller/GroupContentTranslationController.php b/src/Controller/GroupContentTranslationController.php
new file mode 100644
index 0000000..8737a99
--- /dev/null
+++ b/src/Controller/GroupContentTranslationController.php
@@ -0,0 +1,61 @@
+<?php
+
+namespace Drupal\group_content_menu\Controller;
+
+use Drupal\content_translation\Controller\ContentTranslationController;
+use Drupal\Core\Routing\RouteMatchInterface;
+
+class GroupContentTranslationController extends ContentTranslationController {
+
+  public function overview(RouteMatchInterface $route_match, $entity_type_id = NULL) {
+    $overview =  parent::overview($route_match, $entity_type_id);
+    $entity = $route_match->getParameter('group_content_menu');
+    $original = $entity->getUntranslated()->language()->getId();
+    $destination = ['destination' => \Drupal::service('path.current')->getPath()];//\Drupal::destination()->getAsArray();
+    $options = [
+      'query' => $destination,
+    ];
+    foreach($overview['content_translation_overview']['#rows'] as $key => $row) {
+      if(!empty($row['3']['data']['#links']['add']['url'])) {
+        /** @var \Drupal\Core\Url $origin_add_url */
+        $origin_add_url = $row['3']['data']['#links']['add']['url'];
+        $menu_add_link = $origin_add_url->getRouteParameters();
+        $menu_og_lang = $origin_add_url->getOptions();
+        $options['language'] = $menu_og_lang['language'];
+        $add_url = $entity->toUrl('translate-menu-add-link', $options)
+          ->setRouteParameter('source', $original)
+          ->setRouteParameter('target', $menu_add_link['target'])
+          ->setRouteParameter('menu_link_content', $menu_add_link['menu_link_content']);
+        $overview['content_translation_overview']['#rows'][$key]['3']['data']['#links']['add']['title'] = $this->t('Add');
+        $overview['content_translation_overview']['#rows'][$key]['3']['data']['#links']['add']['url'] = $add_url;
+      }
+      if(!empty($row['3']['data']['#links']['edit']['url'])) {
+        /** @var \Drupal\Core\Url $origin_edit_url */
+        $origin_edit_url = $row['3']['data']['#links']['edit']['url'];
+        $menu_add_link = $origin_edit_url->getRouteParameters();
+        $menu_og_lang = $origin_edit_url->getOptions();
+        $options['language'] = $menu_og_lang['language'];
+        $edit_url = $entity->toUrl('translate-menu-edit-link', $options)
+          ->setRouteParameter('menu_link_content', $menu_add_link['menu_link_content'])
+          ->setRouteParameter('language', $menu_add_link['language']);
+        $overview['content_translation_overview']['#rows'][$key]['3']['data']['#links']['edit']['title'] = $this->t('Edit');
+        $overview['content_translation_overview']['#rows'][$key]['3']['data']['#links']['edit']['url'] = $edit_url;
+      }
+      if(!empty($row['3']['data']['#links']['delete']['url'])) {
+        /** @var \Drupal\Core\Url $origin_delete_url */
+        $origin_delete_url = $row['3']['data']['#links']['delete']['url'];
+        $menu_delete_link = $origin_delete_url->getRouteParameters();
+        $menu_og_lang = $origin_delete_url->getOptions();
+        $options['language'] = $menu_og_lang['language'];
+        $delete_url = $entity->toUrl('delete-menu-link', $options)
+          ->setRouteParameter('menu_link_content', $menu_delete_link['menu_link_content'])
+          ->setRouteParameter('language', $menu_delete_link['language']);
+        $overview['content_translation_overview']['#rows'][$key]['3']['data']['#links']['delete']['title'] = $this->t('Delete');
+        $overview['content_translation_overview']['#rows'][$key]['3']['data']['#links']['delete']['url'] = $delete_url;
+      }
+    }
+    return $overview;
+  }
+
+
+}
diff --git a/src/GroupMenuItemTranslateAccessHandler.php b/src/GroupMenuItemTranslateAccessHandler.php
new file mode 100644
index 0000000..73a522d
--- /dev/null
+++ b/src/GroupMenuItemTranslateAccessHandler.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace Drupal\group_content_menu;
+
+use Drupal\content_translation\ContentTranslationHandler;
+use Drupal\Core\Access\AccessResult;
+use Drupal\Core\Entity\EntityInterface;
+use Drupal\Core\Routing\RouteMatchInterface;
+use Drupal\group\Access\GroupAccessResult;
+use Symfony\Component\Routing\Route;
+
+class GroupMenuItemTranslateAccessHandler extends ContentTranslationHandler {
+  public function getTranslationAccess(EntityInterface $entity, $op) {
+    $parameters = \Drupal::routeMatch()->getParameters();
+    $group = $parameters->get('group');
+    if (!$parameters->has('group')) {
+      return AccessResult::neutral();
+    }
+    $groupAccess = groupAccessResult::allowedIfHasGroupPermission($group, $this->currentUser, 'manage group_content_menu menu items translation');
+    //dump($groupAccess->isAllowed());
+    if($groupAccess->isAllowed()) {
+      return AccessResult::allowed();
+    }
+    return parent::getTranslationAccess($entity, $op); // TODO: Change the autogenerated stub
+  }
+
+}
diff --git a/src/Routing/GroupContentMenuRouteSubscriber.php b/src/Routing/GroupContentMenuRouteSubscriber.php
new file mode 100644
index 0000000..3b7ef12
--- /dev/null
+++ b/src/Routing/GroupContentMenuRouteSubscriber.php
@@ -0,0 +1,36 @@
+<?php
+
+namespace Drupal\group_content_menu\Routing;
+
+use Drupal\Core\Routing\RouteSubscriberBase;
+use Drupal\Core\Routing\RoutingEvents;
+use Symfony\Component\Routing\RouteCollection;
+
+/**
+ * Listens to the dynamic route events.
+ */
+class GroupContentMenuRouteSubscriber extends RouteSubscriberBase {
+  /**
+   * @param RouteCollection $collection
+   */
+  public function alterRoutes(RouteCollection $collection) {
+    if ($route = $collection->get('entity.menu_link_content.content_translation_add')) {
+      $route->setRequirements(['_custom_access' => '\Drupal\group_content_menu\Access\GroupMenuItemTranslateAccess::access']);
+    }
+    if ($route = $collection->get('entity.menu_link_content.content_translation_edit')) {
+      $route->setRequirements(['_custom_access' => '\Drupal\group_content_menu\Access\GroupMenuItemTranslateAccess::access']);
+    }
+    if ($route = $collection->get('entity.menu_link_content.content_translation_delete')) {
+      $route->setRequirements(['_custom_access' => '\Drupal\group_content_menu\Access\GroupMenuItemTranslateAccess::access']);
+    }
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getSubscribedEvents(): array {
+    // Run after menu_admin_per_menu, which has priority -220.
+    $events[RoutingEvents::ALTER] = ['onAlterRoutes', -230];
+    return $events;
+  }
+}
