diff --git a/core/includes/entity.inc b/core/includes/entity.inc
index 52ae51e..643575c 100644
--- a/core/includes/entity.inc
+++ b/core/includes/entity.inc
@@ -337,9 +337,6 @@ function entity_page_label(EntityInterface $entity, $langcode = NULL) {
  *   The entity to be rendered.
  * @param string $view_mode
  *   The view mode that should be used to display the entity.
- * @param string $langcode
- *   (optional) For which language the entity should be rendered, defaults to
- *   the current content language.
  * @param bool $reset
  *   (optional) Whether to reset the render cache for the requested entity.
  *   Defaults to FALSE.
@@ -357,12 +354,12 @@ function entity_page_label(EntityInterface $entity, $langcode = NULL) {
  * @see \Drupal\Core\Entity\EntityManagerInterface::getViewBuilder()
  * @see \Drupal\Core\Entity\EntityViewBuilderInterface::view()
  */
-function entity_view(EntityInterface $entity, $view_mode, $langcode = NULL, $reset = FALSE) {
+function entity_view(EntityInterface $entity, $view_mode, $reset = FALSE) {
   $render_controller = \Drupal::entityManager()->getViewBuilder($entity->getEntityTypeId());
   if ($reset) {
     $render_controller->resetCache(array($entity->id()));
   }
-  return $render_controller->view($entity, $view_mode, $langcode);
+  return $render_controller->view($entity, $view_mode);
 }
 
 /**
@@ -372,9 +369,6 @@ function entity_view(EntityInterface $entity, $view_mode, $langcode = NULL, $res
  *   The entities to be rendered, must be of the same type.
  * @param string $view_mode
  *   The view mode that should be used to display the entity.
- * @param string $langcode
- *   (optional) For which language the entity should be rendered, defaults to
- *   the current content language.
  * @param bool $reset
  *   (optional) Whether to reset the render cache for the requested entities.
  *   Defaults to FALSE.
@@ -394,12 +388,12 @@ function entity_view(EntityInterface $entity, $view_mode, $langcode = NULL, $res
  * @see \Drupal\Core\Entity\EntityManagerInterface::getViewBuilder()
  * @see \Drupal\Core\Entity\EntityViewBuilderInterface::viewMultiple()
  */
-function entity_view_multiple(array $entities, $view_mode, $langcode = NULL, $reset = FALSE) {
+function entity_view_multiple(array $entities, $view_mode, $reset = FALSE) {
   $render_controller = \Drupal::entityManager()->getViewBuilder(reset($entities)->getEntityTypeId());
   if ($reset) {
     $render_controller->resetCache(array_keys($entities));
   }
-  return $render_controller->viewMultiple($entities, $view_mode, $langcode);
+  return $render_controller->viewMultiple($entities, $view_mode);
 }
 
 /**
diff --git a/core/lib/Drupal/Core/Entity/Controller/EntityViewController.php b/core/lib/Drupal/Core/Entity/Controller/EntityViewController.php
index 8ddf063..d416e3a 100644
--- a/core/lib/Drupal/Core/Entity/Controller/EntityViewController.php
+++ b/core/lib/Drupal/Core/Entity/Controller/EntityViewController.php
@@ -91,17 +91,14 @@ public function buildTitle(array $page) {
    * @param string $view_mode
    *   (optional) The view mode that should be used to display the entity.
    *   Defaults to 'full'.
-   * @param string $langcode
-   *   (optional) For which language the entity should be rendered, defaults to
-   *   the current content language.
    *
    * @return array
    *   A render array as expected by drupal_render().
    */
-  public function view(EntityInterface $_entity, $view_mode = 'full', $langcode = NULL) {
+  public function view(EntityInterface $_entity, $view_mode = 'full') {
     $page = $this->entityManager
       ->getViewBuilder($_entity->getEntityTypeId())
-      ->view($_entity, $view_mode, $langcode);
+      ->view($_entity, $view_mode);
 
     $page['#pre_render'][] = [$this, 'buildTitle'];
     $page['#entity_type'] = $_entity->getEntityTypeId();
diff --git a/core/lib/Drupal/Core/Entity/EntityViewBuilder.php b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php
index 2fcdce5..bcfb7ef 100644
--- a/core/lib/Drupal/Core/Entity/EntityViewBuilder.php
+++ b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php
@@ -100,8 +100,8 @@ public static function createInstance(ContainerInterface $container, EntityTypeI
   /**
    * {@inheritdoc}
    */
-  public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL) {
-    $build_list = $this->viewMultiple(array($entity), $view_mode, $langcode);
+  public function view(EntityInterface $entity, $view_mode = 'full') {
+    $build_list = $this->viewMultiple(array($entity), $view_mode);
 
     // The default ::buildMultiple() #pre_render callback won't run, because we
     // extract a child element of the default renderable array. Thus we must
@@ -116,23 +116,21 @@ public function view(EntityInterface $entity, $view_mode = 'full', $langcode = N
   /**
    * {@inheritdoc}
    */
-  public function viewMultiple(array $entities = array(), $view_mode = 'full', $langcode = NULL) {
+  public function viewMultiple(array $entities = array(), $view_mode = 'full') {
     $build_list = array(
       '#sorted' => TRUE,
       '#pre_render' => array(array($this, 'buildMultiple')),
-      '#langcode' => $langcode ?: $this->languageManager->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(),
     );
     $weight = 0;
     foreach ($entities as $key => $entity) {
       // Ensure that from now on we are dealing with the proper translation
       // object.
-      $entity = $this->entityManager->getTranslationFromContext($entity, $langcode);
+      $entity = $this->entityManager->getTranslationFromContext($entity);
 
       // Set build defaults.
-      $entity_langcode = $entity->language()->getId();
-      $build_list[$key] = $this->getBuildDefaults($entity, $view_mode, $entity_langcode);
+      $build_list[$key] = $this->getBuildDefaults($entity, $view_mode);
       $entityType = $this->entityTypeId;
-      $this->moduleHandler()->alter(array($entityType . '_build_defaults', 'entity_build_defaults'), $build_list[$key], $entity, $view_mode, $entity_langcode);
+      $this->moduleHandler()->alter(array($entityType . '_build_defaults', 'entity_build_defaults'), $build_list[$key], $entity, $view_mode);
 
       $build_list[$key]['#weight'] = $weight++;
     }
@@ -147,22 +145,18 @@ public function viewMultiple(array $entities = array(), $view_mode = 'full', $la
    *   The entity for which the defaults should be provided.
    * @param string $view_mode
    *   The view mode that should be used.
-   * @param string $langcode
-   *   For which language the entity should be prepared, defaults to
-   *   the current content language.
    *
    * @return array
    */
-  protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langcode) {
+  protected function getBuildDefaults(EntityInterface $entity, $view_mode) {
     // Allow modules to change the view mode.
-    $context = array('langcode' => $langcode);
+    $context = [];
     $this->moduleHandler()->alter('entity_view_mode', $view_mode, $entity, $context);
 
     $build = array(
       '#theme' => $this->entityTypeId,
       "#{$this->entityTypeId}" => $entity,
       '#view_mode' => $view_mode,
-      '#langcode' => $langcode,
       // Collect cache defaults for this entity.
       '#cache' => array(
         'tags' => Cache::mergeTags($this->getCacheTags(), $entity->getCacheTags()),
@@ -185,7 +179,7 @@ protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langco
       );
 
       if ($entity instanceof TranslatableInterface && count($entity->getTranslationLanguages()) > 1) {
-        $build['#cache']['keys'][] = $langcode;
+        $build['#cache']['keys'][] = $entity->language()->getId();
       }
     }
 
@@ -211,10 +205,7 @@ protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langco
    * @see drupal_render()
    */
   public function build(array $build) {
-    $build_list = array(
-      '#langcode' => $build['#langcode'],
-    );
-    $build_list[] = $build;
+    $build_list = [$build];
     $build_list = $this->buildMultiple($build_list);
     return $build_list[0];
   }
@@ -240,7 +231,6 @@ public function build(array $build) {
   public function buildMultiple(array $build_list) {
     // Build the view modes and display objects.
     $view_modes = array();
-    $langcode = $build_list['#langcode'];
     $entity_type_key = "#{$this->entityTypeId}";
     $view_hook = "{$this->entityTypeId}_view";
 
@@ -259,16 +249,16 @@ public function buildMultiple(array $build_list) {
     // Build content for the displays represented by the entities.
     foreach ($view_modes as $view_mode => $view_mode_entities) {
       $displays = EntityViewDisplay::collectRenderDisplays($view_mode_entities, $view_mode);
-      $this->buildComponents($build_list, $view_mode_entities, $displays, $view_mode, $langcode);
+      $this->buildComponents($build_list, $view_mode_entities, $displays, $view_mode);
       foreach (array_keys($view_mode_entities) as $key) {
         // Allow for alterations while building, before rendering.
         $entity = $build_list[$key][$entity_type_key];
         $display = $displays[$entity->bundle()];
 
-        $this->moduleHandler()->invokeAll($view_hook, array(&$build_list[$key], $entity, $display, $view_mode, $langcode));
-        $this->moduleHandler()->invokeAll('entity_view', array(&$build_list[$key], $entity, $display, $view_mode, $langcode));
+        $this->moduleHandler()->invokeAll($view_hook, array(&$build_list[$key], $entity, $display, $view_mode));
+        $this->moduleHandler()->invokeAll('entity_view', array(&$build_list[$key], $entity, $display, $view_mode));
 
-        $this->alterBuild($build_list[$key], $entity, $display, $view_mode, $langcode);
+        $this->alterBuild($build_list[$key], $entity, $display, $view_mode);
 
         // Assign the weights configured in the display.
         // @todo: Once https://www.drupal.org/node/1875974 provides the missing
@@ -291,7 +281,7 @@ public function buildMultiple(array $build_list) {
   /**
    * {@inheritdoc}
    */
-  public function buildComponents(array &$build, array $entities, array $displays, $view_mode, $langcode = NULL) {
+  public function buildComponents(array &$build, array $entities, array $displays, $view_mode) {
     $entities_by_bundle = array();
     foreach ($entities as $id => $entity) {
       // Initialize the field item attributes for the fields being displayed.
@@ -335,11 +325,8 @@ public function buildComponents(array &$build, array $entities, array $displays,
    *   entity components.
    * @param string $view_mode
    *   The view mode that should be used to prepare the entity.
-   * @param string $langcode
-   *   (optional) For which language the entity should be prepared, defaults to
-   *   the current content language.
    */
-  protected function alterBuild(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode, $langcode = NULL) { }
+  protected function alterBuild(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode) { }
 
   /**
    * {@inheritdoc}
diff --git a/core/lib/Drupal/Core/Entity/EntityViewBuilderInterface.php b/core/lib/Drupal/Core/Entity/EntityViewBuilderInterface.php
index 0549060..87df69f 100644
--- a/core/lib/Drupal/Core/Entity/EntityViewBuilderInterface.php
+++ b/core/lib/Drupal/Core/Entity/EntityViewBuilderInterface.php
@@ -29,11 +29,8 @@
    *   configured for the entity components, keyed by bundle name.
    * @param string $view_mode
    *   The view mode in which the entity is being viewed.
-   * @param string $langcode
-   *   (optional) For which language the entity should be build, defaults to
-   *   the current content language.
    */
-  public function buildComponents(array &$build, array $entities, array $displays, $view_mode, $langcode = NULL);
+  public function buildComponents(array &$build, array $entities, array $displays, $view_mode);
 
   /**
    * Builds the render array for the provided entity.
@@ -42,9 +39,6 @@ public function buildComponents(array &$build, array $entities, array $displays,
    *   The entity to render.
    * @param string $view_mode
    *   (optional) The view mode that should be used to render the entity.
-   * @param string $langcode
-   *   (optional) For which language the entity should be rendered, defaults to
-   *   the current content language.
    *
    * @return array
    *   A render array for the entity.
@@ -55,7 +49,7 @@ public function buildComponents(array &$build, array $entities, array $displays,
    *   comment belongs to, or not passing one, and having the comment node not
    *   be available for loading.
    */
-  public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL);
+  public function view(EntityInterface $entity, $view_mode = 'full');
 
   /**
    * Builds the render array for the provided entities.
@@ -64,9 +58,6 @@ public function view(EntityInterface $entity, $view_mode = 'full', $langcode = N
    *   An array of entities implementing EntityInterface to view.
    * @param string $view_mode
    *   (optional) The view mode that should be used to render the entity.
-   * @param string $langcode
-   *   (optional) For which language the entity should be rendered, defaults to
-   *   the current content language.
    *
    * @return
    *   A render array for the entities, indexed by the same keys as the
@@ -78,7 +69,7 @@ public function view(EntityInterface $entity, $view_mode = 'full', $langcode = N
    *   comments belongs to, or not passing one, and having the comments node not
    *   be available for loading.
    */
-  public function viewMultiple(array $entities = array(), $view_mode = 'full', $langcode = NULL);
+  public function viewMultiple(array $entities = array(), $view_mode = 'full');
 
   /**
    * Resets the entity render cache.
diff --git a/core/lib/Drupal/Core/Entity/entity.api.php b/core/lib/Drupal/Core/Entity/entity.api.php
index f6ac384..7f20831 100644
--- a/core/lib/Drupal/Core/Entity/entity.api.php
+++ b/core/lib/Drupal/Core/Entity/entity.api.php
@@ -468,8 +468,8 @@
  * @endcode
  * Then, to build and render the entity:
  * @code
- * // You can omit the language ID if the default language is being used.
- * $build = $view_builder->view($entity, 'view_mode_name', $language->getId());
+ * // The current translation language is used.
+ * $build = $view_builder->view($entity, 'view_mode_name');
  * // $build is a render array.
  * $rendered = drupal_render($build);
  * @endcode
@@ -1232,8 +1232,6 @@ function hook_entity_query_alter(\Drupal\Core\Entity\Query\QueryInterface $query
  *   entity components.
  * @param $view_mode
  *   The view mode the entity is rendered in.
- * @param $langcode
- *   The language code used for rendering.
  *
  * The module may add elements to $build prior to rendering. The
  * structure of $build is a renderable array as expected by
@@ -1244,7 +1242,7 @@ function hook_entity_query_alter(\Drupal\Core\Entity\Query\QueryInterface $query
  *
  * @ingroup entity_crud
  */
-function hook_entity_view(array &$build, \Drupal\Core\Entity\EntityInterface $entity, \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display, $view_mode, $langcode) {
+function hook_entity_view(array &$build, \Drupal\Core\Entity\EntityInterface $entity, \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display, $view_mode) {
   // Only do the extra work if the component is configured to be displayed.
   // This assumes a 'mymodule_addition' extra field has been defined for the
   // entity bundle in hook_entity_extra_field_info().
@@ -1268,8 +1266,6 @@ function hook_entity_view(array &$build, \Drupal\Core\Entity\EntityInterface $en
  *   entity components.
  * @param $view_mode
  *   The view mode the entity is rendered in.
- * @param $langcode
- *   The language code used for rendering.
  *
  * The module may add elements to $build prior to rendering. The
  * structure of $build is a renderable array as expected by
@@ -1280,7 +1276,7 @@ function hook_entity_view(array &$build, \Drupal\Core\Entity\EntityInterface $en
  *
  * @ingroup entity_crud
  */
-function hook_ENTITY_TYPE_view(array &$build, \Drupal\Core\Entity\EntityInterface $entity, \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display, $view_mode, $langcode) {
+function hook_ENTITY_TYPE_view(array &$build, \Drupal\Core\Entity\EntityInterface $entity, \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display, $view_mode) {
   // Only do the extra work if the component is configured to be displayed.
   // This assumes a 'mymodule_addition' extra field has been defined for the
   // entity bundle in hook_entity_extra_field_info().
@@ -1443,8 +1439,6 @@ function hook_entity_view_mode_alter(&$view_mode, Drupal\Core\Entity\EntityInter
  *   The entity that is being viewed.
  * @param string $view_mode
  *   The view_mode that is to be used to display the entity.
- * @param string $langcode
- *   The code of the language $entity is accessed in.
  *
  * @see drupal_render()
  * @see \Drupal\Core\Entity\EntityViewBuilder
@@ -1452,7 +1446,7 @@ function hook_entity_view_mode_alter(&$view_mode, Drupal\Core\Entity\EntityInter
  *
  * @ingroup entity_crud
  */
-function hook_ENTITY_TYPE_build_defaults_alter(array &$build, \Drupal\Core\Entity\EntityInterface $entity, $view_mode, $langcode) {
+function hook_ENTITY_TYPE_build_defaults_alter(array &$build, \Drupal\Core\Entity\EntityInterface $entity, $view_mode) {
 
 }
 
@@ -1469,8 +1463,6 @@ function hook_ENTITY_TYPE_build_defaults_alter(array &$build, \Drupal\Core\Entit
  *   The entity that is being viewed.
  * @param string $view_mode
  *   The view_mode that is to be used to display the entity.
- * @param string $langcode
- *   The code of the language $entity is accessed in.
  *
  * @see drupal_render()
  * @see \Drupal\Core\Entity\EntityViewBuilder
@@ -1478,7 +1470,7 @@ function hook_ENTITY_TYPE_build_defaults_alter(array &$build, \Drupal\Core\Entit
  *
  * @ingroup entity_crud
  */
-function hook_entity_build_defaults_alter(array &$build, \Drupal\Core\Entity\EntityInterface $entity, $view_mode, $langcode) {
+function hook_entity_build_defaults_alter(array &$build, \Drupal\Core\Entity\EntityInterface $entity, $view_mode) {
 
 }
 
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php
index b98fc45..741f3ef 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php
@@ -134,7 +134,7 @@ public function viewElements(FieldItemListInterface $items, $langcode) {
       }
 
       if ($entity->id()) {
-        $elements[$delta] = entity_view($entity, $view_mode, $entity->language()->getId());
+        $elements[$delta] = entity_view($entity, $view_mode);
 
         // Add a resource attribute to set the mapping property's value to the
         // entity's url. Since we don't know what the markup of the entity will
diff --git a/core/modules/aggregator/src/FeedViewBuilder.php b/core/modules/aggregator/src/FeedViewBuilder.php
index d631790..a990b41 100644
--- a/core/modules/aggregator/src/FeedViewBuilder.php
+++ b/core/modules/aggregator/src/FeedViewBuilder.php
@@ -52,8 +52,8 @@ public static function createInstance(ContainerInterface $container, EntityTypeI
   /**
    * {@inheritdoc}
    */
-  public function buildComponents(array &$build, array $entities, array $displays, $view_mode, $langcode = NULL) {
-    parent::buildComponents($build, $entities, $displays, $view_mode, $langcode);
+  public function buildComponents(array &$build, array $entities, array $displays, $view_mode) {
+    parent::buildComponents($build, $entities, $displays, $view_mode);
 
     foreach ($entities as $id => $entity) {
       $bundle = $entity->bundle();
@@ -69,7 +69,7 @@ public function buildComponents(array &$build, array $entities, array $displays,
 
         $build[$id]['items'] = $this->entityManager
           ->getViewBuilder('aggregator_item')
-          ->viewMultiple($items, $view_mode, $langcode);
+          ->viewMultiple($items, $view_mode);
 
         if ($view_mode == 'full') {
           // Also add the pager.
diff --git a/core/modules/aggregator/src/ItemViewBuilder.php b/core/modules/aggregator/src/ItemViewBuilder.php
index c43cddd..1f0c23a 100644
--- a/core/modules/aggregator/src/ItemViewBuilder.php
+++ b/core/modules/aggregator/src/ItemViewBuilder.php
@@ -17,8 +17,8 @@ class ItemViewBuilder extends EntityViewBuilder {
   /**
    * {@inheritdoc}
    */
-  public function buildComponents(array &$build, array $entities, array $displays, $view_mode, $langcode = NULL) {
-    parent::buildComponents($build, $entities, $displays, $view_mode, $langcode);
+  public function buildComponents(array &$build, array $entities, array $displays, $view_mode) {
+    parent::buildComponents($build, $entities, $displays, $view_mode);
 
     foreach ($entities as $id => $entity) {
       $bundle = $entity->bundle();
diff --git a/core/modules/block/src/BlockViewBuilder.php b/core/modules/block/src/BlockViewBuilder.php
index f23979d..3baee2f 100644
--- a/core/modules/block/src/BlockViewBuilder.php
+++ b/core/modules/block/src/BlockViewBuilder.php
@@ -65,21 +65,21 @@ public static function createInstance(ContainerInterface $container, EntityTypeI
   /**
    * {@inheritdoc}
    */
-  public function buildComponents(array &$build, array $entities, array $displays, $view_mode, $langcode = NULL) {
+  public function buildComponents(array &$build, array $entities, array $displays, $view_mode) {
   }
 
   /**
    * {@inheritdoc}
    */
-  public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL) {
-    $build = $this->viewMultiple(array($entity), $view_mode, $langcode);
+  public function view(EntityInterface $entity, $view_mode = 'full') {
+    $build = $this->viewMultiple(array($entity), $view_mode);
     return reset($build);
   }
 
   /**
    * {@inheritdoc}
    */
-  public function viewMultiple(array $entities = array(), $view_mode = 'full', $langcode = NULL) {
+  public function viewMultiple(array $entities = array(), $view_mode = 'full') {
     /** @var \Drupal\block\BlockInterface[] $entities */
     $build = array();
     foreach ($entities as $entity) {
@@ -116,7 +116,7 @@ public function viewMultiple(array $entities = array(), $view_mode = 'full', $la
         // Assign a #lazy_builder callback, which will generate a #pre_render-
         // able block lazily (when necessary).
         $build[$entity_id] += [
-          '#lazy_builder' => [static::class . '::lazyBuilder', [$entity_id, $view_mode, $langcode]],
+          '#lazy_builder' => [static::class . '::lazyBuilder', [$entity_id, $view_mode]],
         ];
       }
     }
@@ -192,7 +192,7 @@ protected static function buildPreRenderableBlock($entity, ModuleHandlerInterfac
    * @return array
    *   A render array with a #pre_render callback to render the block.
    */
-  public static function lazyBuilder($entity_id, $view_mode, $langcode) {
+  public static function lazyBuilder($entity_id, $view_mode) {
     return static::buildPreRenderableBlock(entity_load('block', $entity_id), \Drupal::service('module_handler'));
   }
 
diff --git a/core/modules/block_content/src/BlockContentViewBuilder.php b/core/modules/block_content/src/BlockContentViewBuilder.php
index 915d690..976756f 100644
--- a/core/modules/block_content/src/BlockContentViewBuilder.php
+++ b/core/modules/block_content/src/BlockContentViewBuilder.php
@@ -19,15 +19,15 @@ class BlockContentViewBuilder extends EntityViewBuilder {
   /**
    * {@inheritdoc}
    */
-  public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL) {
-    return $this->viewMultiple(array($entity), $view_mode, $langcode)[0];
+  public function view(EntityInterface $entity, $view_mode = 'full') {
+    return $this->viewMultiple(array($entity), $view_mode)[0];
   }
 
   /**
    * {@inheritdoc}
    */
-  public function viewMultiple(array $entities = array(), $view_mode = 'full', $langcode = NULL) {
-    $build_list = parent::viewMultiple($entities, $view_mode, $langcode);
+  public function viewMultiple(array $entities = array(), $view_mode = 'full') {
+    $build_list = parent::viewMultiple($entities, $view_mode);
     // Apply the buildMultiple() #pre_render callback immediately, to make
     // bubbling of attributes and contextual links to the actual block work.
     // @see \Drupal\block\BlockViewBuilder::buildBlock()
@@ -38,8 +38,8 @@ public function viewMultiple(array $entities = array(), $view_mode = 'full', $la
   /**
    * {@inheritdoc}
    */
-  protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langcode) {
-    $build = parent::getBuildDefaults($entity, $view_mode, $langcode);
+  protected function getBuildDefaults(EntityInterface $entity, $view_mode) {
+    $build = parent::getBuildDefaults($entity, $view_mode);
     // The custom block will be rendered in the wrapped block template already
     // and thus has no entity template itself.
     unset($build['#theme']);
@@ -49,8 +49,8 @@ protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langco
   /**
    * {@inheritdoc}
    */
-  protected function alterBuild(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode, $langcode = NULL) {
-    parent::alterBuild($build, $entity, $display, $view_mode, $langcode);
+  protected function alterBuild(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode) {
+    parent::alterBuild($build, $entity, $display, $view_mode);
     // Add contextual links for this custom block.
     if (!$entity->isNew()) {
       $build['#contextual_links']['block_content'] = array(
diff --git a/core/modules/comment/comment.module b/core/modules/comment/comment.module
index d72772f..395f721 100644
--- a/core/modules/comment/comment.module
+++ b/core/modules/comment/comment.module
@@ -213,7 +213,7 @@ function comment_node_links_alter(array &$node_links, NodeInterface $node, array
 /**
  * Implements hook_entity_view().
  */
-function comment_entity_view(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode, $langcode) {
+function comment_entity_view(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode) {
   if ($entity instanceof FieldableEntityInterface && $view_mode == 'rss' && $display->getComponent('links')) {
     /** @var \Drupal\comment\CommentManagerInterface $comment_manager */
     $comment_manager = \Drupal::service('comment.manager');
@@ -262,7 +262,7 @@ function comment_node_view_alter(array &$build, EntityInterface $node, EntityVie
  *   Use \Drupal::entityManager()->getViewBuilder('comment')->view().
  */
 function comment_view(CommentInterface $comment, $view_mode = 'full', $langcode = NULL) {
-  return entity_view($comment, $view_mode, $langcode);
+  return entity_view($comment, $view_mode);
 }
 
 /**
@@ -424,7 +424,7 @@ function _comment_entity_uses_integer_id($entity_type_id) {
 /**
  * Implements hook_node_update_index().
  */
-function comment_node_update_index(EntityInterface $node, $langcode) {
+function comment_node_update_index(EntityInterface $node) {
   $index_comments = &drupal_static(__FUNCTION__);
 
   if ($index_comments === NULL) {
diff --git a/core/modules/comment/src/CommentViewBuilder.php b/core/modules/comment/src/CommentViewBuilder.php
index 66bb193..f17649e 100644
--- a/core/modules/comment/src/CommentViewBuilder.php
+++ b/core/modules/comment/src/CommentViewBuilder.php
@@ -62,8 +62,8 @@ public static function createInstance(ContainerInterface $container, EntityTypeI
   /**
    * {@inheritdoc}
    */
-  protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langcode) {
-    $build = parent::getBuildDefaults($entity, $view_mode, $langcode);
+  protected function getBuildDefaults(EntityInterface $entity, $view_mode) {
+    $build = parent::getBuildDefaults($entity, $view_mode);
 
     /** @var \Drupal\comment\CommentInterface $entity */
     // Store a threading field setting to use later in self::buildComponents().
@@ -88,7 +88,7 @@ protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langco
    * @throws \InvalidArgumentException
    *   Thrown when a comment is attached to an entity that no longer exists.
    */
-  public function buildComponents(array &$build, array $entities, array $displays, $view_mode, $langcode = NULL) {
+  public function buildComponents(array &$build, array $entities, array $displays, $view_mode) {
     /** @var \Drupal\comment\CommentInterface[] $entities */
     if (empty($entities)) {
       return;
@@ -101,7 +101,7 @@ public function buildComponents(array &$build, array $entities, array $displays,
     }
     $this->entityManager->getStorage('user')->loadMultiple(array_unique($uids));
 
-    parent::buildComponents($build, $entities, $displays, $view_mode, $langcode);
+    parent::buildComponents($build, $entities, $displays, $view_mode);
 
     // A counter to track the indentation level.
     $current_indent = 0;
@@ -136,7 +136,7 @@ public function buildComponents(array &$build, array $entities, array $displays,
           '#lazy_builder' => ['comment.lazy_builders:renderLinks', [
             $entity->id(),
             $view_mode,
-            $langcode,
+            $entity->language()->getId(),
             !empty($entity->in_preview),
           ]],
           '#create_placeholder' => TRUE,
@@ -166,8 +166,8 @@ public function buildComponents(array &$build, array $entities, array $displays,
   /**
    * {@inheritdoc}
    */
-  protected function alterBuild(array &$build, EntityInterface $comment, EntityViewDisplayInterface $display, $view_mode, $langcode = NULL) {
-    parent::alterBuild($build, $comment, $display, $view_mode, $langcode);
+  protected function alterBuild(array &$build, EntityInterface $comment, EntityViewDisplayInterface $display, $view_mode) {
+    parent::alterBuild($build, $comment, $display, $view_mode);
     if (empty($comment->in_preview)) {
       $prefix = '';
 
diff --git a/core/modules/contact/contact.module b/core/modules/contact/contact.module
index a3e47b3..46b131d 100644
--- a/core/modules/contact/contact.module
+++ b/core/modules/contact/contact.module
@@ -142,7 +142,7 @@ function contact_mail($key, &$message, $params) {
     case 'page_copy':
       $message['subject'] .= t('[@form] @subject', $variables, $options);
       $message['body'][] = t("@sender-name (@sender-url) sent a message using the contact form at @form-url.", $variables, $options);
-      $build = entity_view($contact_message, 'mail', $language->getId());
+      $build = entity_view($contact_message, 'mail');
       $message['body'][] = (string) \Drupal::service('renderer')->renderPlain($build);
       break;
 
@@ -161,7 +161,7 @@ function contact_mail($key, &$message, $params) {
       $message['body'][] = t('Hello @recipient-name,', $variables, $options);
       $message['body'][] = t("@sender-name (@sender-url) has sent you a message via your contact form at @site-name.", $variables, $options);
       $message['body'][] = t("If you don't want to receive such emails, you can change your settings at @recipient-edit-url.", $variables, $options);
-      $build = entity_view($contact_message, 'mail', $language->getId());
+      $build = entity_view($contact_message, 'mail');
       $message['body'][] = (string) \Drupal::service('renderer')->renderPlain($build);
       break;
   }
diff --git a/core/modules/contact/src/MessageViewBuilder.php b/core/modules/contact/src/MessageViewBuilder.php
index def70f9..fcf99a0 100644
--- a/core/modules/contact/src/MessageViewBuilder.php
+++ b/core/modules/contact/src/MessageViewBuilder.php
@@ -20,8 +20,8 @@ class MessageViewBuilder extends EntityViewBuilder {
   /**
    * {@inheritdoc}
    */
-  protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langcode) {
-    $build = parent::getBuildDefaults($entity, $view_mode, $langcode);
+  protected function getBuildDefaults(EntityInterface $entity, $view_mode) {
+    $build = parent::getBuildDefaults($entity, $view_mode);
     // The message fields are individually rendered into email templates, so
     // the entity has no template itself.
     unset($build['#theme']);
@@ -31,8 +31,8 @@ protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langco
   /**
    * {@inheritdoc}
    */
-  public function buildComponents(array &$build, array $entities, array $displays, $view_mode, $langcode = NULL) {
-    parent::buildComponents($build, $entities, $displays, $view_mode, $langcode);
+  public function buildComponents(array &$build, array $entities, array $displays, $view_mode) {
+    parent::buildComponents($build, $entities, $displays, $view_mode);
 
     foreach ($entities as $id => $entity) {
       // Add the message extra field, if enabled.
@@ -50,8 +50,8 @@ public function buildComponents(array &$build, array $entities, array $displays,
   /**
    * {@inheritdoc}
    */
-  public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL) {
-    $build = parent::view($entity, $view_mode, $langcode);
+  public function view(EntityInterface $entity, $view_mode = 'full') {
+    $build = parent::view($entity, $view_mode);
 
     if ($view_mode == 'mail') {
       // Convert field labels into headings.
diff --git a/core/modules/node/node.api.php b/core/modules/node/node.api.php
index 132f72a..55265d6 100644
--- a/core/modules/node/node.api.php
+++ b/core/modules/node/node.api.php
@@ -364,8 +364,6 @@ function hook_node_access(\Drupal\node\NodeInterface $node, $op, \Drupal\Core\Se
  *
  * @param \Drupal\node\NodeInterface $node
  *   The node being displayed in a search result.
- * @param string $langcode
- *   Language code of result being displayed.
  *
  * @return array
  *   Extra information to be displayed with search result. This information
@@ -378,7 +376,7 @@ function hook_node_access(\Drupal\node\NodeInterface $node, $op, \Drupal\Core\Se
  *
  * @ingroup entity_crud
  */
-function hook_node_search_result(\Drupal\node\NodeInterface $node, $langcode) {
+function hook_node_search_result(\Drupal\node\NodeInterface $node) {
   $rating = db_query('SELECT SUM(points) FROM {my_rating} WHERE nid = :nid', array('nid' => $node->id()))->fetchField();
   return array('rating' => \Drupal::translation()->formatPlural($rating, '1 point', '@count points'));
 }
@@ -391,15 +389,13 @@ function hook_node_search_result(\Drupal\node\NodeInterface $node, $langcode) {
  *
  * @param \Drupal\node\NodeInterface $node
  *   The node being indexed.
- * @param string $langcode
- *   Language code of the variant of the node being indexed.
  *
  * @return string
  *   Additional node information to be indexed.
  *
  * @ingroup entity_crud
  */
-function hook_node_update_index(\Drupal\node\NodeInterface $node, $langcode) {
+function hook_node_update_index(\Drupal\node\NodeInterface $node) {
   $text = '';
   $ratings = db_query('SELECT title, description FROM {my_ratings} WHERE nid = :nid', array(':nid' => $node->id()));
   foreach ($ratings as $rating) {
diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index bd9a403..84d5865 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -781,7 +781,7 @@ function node_get_recent($number = 10) {
  *   An array as expected by drupal_render().
  */
 function node_view(NodeInterface $node, $view_mode = 'full', $langcode = NULL) {
-  return entity_view($node, $view_mode, $langcode);
+  return entity_view($node, $view_mode);
 }
 
 /**
diff --git a/core/modules/node/src/NodeViewBuilder.php b/core/modules/node/src/NodeViewBuilder.php
index 3f3420c..dd7c045 100644
--- a/core/modules/node/src/NodeViewBuilder.php
+++ b/core/modules/node/src/NodeViewBuilder.php
@@ -21,13 +21,13 @@ class NodeViewBuilder extends EntityViewBuilder {
   /**
    * {@inheritdoc}
    */
-  public function buildComponents(array &$build, array $entities, array $displays, $view_mode, $langcode = NULL) {
+  public function buildComponents(array &$build, array $entities, array $displays, $view_mode) {
     /** @var \Drupal\node\NodeInterface[] $entities */
     if (empty($entities)) {
       return;
     }
 
-    parent::buildComponents($build, $entities, $displays, $view_mode, $langcode);
+    parent::buildComponents($build, $entities, $displays, $view_mode);
 
     foreach ($entities as $id => $entity) {
       $bundle = $entity->bundle();
@@ -38,7 +38,7 @@ public function buildComponents(array &$build, array $entities, array $displays,
           '#lazy_builder' => [get_called_class() . '::renderLinks', [
             $entity->id(),
             $view_mode,
-            $langcode,
+            $entity->language()->getId(),
             !empty($entity->in_preview),
           ]],
         );
@@ -60,8 +60,8 @@ public function buildComponents(array &$build, array $entities, array $displays,
   /**
    * {@inheritdoc}
    */
-  protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langcode) {
-    $defaults = parent::getBuildDefaults($entity, $view_mode, $langcode);
+  protected function getBuildDefaults(EntityInterface $entity, $view_mode) {
+    $defaults = parent::getBuildDefaults($entity, $view_mode);
 
     // Don't cache nodes that are in 'preview' mode.
     if (isset($defaults['#cache']) && isset($entity->in_preview)) {
@@ -148,9 +148,9 @@ protected static function buildLinks(NodeInterface $entity, $view_mode) {
   /**
    * {@inheritdoc}
    */
-  protected function alterBuild(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode, $langcode = NULL) {
+  protected function alterBuild(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode) {
     /** @var \Drupal\node\NodeInterface $entity */
-    parent::alterBuild($build, $entity, $display, $view_mode, $langcode);
+    parent::alterBuild($build, $entity, $display, $view_mode);
     if ($entity->id()) {
       $build['#contextual_links']['node'] = array(
         'route_parameters' =>array('node' => $entity->id()),
diff --git a/core/modules/node/src/Plugin/Search/NodeSearch.php b/core/modules/node/src/Plugin/Search/NodeSearch.php
index ecd6e86..41f3006 100644
--- a/core/modules/node/src/Plugin/Search/NodeSearch.php
+++ b/core/modules/node/src/Plugin/Search/NodeSearch.php
@@ -323,7 +323,7 @@ protected function prepareResults(StatementInterface $found) {
       // Render the node.
       /** @var \Drupal\node\NodeInterface $node */
       $node = $node_storage->load($item->sid)->getTranslation($item->langcode);
-      $build = $node_render->view($node, 'search_result', $item->langcode);
+      $build = $node_render->view($node, 'search_result');
 
       /** @var \Drupal\node\NodeTypeInterface $type*/
       $type = $this->entityManager->getStorage('node_type')->load($node->bundle());
@@ -333,9 +333,9 @@ protected function prepareResults(StatementInterface $found) {
 
       // Fetch comments for snippet.
       $rendered = $this->renderer->renderPlain($build);
-      $rendered .= ' ' . $this->moduleHandler->invoke('comment', 'node_update_index', array($node, $item->langcode));
+      $rendered .= ' ' . $this->moduleHandler->invoke('comment', 'node_update_index', array($node));
 
-      $extra = $this->moduleHandler->invokeAll('node_search_result', array($node, $item->langcode));
+      $extra = $this->moduleHandler->invokeAll('node_search_result', array($node));
 
       $language = $this->languageManager->getLanguage($item->langcode);
       $username = array(
@@ -442,21 +442,21 @@ protected function indexNode(NodeInterface $node) {
     foreach ($languages as $language) {
       $node = $node->getTranslation($language->getId());
       // Render the node.
-      $build = $node_render->view($node, 'search_index', $language->getId());
+      $build = $node_render->view($node, 'search_index');
 
       unset($build['#theme']);
 
       // Add the title to text so it is searchable.
       $build['search_title'] = [
         '#prefix' => '<h1>',
-        '#plain_text' => $node->label($language->getId()),
+        '#plain_text' => $node->label(),
         '#suffix' => '</h1>',
         '#weight' => -1000
       ];
       $text = $this->renderer->renderPlain($build);
 
       // Fetch extra data normally not visible.
-      $extra = $this->moduleHandler->invokeAll('node_update_index', array($node, $language->getId()));
+      $extra = $this->moduleHandler->invokeAll('node_update_index', [$node]);
       foreach ($extra as $t) {
         $text .= $t;
       }
diff --git a/core/modules/node/tests/modules/node_test/node_test.module b/core/modules/node/tests/modules/node_test/node_test.module
index b78e489..aa7d4dd 100644
--- a/core/modules/node/tests/modules/node_test/node_test.module
+++ b/core/modules/node/tests/modules/node_test/node_test.module
@@ -41,7 +41,7 @@ function node_test_node_view(array &$build, NodeInterface $node, EntityViewDispl
 /**
  * Implements hook_ENTITY_TYPE_build_defaults_alter() for node entities.
  */
-function node_test_node_build_defaults_alter(array &$build, NodeInterface &$node, $view_mode = 'full', $langcode = NULL) {
+function node_test_node_build_defaults_alter(array &$build, NodeInterface &$node, $view_mode = 'full') {
   if ($view_mode == 'rss') {
     $node->rss_namespaces['xmlns:drupaltest'] = 'http://example.com/test-namespace';
   }
diff --git a/core/modules/system/tests/modules/entity_test/src/EntityTestViewBuilder.php b/core/modules/system/tests/modules/entity_test/src/EntityTestViewBuilder.php
index e1042e9..6ba30d1 100644
--- a/core/modules/system/tests/modules/entity_test/src/EntityTestViewBuilder.php
+++ b/core/modules/system/tests/modules/entity_test/src/EntityTestViewBuilder.php
@@ -20,8 +20,8 @@ class EntityTestViewBuilder extends EntityViewBuilder {
   /**
    * {@inheritdoc}
    */
-  protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langcode) {
-    $build = parent::getBuildDefaults($entity, $view_mode, $langcode);
+  protected function getBuildDefaults(EntityInterface $entity, $view_mode) {
+    $build = parent::getBuildDefaults($entity, $view_mode);
     unset($build['#theme']);
     return $build;
   }
@@ -29,8 +29,8 @@ protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langco
   /**
    * {@inheritdoc}
    */
-  public function buildComponents(array &$build, array $entities, array $displays, $view_mode, $langcode = NULL) {
-    parent::buildComponents($build, $entities, $displays, $view_mode, $langcode);
+  public function buildComponents(array &$build, array $entities, array $displays, $view_mode) {
+    parent::buildComponents($build, $entities, $displays, $view_mode);
 
     foreach ($entities as $id => $entity) {
       $build[$id]['label'] = array(
diff --git a/core/modules/system/tests/modules/entity_test/src/EntityTestViewBuilderOverriddenView.php b/core/modules/system/tests/modules/entity_test/src/EntityTestViewBuilderOverriddenView.php
index 8d44386..a712c47 100644
--- a/core/modules/system/tests/modules/entity_test/src/EntityTestViewBuilderOverriddenView.php
+++ b/core/modules/system/tests/modules/entity_test/src/EntityTestViewBuilderOverriddenView.php
@@ -17,7 +17,7 @@ class EntityTestViewBuilderOverriddenView extends EntityTestViewBuilder {
   /**
    * {@inheritdoc}
    */
-  public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL) {
+  public function view(EntityInterface $entity, $view_mode = 'full') {
     $build = [];
     $build[$entity->id()]['#plain_text'] = $entity->label();
     return $build;
@@ -26,10 +26,10 @@ public function view(EntityInterface $entity, $view_mode = 'full', $langcode = N
   /**
    * {@inheritdoc}
    */
-  public function viewMultiple(array $entities = [], $view_mode = 'full', $langcode = NULL) {
+  public function viewMultiple(array $entities = [], $view_mode = 'full') {
     $build = [];
     foreach ($entities as $key => $entity) {
-      $build[$key] = $this->view($entity, $view_mode, $langcode);
+      $build[$key] = $this->view($entity, $view_mode);
     }
     return $build;
   }
diff --git a/core/modules/taxonomy/src/TermViewBuilder.php b/core/modules/taxonomy/src/TermViewBuilder.php
index 767529c..efd4374 100644
--- a/core/modules/taxonomy/src/TermViewBuilder.php
+++ b/core/modules/taxonomy/src/TermViewBuilder.php
@@ -19,8 +19,8 @@ class TermViewBuilder extends EntityViewBuilder {
   /**
    * {@inheritdoc}
    */
-  protected function alterBuild(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode, $langcode = NULL) {
-    parent::alterBuild($build, $entity, $display, $view_mode, $langcode);
+  protected function alterBuild(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode) {
+    parent::alterBuild($build, $entity, $display, $view_mode);
     $build['#contextual_links']['taxonomy_term'] = array(
       'route_parameters' => array('taxonomy_term' => $entity->id()),
       'metadata' => array('changed' => $entity->getChangedTime()),
diff --git a/core/modules/taxonomy/taxonomy.module b/core/modules/taxonomy/taxonomy.module
index daae443..1af7a91 100644
--- a/core/modules/taxonomy/taxonomy.module
+++ b/core/modules/taxonomy/taxonomy.module
@@ -188,7 +188,7 @@ function taxonomy_check_vocabulary_hierarchy(VocabularyInterface $vocabulary, $c
  *   A $page element suitable for use by drupal_render().
  */
 function taxonomy_term_view(Term $term, $view_mode = 'full', $langcode = NULL) {
-  return entity_view($term, $view_mode, $langcode);
+  return entity_view($term, $view_mode);
 }
 
 /**
diff --git a/core/modules/text/src/TextProcessed.php b/core/modules/text/src/TextProcessed.php
index d41cb92..197b28c 100644
--- a/core/modules/text/src/TextProcessed.php
+++ b/core/modules/text/src/TextProcessed.php
@@ -41,7 +41,7 @@ public function __construct(DataDefinitionInterface $definition, $name = NULL, T
   /**
    * Implements \Drupal\Core\TypedData\TypedDataInterface::getValue().
    */
-  public function getValue($langcode = NULL) {
+  public function getValue() {
     if ($this->processed !== NULL) {
       return $this->processed;
     }
diff --git a/core/modules/tour/src/TourViewBuilder.php b/core/modules/tour/src/TourViewBuilder.php
index caccf15..ca2936d 100644
--- a/core/modules/tour/src/TourViewBuilder.php
+++ b/core/modules/tour/src/TourViewBuilder.php
@@ -19,7 +19,7 @@ class TourViewBuilder extends EntityViewBuilder {
   /**
    * {@inheritdoc}
    */
-  public function viewMultiple(array $entities = array(), $view_mode = 'full', $langcode = NULL) {
+  public function viewMultiple(array $entities = array(), $view_mode = 'full') {
     /** @var \Drupal\tour\TourInterface[] $entities */
     $build = array();
     foreach ($entities as $entity_id => $entity) {
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index 7782954..28335a7 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -882,7 +882,7 @@ function user_delete_multiple(array $uids) {
  *   An array as expected by drupal_render().
  */
 function user_view($account, $view_mode = 'full', $langcode = NULL) {
-  return entity_view($account, $view_mode, $langcode);
+  return entity_view($account, $view_mode);
 }
 
 /**
