diff --git a/modules/language/language.post_update.php b/modules/language/language.post_update.php index 47defe12db7..9f7e5bb1d05 100644 --- a/modules/language/language.post_update.php +++ b/modules/language/language.post_update.php @@ -5,6 +5,9 @@ * Post update functions for Language module. */ +use Drupal\Core\Config\Entity\ConfigEntityUpdater; +use Drupal\Core\Entity\Display\EntityViewDisplayInterface; + /** * Implements hook_removed_post_updates(). */ @@ -13,3 +16,32 @@ function language_removed_post_updates() { 'language_post_update_language_select_widget' => '9.0.0', ]; } + +/** + * Set language form display component as plain text and with label above. + */ +function language_post_update_language_component_plain_text(&$sandbox = []) { + $config_entity_updater = \Drupal::classResolver(ConfigEntityUpdater::class); + + $callback = function (EntityViewDisplayInterface $view_display) { + // Only update node view modes. + if ($view_display->getTargetEntityTypeId() !== 'node') { + return FALSE; + } + // Update language component if present. + if ($view_display->getComponent('langcode')) { + // Set label above as it was. + $langcode['label'] = 'above'; + // Set to show it as plain text. + $langcode['settings'] = [ + 'link_to_entity' => FALSE, + 'native_language' => FALSE, + ]; + $view_display->setComponent('langcode', $langcode); + return TRUE; + } + return FALSE; + }; + + $config_entity_updater->update($sandbox, 'entity_view_display', $callback); +} diff --git a/modules/node/src/NodeViewBuilder.php b/modules/node/src/NodeViewBuilder.php index c10a75b71cd..7c32789a2b4 100644 --- a/modules/node/src/NodeViewBuilder.php +++ b/modules/node/src/NodeViewBuilder.php @@ -41,16 +41,6 @@ class NodeViewBuilder extends EntityViewBuilder implements TrustedCallbackInterf ]; } - // Add Language field text element to node render array. - if ($display->getComponent('langcode')) { - $build[$id]['langcode'] = [ - '#type' => 'item', - '#title' => t('Language'), - '#markup' => $entity->language()->getName(), - '#prefix' => '