diff --git a/core/modules/config_translation/config_translation.module b/core/modules/config_translation/config_translation.module index 0fc1170..d270e6f 100644 --- a/core/modules/config_translation/config_translation.module +++ b/core/modules/config_translation/config_translation.module @@ -140,14 +140,18 @@ function config_translation_config_translation_info(&$info) { * Implements hook_entity_operation_alter(). */ function config_translation_entity_operation_alter(array &$operations, EntityInterface $entity) { - if (\Drupal::currentUser()->hasPermission('translate configuration')) { - $uri = $entity->uri(); - $operations['translate'] = array( - 'title' => t('Translate'), - 'href' => $uri['path'] . '/translate', - 'options' => $uri['options'], - 'weight' => 50, - ); + $manager = \Drupal::service('plugin.manager.config_translation.mapper'); + if ($manager->getDefinition($entity->entityType())) { + $mapper = $manager->createInstance($entity->entityType()); + if (\Drupal::currentUser()->hasPermission('translate configuration') && $mapper->hasTranslatable()) { + $uri = $entity->uri(); + $operations['translate'] = array( + 'title' => t('Translate'), + 'href' => $uri['path'] . '/translate', + 'options' => $uri['options'], + 'weight' => 50, + ); + } } }