diff --git a/core/modules/content_translation/content_translation.admin.inc b/core/modules/content_translation/content_translation.admin.inc
index 2c55fa9..91caba3 100644
--- a/core/modules/content_translation/content_translation.admin.inc
+++ b/core/modules/content_translation/content_translation.admin.inc
@@ -87,13 +87,15 @@ function _content_translation_form_language_content_settings_form_alter(array &$
     $entity_type = $entity_manager->getDefinition($entity_type_id);
     $storage_definitions = $entity_type instanceof ContentEntityTypeInterface ? $entity_manager->getFieldStorageDefinitions($entity_type_id) : array();
 
-    $entity_type_translatable = $entity_type->isTranslatable();
+    $entity_type_translatable = $content_translation_manager->isSupported($entity_type_id);
     foreach (entity_get_bundles($entity_type_id) as $bundle => $bundle_info) {
       // Here we do not want the widget to be altered and hold also the "Enable
       // translation" checkbox, which would be redundant. Hence we add this key
-      // to be able to skip alterations.
+      // to be able to skip alterations. Alter the title and display the message
+      // about UI integration.
       $form['settings'][$entity_type_id][$bundle]['settings']['language']['#content_translation_skip_alter'] = TRUE;
       if (!$entity_type_translatable) {
+        $form['settings'][$entity_type_id]['#title'] = t('@label (Translation is not supported).', array('@label' => $entity_type->getLabel()));
         continue;
       }
 
diff --git a/core/modules/content_translation/content_translation.module b/core/modules/content_translation/content_translation.module
index 93d73f9..78a1bc8 100644
--- a/core/modules/content_translation/content_translation.module
+++ b/core/modules/content_translation/content_translation.module
@@ -92,6 +92,10 @@ function content_translation_language_types_info_alter(array &$language_types) {
  * assumed. Every translation handler must implement
  * \Drupal\content_translation\ContentTranslationHandlerInterface.
  *
+ * By default, entity types that do not have a canonical link template can not
+ * be enabled for translation. Entity types can skip this check by setting the
+ * "content_translation_ui_skip" key to true.
+ *
  * To implement its business logic the content translation UI relies on various
  * metadata items describing the translation state. The default implementation
  * is provided by \Drupal\content_translation\ContentTranslationMetadataWrapper,
diff --git a/core/modules/content_translation/src/ContentTranslationManager.php b/core/modules/content_translation/src/ContentTranslationManager.php
index 11c93da..d0525e1 100644
--- a/core/modules/content_translation/src/ContentTranslationManager.php
+++ b/core/modules/content_translation/src/ContentTranslationManager.php
@@ -66,7 +66,7 @@ public function getTranslationMetadata(EntityInterface $translation) {
    */
   public function isSupported($entity_type_id) {
     $entity_type = $this->entityManager->getDefinition($entity_type_id);
-    return $entity_type->isTranslatable() && $entity_type->hasLinkTemplate('drupal:content-translation-overview');
+    return $entity_type->isTranslatable() && ($entity_type->hasLinkTemplate('drupal:content-translation-overview') || $entity_type->get('content_translation_ui_skip'));
   }
 
   /**
diff --git a/core/modules/content_translation/src/Tests/ContentTranslationUISkipTest.php b/core/modules/content_translation/src/Tests/ContentTranslationUISkipTest.php
new file mode 100644
index 0000000..62eb999
--- /dev/null
+++ b/core/modules/content_translation/src/Tests/ContentTranslationUISkipTest.php
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * @file
+ * Contains Drupal\content_translation\Tests\ContentTranslationUISkipTest.
+ */
+
+namespace Drupal\content_translation\Tests;
+
+use Drupal\simpletest\WebTestBase;
+
+/**
+ * Tests the content translation UI check skip.
+ *
+ * @group content_translation
+ */
+class ContentTranslationUISkipTest extends WebTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('content_translation_test', 'user', 'node');
+
+  /**
+   * Tests the content_translation_ui_skip key functionality.
+   */
+  function testUICheckSkip() {
+    $admin_user = $this->drupalCreateUser(array(
+      'translate any entity',
+      'administer content translation',
+      'administer languages'
+    ));
+    $this->drupalLogin($admin_user);
+    // Visit the content translation.
+    $this->drupalGet('admin/config/regional/content-language');
+
+    // Check the message regarding UI integration.
+    $this->assertText('Test entity - Translatable skip UI check');
+    $this->assertText('Test entity - Translatable check UI (Translations can not be enabled, UI integration is not possible)');
+  }
+
+}
diff --git a/core/modules/content_translation/tests/modules/content_translation_test/content_translation_test.info.yml b/core/modules/content_translation/tests/modules/content_translation_test/content_translation_test.info.yml
new file mode 100644
index 0000000..83ec8b8
--- /dev/null
+++ b/core/modules/content_translation/tests/modules/content_translation_test/content_translation_test.info.yml
@@ -0,0 +1,10 @@
+name: 'Content translation tests'
+type: module
+description: 'Provides content translation tests.'
+package: Testing
+version: VERSION
+core: 8.x
+dependencies:
+  - content_translation
+  - language
+  - entity_test
diff --git a/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatableNoUISkip.php b/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatableNoUISkip.php
new file mode 100644
index 0000000..eb9afc6
--- /dev/null
+++ b/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatableNoUISkip.php
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * @file
+ * Contains Drupal\content_translation_test\Entity\EntityTestTranslatableNoUISkip.
+ */
+
+namespace Drupal\content_translation_test\Entity;
+
+use Drupal\entity_test\Entity\EntityTest;
+
+/**
+ * Defines the test entity class.
+ *
+ * @ContentEntityType(
+ *   id = "entity_test_translatable_no_skip",
+ *   label = @Translation("Test entity - Translatable check UI"),
+ *   base_table = "entity_test_mul",
+ *   data_table = "entity_test_mul_property_data",
+ *  entity_keys = {
+ *     "id" = "id",
+ *     "uuid" = "uuid",
+ *     "bundle" = "type",
+ *     "label" = "name",
+ *     "langcode" = "langcode",
+ *   },
+ *   translatable = TRUE,
+ * )
+ */
+class EntityTestTranslatableNoUISkip extends EntityTest {
+
+}
diff --git a/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatableUISkip.php b/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatableUISkip.php
new file mode 100644
index 0000000..0573e46
--- /dev/null
+++ b/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatableUISkip.php
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ * @file
+ * Contains Drupal\content_translation_test\Entity\EntityTestTranslatableUISkip.
+ */
+
+namespace Drupal\content_translation_test\Entity;
+
+use Drupal\entity_test\Entity\EntityTest;
+
+/**
+ * Defines the test entity class.
+ *
+ * @ContentEntityType(
+ *   id = "entity_test_translatable_UI_skip",
+ *   label = @Translation("Test entity - Translatable skip UI check"),
+ *   base_table = "entity_test_mul",
+ *   data_table = "entity_test_mul_property_data",
+ *  entity_keys = {
+ *     "id" = "id",
+ *     "uuid" = "uuid",
+ *     "bundle" = "type",
+ *     "label" = "name",
+ *     "langcode" = "langcode",
+ *   },
+ *   translatable = TRUE,
+ *   content_translation_ui_skip = TRUE,
+ * )
+ */
+class EntityTestTranslatableUISkip extends EntityTest {
+
+}
+diff --git a/core/modules/content_translation/src/Tests/ContentTranslationUISkipTest.php b/core/modules/content_translation/src/Tests/ContentTranslationUISkipTest.php
+new file mode 100644
+index 0000000..62eb999
+--- /dev/null
++++ b/core/modules/content_translation/src/Tests/ContentTranslationUISkipTest.php
+@@ -0,0 +1,44 @@
++<?php
++
++/**
++ * @file
++ * Contains Drupal\content_translation\Tests\ContentTranslationUISkipTest.
++ */
++
++namespace Drupal\content_translation\Tests;
++
++use Drupal\simpletest\WebTestBase;
++
++/**
++ * Tests the content translation UI check skip.
++ *
++ * @group content_translation
++ */
++class ContentTranslationUISkipTest extends WebTestBase {
++
++  /**
++   * Modules to enable.
++   *
++   * @var array
++   */
++  public static $modules = array('content_translation_test', 'user', 'node');
++
++  /**
++   * Tests the content_translation_ui_skip key functionality.
++   */
++  function testUICheckSkip() {
++    $admin_user = $this->drupalCreateUser(array(
++      'translate any entity',
++      'administer content translation',
++      'administer languages'
++    ));
++    $this->drupalLogin($admin_user);
++    // Visit the content translation.
++    $this->drupalGet('admin/config/regional/content-language');
++
++    // Check the message regarding UI integration.
++    $this->assertText('Test entity - Translatable skip UI check');
++    $this->assertText('Test entity - Translatable check UI (Translations can not be enabled, UI integration is not possible)');
++  }
++
++}
+diff --git a/core/modules/content_translation/tests/modules/content_translation_test/content_translation_test.info.yml b/core/modules/content_translation/tests/modules/content_translation_test/content_translation_test.info.yml
+new file mode 100644
+index 0000000..83ec8b8
+--- /dev/null
++++ b/core/modules/content_translation/tests/modules/content_translation_test/content_translation_test.info.yml
+@@ -0,0 +1,10 @@
++name: 'Content translation tests'
++type: module
++description: 'Provides content translation tests.'
++package: Testing
++version: VERSION
++core: 8.x
++dependencies:
++  - content_translation
++  - language
++  - entity_test
+diff --git a/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatable.php b/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatable.php
+new file mode 100644
+index 0000000..d02135f
+--- /dev/null
++++ b/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatable.php
+@@ -0,0 +1,32 @@
++<?php
++
++/**
++ * @file
++ * Contains Drupal\content_translation_test\Entity\EntityTestTranslatable.
++ */
++
++namespace Drupal\content_translation_test\Entity;
++
++use Drupal\entity_test\Entity\EntityTest;
++
++/**
++ * Defines the test entity class.
++ *
++ * @ContentEntityType(
++ *   id = "entity_test_translatable_no_skip",
++ *   label = @Translation("Test entity - Translatable check UI"),
++ *   base_table = "entity_test_mul",
++ *   data_table = "entity_test_mul_property_data",
++ *  entity_keys = {
++ *     "id" = "id",
++ *     "uuid" = "uuid",
++ *     "bundle" = "type",
++ *     "label" = "name",
++ *     "langcode" = "langcode",
++ *   },
++ *   translatable = TRUE,
++ * )
++ */
++class EntityTestTranslatable extends EntityTest {
++
++}
+diff --git a/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatableUISkip.php b/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatableUISkip.php
+new file mode 100644
+index 0000000..0573e46
+--- /dev/null
++++ b/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatableUISkip.php
+@@ -0,0 +1,33 @@
++<?php
++
++/**
++ * @file
++ * Contains Drupal\content_translation_test\Entity\EntityTestTranslatableUISkip.
++ */
++
++namespace Drupal\content_translation_test\Entity;
++
++use Drupal\entity_test\Entity\EntityTest;
++
++/**
++ * Defines the test entity class.
++ *
++ * @ContentEntityType(
++ *   id = "entity_test_translatable_UI_skip",
++ *   label = @Translation("Test entity - Translatable skip UI check"),
++ *   base_table = "entity_test_mul",
++ *   data_table = "entity_test_mul_property_data",
++ *  entity_keys = {
++ *     "id" = "id",
++ *     "uuid" = "uuid",
++ *     "bundle" = "type",
++ *     "label" = "name",
++ *     "langcode" = "langcode",
++ *   },
++ *   translatable = TRUE,
++ *   content_translation_ui_skip = TRUE,
++ * )
++ */
++class EntityTestTranslatableUISkip extends EntityTest {
++
++}
+diff --git a/core/modules/content_translation/content_translation.module b/core/modules/content_translation/content_translation.module
+index 93d73f9..78a1bc8 100644
+--- a/core/modules/content_translation/content_translation.module
++++ b/core/modules/content_translation/content_translation.module
+@@ -92,6 +92,10 @@ function content_translation_language_types_info_alter(array &$language_types) {
+  * assumed. Every translation handler must implement
+  * \Drupal\content_translation\ContentTranslationHandlerInterface.
+  *
++ * By default, entity types that do not have a canonical link template can not
++ * be enabled for translation. Entity types can skip this check by setting the
++ * "content_translation_ui_skip" key to true.
++ *
+  * To implement its business logic the content translation UI relies on various
+  * metadata items describing the translation state. The default implementation
+  * is provided by \Drupal\content_translation\ContentTranslationMetadataWrapper,
+diff --git a/core/modules/content_translation/src/ContentTranslationManager.php b/core/modules/content_translation/src/ContentTranslationManager.php
+index 11c93da..d0525e1 100644
+--- a/core/modules/content_translation/src/ContentTranslationManager.php
++++ b/core/modules/content_translation/src/ContentTranslationManager.php
+@@ -66,7 +66,7 @@ public function getTranslationMetadata(EntityInterface $translation) {
+    */
+   public function isSupported($entity_type_id) {
+     $entity_type = $this->entityManager->getDefinition($entity_type_id);
+-    return $entity_type->isTranslatable() && $entity_type->hasLinkTemplate('drupal:content-translation-overview');
++    return $entity_type->isTranslatable() && ($entity_type->hasLinkTemplate('drupal:content-translation-overview') || $entity_type->get('content_translation_ui_skip'));
+   }
+ 
+   /**
+diff --git a/core/modules/content_translation/src/Tests/ContentTranslationUISkipTest.php b/core/modules/content_translation/src/Tests/ContentTranslationUISkipTest.php
+new file mode 100644
+index 0000000..62eb999
+--- /dev/null
++++ b/core/modules/content_translation/src/Tests/ContentTranslationUISkipTest.php
+@@ -0,0 +1,44 @@
++<?php
++
++/**
++ * @file
++ * Contains Drupal\content_translation\Tests\ContentTranslationUISkipTest.
++ */
++
++namespace Drupal\content_translation\Tests;
++
++use Drupal\simpletest\WebTestBase;
++
++/**
++ * Tests the content translation UI check skip.
++ *
++ * @group content_translation
++ */
++class ContentTranslationUISkipTest extends WebTestBase {
++
++  /**
++   * Modules to enable.
++   *
++   * @var array
++   */
++  public static $modules = array('content_translation_test', 'user', 'node');
++
++  /**
++   * Tests the content_translation_ui_skip key functionality.
++   */
++  function testUICheckSkip() {
++    $admin_user = $this->drupalCreateUser(array(
++      'translate any entity',
++      'administer content translation',
++      'administer languages'
++    ));
++    $this->drupalLogin($admin_user);
++    // Visit the content translation.
++    $this->drupalGet('admin/config/regional/content-language');
++
++    // Check the message regarding UI integration.
++    $this->assertText('Test entity - Translatable skip UI check');
++    $this->assertText('Test entity - Translatable check UI (Translations can not be enabled, UI integration is not possible)');
++  }
++
++}
+diff --git a/core/modules/content_translation/tests/modules/content_translation_test/content_translation_test.info.yml b/core/modules/content_translation/tests/modules/content_translation_test/content_translation_test.info.yml
+new file mode 100644
+index 0000000..83ec8b8
+--- /dev/null
++++ b/core/modules/content_translation/tests/modules/content_translation_test/content_translation_test.info.yml
+@@ -0,0 +1,10 @@
++name: 'Content translation tests'
++type: module
++description: 'Provides content translation tests.'
++package: Testing
++version: VERSION
++core: 8.x
++dependencies:
++  - content_translation
++  - language
++  - entity_test
+diff --git a/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatable.php b/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatable.php
+new file mode 100644
+index 0000000..d02135f
+--- /dev/null
++++ b/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatable.php
+@@ -0,0 +1,32 @@
++<?php
++
++/**
++ * @file
++ * Contains Drupal\content_translation_test\Entity\EntityTestTranslatable.
++ */
++
++namespace Drupal\content_translation_test\Entity;
++
++use Drupal\entity_test\Entity\EntityTest;
++
++/**
++ * Defines the test entity class.
++ *
++ * @ContentEntityType(
++ *   id = "entity_test_translatable_no_skip",
++ *   label = @Translation("Test entity - Translatable check UI"),
++ *   base_table = "entity_test_mul",
++ *   data_table = "entity_test_mul_property_data",
++ *  entity_keys = {
++ *     "id" = "id",
++ *     "uuid" = "uuid",
++ *     "bundle" = "type",
++ *     "label" = "name",
++ *     "langcode" = "langcode",
++ *   },
++ *   translatable = TRUE,
++ * )
++ */
++class EntityTestTranslatable extends EntityTest {
++
++}
+diff --git a/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatableUISkip.php b/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatableUISkip.php
+new file mode 100644
+index 0000000..0573e46
+--- /dev/null
++++ b/core/modules/content_translation/tests/modules/content_translation_test/src/Entity/EntityTestTranslatableUISkip.php
+@@ -0,0 +1,33 @@
++<?php
++
++/**
++ * @file
++ * Contains Drupal\content_translation_test\Entity\EntityTestTranslatableUISkip.
++ */
++
++namespace Drupal\content_translation_test\Entity;
++
++use Drupal\entity_test\Entity\EntityTest;
++
++/**
++ * Defines the test entity class.
++ *
++ * @ContentEntityType(
++ *   id = "entity_test_translatable_UI_skip",
++ *   label = @Translation("Test entity - Translatable skip UI check"),
++ *   base_table = "entity_test_mul",
++ *   data_table = "entity_test_mul_property_data",
++ *  entity_keys = {
++ *     "id" = "id",
++ *     "uuid" = "uuid",
++ *     "bundle" = "type",
++ *     "label" = "name",
++ *     "langcode" = "langcode",
++ *   },
++ *   translatable = TRUE,
++ *   content_translation_ui_skip = TRUE,
++ * )
++ */
++class EntityTestTranslatableUISkip extends EntityTest {
++
++}
