diff --git a/core/modules/field/field.api.php b/core/modules/field/field.api.php
index 5ba15c958b8b32dcab36b9ea732ced63e02abad7..33f2581aba74b30f060af272c33a750633fff27b 100644
--- a/core/modules/field/field.api.php
+++ b/core/modules/field/field.api.php
@@ -1085,7 +1085,7 @@ function hook_field_attach_purge(\Drupal\Core\Entity\EntityInterface $entity, $f
  *     $display_options argument and the view_mode element is set to '_custom'.
  *     See field_view_field() for more information on what its $display_options
  *     argument contains.
- *   - language: The language code used for rendering.
+ *   - langcode: The language code used for rendering.
  */
 function hook_field_attach_view_alter(&$output, $context) {
   // Append RDF term mappings on displayed taxonomy links.
diff --git a/core/modules/field/field.module b/core/modules/field/field.module
index db31d7790b8a5f61c27476caa5a31828b001e44d..13fb22cadf5382722dbee979b819e895424a0f14 100644
--- a/core/modules/field/field.module
+++ b/core/modules/field/field.module
@@ -866,6 +866,7 @@ function field_view_field(EntityInterface $entity, $field_name, $display_options
       'entity' => $entity,
       'view_mode' => $view_mode,
       'display_options' => $display_options,
+      'langcode' => $display_langcode,
     );
     drupal_alter('field_attach_view', $result, $context);
 
diff --git a/core/modules/field/lib/Drupal/field/Tests/DisplayApiTest.php b/core/modules/field/lib/Drupal/field/Tests/DisplayApiTest.php
index 09336417b145e11be262e5c16063dc7450f4481d..39d959403a81830af83ec74ff0987b39bc78e8b6 100644
--- a/core/modules/field/lib/Drupal/field/Tests/DisplayApiTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/DisplayApiTest.php
@@ -99,6 +99,7 @@ function testFieldViewField() {
     $setting = $display['settings']['test_formatter_setting_multiple'];
     $this->assertNoText($this->label, 'Label was not displayed.');
     $this->assertText('field_test_field_attach_view_alter', 'Alter fired, display passed.');
+    $this->assertText('field language is ' . LANGUAGE_NOT_SPECIFIED, 'Language is placed onto the context.');
     $array = array();
     foreach ($this->values as $delta => $value) {
       $array[] = $delta . ':' . $value['value'];
diff --git a/core/modules/field/tests/modules/field_test/field_test.module b/core/modules/field/tests/modules/field_test/field_test.module
index c7e3b1cda0c28f32452678f476a1e348aecac878..15b3ea5873a75151dcec49e3bc49ce9de65bb569 100644
--- a/core/modules/field/tests/modules/field_test/field_test.module
+++ b/core/modules/field/tests/modules/field_test/field_test.module
@@ -193,6 +193,10 @@ function field_test_field_attach_view_alter(&$output, $context) {
   if (!empty($context['display_options']['settings']['alter'])) {
     $output['test_field'][] = array('#markup' => 'field_test_field_attach_view_alter');
   }
+
+  if (isset($output['test_field'])) {
+    $output['test_field'][] = array('#markup' => 'field language is ' . $context['langcode']);
+  }
 }
 
 /**