diff --git a/core/modules/contact/src/Entity/Message.php b/core/modules/contact/src/Entity/Message.php
index 158e576..f9670c1 100644
--- a/core/modules/contact/src/Entity/Message.php
+++ b/core/modules/contact/src/Entity/Message.php
@@ -29,7 +29,8 @@
  *   admin_permission = "administer contact forms",
  *   entity_keys = {
  *     "bundle" = "contact_form",
- *     "uuid" = "uuid"
+ *     "uuid" = "uuid",
+ *     "langcode" = "langcode"
  *   },
  *   bundle_entity_type = "contact_form",
  *   field_ui_base_route = "entity.contact_form.edit_form",
diff --git a/core/modules/language/language.module b/core/modules/language/language.module
index 342e730..495b377 100644
--- a/core/modules/language/language.module
+++ b/core/modules/language/language.module
@@ -463,12 +463,12 @@ function language_form_alter(&$form, FormStateInterface $form_state) {
   // Content entity forms may have added a langcode field. But content language
   // configuration should decide if it should be exposed or not in the forms.
   $form_object = $form_state->getFormObject();
-  if ($form_object instanceof ContentEntityFormInterface) {
+  if ($form_object instanceof ContentEntityFormInterface && $form_object->getEntity()->getEntityType()->hasKey('langcode')) {
     /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
     $entity = $form_object->getEntity();
     $entity_type = $entity->getEntityType();
     $langcode_key = $entity_type->getKey('langcode');
-    if (isset($form[$langcode_key]) && $entity_type->isTranslatable()) {
+    if (isset($form[$langcode_key])) {
       $language_configuration = ContentLanguageSettings::loadByEntityTypeBundle($entity->getEntityTypeId(), $entity->bundle());
       $form[$langcode_key]['#access'] = $language_configuration->isLanguageAlterable();
     }
