diff --git a/core/modules/content_translation/content_translation.admin.inc b/core/modules/content_translation/content_translation.admin.inc
index d812652..cbf38ea 100644
--- a/core/modules/content_translation/content_translation.admin.inc
+++ b/core/modules/content_translation/content_translation.admin.inc
@@ -87,11 +87,16 @@ 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();
+    $form['settings'][$entity_type_id]['#translatable'] = $entity_type_translatable;
     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.
       $form['settings'][$entity_type_id][$bundle]['settings']['language']['#content_translation_skip_alter'] = TRUE;
+      if (!$entity_type_translatable) {
+        continue;
+      }
 
       $fields = $entity_manager->getFieldDefinitions($entity_type_id, $bundle);
       if ($fields) {
@@ -138,13 +143,12 @@ function _content_translation_form_language_content_settings_form_alter(array &$
 function _content_translation_preprocess_language_content_settings_table(&$variables) {
   // Alter the 'build' variable injecting the translation settings if the user
   // has the required permission.
-  if (!\Drupal::currentUser()->hasPermission('administer content translation')) {
+  $element = $variables['element'];
+  if (empty($element['#translatable']) || !\Drupal::currentUser()->hasPermission('administer content translation')) {
     return;
   }
 
-  $element = $variables['element'];
   $build = &$variables['build'];
-
   array_unshift($build['#header'], array('data' => t('Translatable'), 'class' => array('translatable')));
   $rows = array();
 
diff --git a/core/modules/language/src/Form/ContentLanguageSettingsForm.php b/core/modules/language/src/Form/ContentLanguageSettingsForm.php
index 13d15e9..32ab95c 100644
--- a/core/modules/language/src/Form/ContentLanguageSettingsForm.php
+++ b/core/modules/language/src/Form/ContentLanguageSettingsForm.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\language\Form;
 
+use Drupal\Core\Entity\ContentEntityTypeInterface;
 use Drupal\Core\Entity\EntityManagerInterface;
 use Drupal\Core\Form\FormBase;
 use Drupal\Core\Form\FormStateInterface;
@@ -62,7 +63,8 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $bundles = $this->entityManager->getAllBundleInfo();
     $language_configuration = array();
     foreach ($entity_types as $entity_type_id => $entity_type) {
-      if (!$entity_type->isTranslatable()) {
+      $langcodeKey = $entity_type->getKey('langcode');
+      if (!$entity_type instanceof ContentEntityTypeInterface || empty($langcodeKey)) {
         continue;
       }
       $labels[$entity_type_id] = $entity_type->getLabel() ?: $entity_type_id;
