diff --git a/core/modules/content_translation/content_translation.module b/core/modules/content_translation/content_translation.module
index 4e29f4c..8622e07 100644
--- a/core/modules/content_translation/content_translation.module
+++ b/core/modules/content_translation/content_translation.module
@@ -15,7 +15,6 @@
 use Drupal\Core\Session\AccountInterface;
 use Drupal\Core\TypedData\TranslatableInterface;
 use Drupal\field\Entity\FieldInstanceConfig;
-use Drupal\node\NodeInterface;
 use Symfony\Component\HttpFoundation\Request;
 
 /**
@@ -190,15 +189,17 @@ function content_translation_field_info_alter(&$info) {
 }
 
 /**
- * Implements hook_entity_operation_alter().
+ * Implements hook_entity_operation().
  */
-function content_translation_entity_operation_alter(array &$operations, \Drupal\Core\Entity\EntityInterface $entity) {
-  // @todo Use an access permission.
-  if ($entity instanceof NodeInterface && $entity->isTranslatable()) {
+function content_translation_entity_operation(EntityInterface $entity) {
+  $operations = array();
+  if ($entity->hasLinkTemplate('drupal:content-translation-overview') && content_translation_translate_access($entity)) {
     $operations['translate'] = array(
       'title' => t('Translate'),
+      'weight' => 50,
     ) + $entity->urlInfo('drupal:content-translation-overview')->toArray();
   }
+  return $operations;
 }
 
 /**
