diff --git a/colossal_menu.install b/colossal_menu.install
index fb852b8..8ae89c2 100644
--- a/colossal_menu.install
+++ b/colossal_menu.install
@@ -50,4 +50,4 @@ function colossal_menu_schema() {
       'primary key' => ['ancestor', 'descendant'],
     ],
   ];
-}
+}
\ No newline at end of file
diff --git a/colossal_menu.routing.yml b/colossal_menu.routing.yml
index fe7d24a..54fcb64 100644
--- a/colossal_menu.routing.yml
+++ b/colossal_menu.routing.yml
@@ -39,7 +39,7 @@ entity.colossal_menu_link.add_form:
     _entity_create_access: 'colossal_menu_link:{colossal_menu_link_type}'
 
 entity.colossal_menu_link.canonical:
-  path: '/admin/structure/colossal_menu/{colossal_menu}/link/{colossal_menu_link}'
+  path: '/admin/structure/colossal_menu/link/{colossal_menu_link}'
   defaults:
     _entity_form: 'colossal_menu_link.edit'
   options:
diff --git a/colossal_menu.services.yml b/colossal_menu.services.yml
index 506e9db..24be013 100644
--- a/colossal_menu.services.yml
+++ b/colossal_menu.services.yml
@@ -16,3 +16,4 @@ services:
       - '@menu.active_trail'
       - '@controller_resolver'
       - '@entity.manager'
+      - '@language_manager'
diff --git a/src/Entity/Link.php b/src/Entity/Link.php
index 9527ebf..66c4fcc 100644
--- a/src/Entity/Link.php
+++ b/src/Entity/Link.php
@@ -42,6 +42,8 @@ use Drupal\link\LinkItemInterface;
  *     "access" = "Drupal\colossal_menu\LinkAccessControlHandler",
  *   },
  *   base_table = "colossal_menu_link",
+ *   data_table = "colossal_menu_link_data",
+ *   translatable = TRUE,
  *   admin_permission = "administer link entities",
  *   entity_keys = {
  *     "id" = "id",
@@ -51,10 +53,10 @@ use Drupal\link\LinkItemInterface;
  *     "langcode" = "langcode",
  *   },
  *   links = {
- *     "canonical" = "/admin/structure/colossal_menu/{colossal_menu}/link/{colossal_menu_link}",
+ *     "canonical" = "/admin/structure/colossal_menu/link/{colossal_menu_link}",
  *     "add-form" = "/admin/structure/colossal_menu/{colossal_menu}/link/add",
- *     "edit-form" = "/admin/structure/colossal_menu/{colossal_menu}/link/{colossal_menu_link}",
- *     "delete-form" = "/admin/structure/colossal_menu/{colossal_menu}/link/{colossal_menu_link}/delete",
+ *     "edit-form" = "/admin/structure/colossal_menu/link/{colossal_menu_link}",
+ *     "delete-form" = "/admin/structure/colossal_menu/link/{colossal_menu_link}/delete",
  *   },
  *   bundle_entity_type = "colossal_menu_link_type",
  *   field_ui_base_route = "entity.colossal_menu_link_type.edit_form"
@@ -502,20 +504,7 @@ class Link extends ContentEntityBase implements LinkInterface {
    * {@inheritdoc}
    */
   public function getTranslateRoute() {
-    return $this->getEditRoute();
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function urlRouteParameters($rel) {
-    $params = parent::urlRouteParameters($rel);
-
-    if (in_array($rel, ['canonical', 'edit-form', 'delete-form'])) {
-      $params['colossal_menu'] = $this->getMenuName();
-    }
-
-    return $params;
+    return $this->urlInfo('drupal:content-translation-overview');
   }
 
   /**
diff --git a/src/Form/MenuForm.php b/src/Form/MenuForm.php
index 7048c81..7b3726d 100644
--- a/src/Form/MenuForm.php
+++ b/src/Form/MenuForm.php
@@ -305,6 +305,12 @@ class MenuForm extends EntityForm {
         'url' => $link->getEditRoute(),
         'query' => $this->getDestinationArray(),
       ];
+
+      $operations['translate'] = [
+        'title' => $this->t('Translate'),
+        'url' => $link->getTranslateRoute(),
+        'query' => $this->getDestinationArray()
+      ];
     }
     if ($link->access('delete')) {
       $operations['delete'] = [
diff --git a/src/Menu/MenuLinkTree.php b/src/Menu/MenuLinkTree.php
index c9a4284..2b96400 100644
--- a/src/Menu/MenuLinkTree.php
+++ b/src/Menu/MenuLinkTree.php
@@ -11,6 +11,7 @@ use Drupal\Core\Access\AccessibleInterface;
 use Drupal\Component\Utility\Html;
 use Drupal\Core\Controller\ControllerResolverInterface;
 use Drupal\Core\Entity\EntityManagerInterface;
+use Drupal\Core\Language\LanguageManagerInterface;
 use Drupal\Core\Menu\MenuActiveTrailInterface;
 use Drupal\Core\Menu\MenuLinkTreeElement;
 use Drupal\Core\Menu\MenuLinkTree as CoreMenuLinkTree;
@@ -30,6 +31,11 @@ class MenuLinkTree extends CoreMenuLinkTree {
   protected $entityManager;
 
   /**
+   * @var \Drupal\Core\Language\LanguageManagerInterface
+   */
+  protected $languageManager;
+
+  /**
    * Constructs a \Drupal\Core\Menu\MenuLinkTree object.
    *
    * @param \Drupal\Core\Menu\MenuTreeStorageInterface $tree_storage
@@ -45,12 +51,14 @@ class MenuLinkTree extends CoreMenuLinkTree {
                               RouteProviderInterface $route_provider,
                               MenuActiveTrailInterface $menu_active_trail,
                               ControllerResolverInterface $controller_resolver,
-                              EntityManagerInterface $entity_manager) {
+                              EntityManagerInterface $entity_manager,
+                              LanguageManagerInterface $language_manager) {
     $this->treeStorage = $tree_storage;
     $this->routeProvider = $route_provider;
     $this->menuActiveTrail = $menu_active_trail;
     $this->controllerResolver = $controller_resolver;
     $this->entityManager = $entity_manager;
+    $this->languageManager = $language_manager;
   }
 
 
@@ -64,8 +72,15 @@ class MenuLinkTree extends CoreMenuLinkTree {
       // Build a MenuLinkTreeElement out of the menu tree link definition:
       // transform the tree link definition into a link definition and store
       // tree metadata.
+      /** @var \Drupal\colossal_menu\Entity\Link $link */
+      $link = $element['link'];
+
+      if ($link->hasTranslation($this->languageManager->getCurrentLanguage()->getId())) {
+        $link = $link->getTranslation($this->languageManager->getCurrentLanguage()->getId());
+      }
+
       $tree[$key] = new MenuLinkTreeElement(
-        $element['link'],
+        $link,
         (bool) $element['has_children'],
         (int) $element['depth'],
         (bool) $element['in_active_trail'],
@@ -115,7 +130,8 @@ class MenuLinkTree extends CoreMenuLinkTree {
         $item['has_link'] = FALSE;
       }
 
-      $item['content'] = $this->entityManager->getViewBuilder($link->getEntityTypeId())->view($link, 'default');
+      $item['content'] = $this->entityManager->getViewBuilder($link->getEntityTypeId())
+        ->view($link, 'default');
       if (!empty($item['below'])) {
         $this->addItemContent($item['below']);
       }
diff --git a/src/Menu/MenuTreeStorage.php b/src/Menu/MenuTreeStorage.php
index 284f247..4e60e54 100644
--- a/src/Menu/MenuTreeStorage.php
+++ b/src/Menu/MenuTreeStorage.php
@@ -152,7 +152,7 @@ class MenuTreeStorage implements MenuTreeStorageInterface {
       ->orderBy('t.depth', 'ASC')
       ->orderBy('e.weight', 'ASC');
 
-    $query->innerJoin($this->storage->getEntityType()->get('base_table'), 'e', 't.ancestor = e.id');
+    $query->innerJoin($this->storage->getEntityType()->get('data_table'), 'e', 't.ancestor = e.id');
 
     if ($parameters->root) {
       $query->condition('t.ancestor', $parameters->root);
@@ -327,7 +327,7 @@ class MenuTreeStorage implements MenuTreeStorageInterface {
       ->condition('e.menu', $menu_name)
       ->orderBy('t.depth', 'ASC')
       ->orderBy('e.weight', 'ASC');
-    $query->innerJoin($this->storage->getEntityType()->get('base_table'), 'e', 't.ancestor = e.id');
+    $query->innerJoin($this->storage->getEntityType()->get('data_table'), 'e', 't.ancestor = e.id');
     return $query->execute()->fetchCol();
   }
 
@@ -359,7 +359,7 @@ class MenuTreeStorage implements MenuTreeStorageInterface {
    * {@inheritdoc}
    */
   public function getMenuNames() {
-    return $this->connection->select($this->storage->getEntityType()->get('base_table'), 'e')
+    return $this->connection->select($this->storage->getEntityType()->get('data_table'), 'e')
       ->distinct()
       ->fields('e', ['menu'])
       ->execute()
@@ -370,7 +370,7 @@ class MenuTreeStorage implements MenuTreeStorageInterface {
    * {@inheritdoc}
    */
   public function countMenuLinks($menu_name = NULL) {
-    $query = $this->connection->select($this->storage->getEntityType()->get('base_table'), 'e')
+    $query = $this->connection->select($this->storage->getEntityType()->get('data_table'), 'e')
       ->count();
 
     if ($menu_name) {
