diff --git a/core/modules/entity_reference/src/Plugin/Field/FieldFormatter/EntityReferenceFormatterBase.php b/core/modules/entity_reference/src/Plugin/Field/FieldFormatter/EntityReferenceFormatterBase.php
index e0b6e0e..c3f635b 100644
--- a/core/modules/entity_reference/src/Plugin/Field/FieldFormatter/EntityReferenceFormatterBase.php
+++ b/core/modules/entity_reference/src/Plugin/Field/FieldFormatter/EntityReferenceFormatterBase.php
@@ -8,6 +8,7 @@
 namespace Drupal\entity_reference\Plugin\Field\FieldFormatter;
 
 use Drupal\Core\Field\FormatterBase;
+use Drupal\Core\TypedData\TranslatableInterface;
 
 /**
  * Parent plugin for entity reference formatters.
@@ -58,6 +59,11 @@ public function prepareView(array $entities_items) {
     // Iterate through the fieldable entities again to attach the loaded data.
     foreach ($entities_items as $items) {
       $rekey = FALSE;
+      /* @var \Drupal\Core\Entity\Plugin\DataType\EntityAdapter $parent */
+      $parent = $items->getParent();
+      /* @var \Drupal\Core\Entity\ContentEntityBase $target_entity */
+      $parent_entity = $parent->getValue();
+      $active_langcode = $parent_entity->language()->getId();
       foreach ($items as $item) {
         // If we have a revision ID, the key uses it as well.
         $identifier = !empty($item->revision_id) ? $item->target_id . ':' . $item->revision_id : $item->target_id;
@@ -68,17 +74,26 @@ public function prepareView(array $entities_items) {
             $rekey = TRUE;
             continue;
           }
-
-          $item->entity = $target_entities[$identifier];
-
-          if (!$item->entity->access('view')) {
-            continue;
-          }
         }
         else {
           // This is an "auto_create" item, just leave the entity in place.
         }
 
+        $target_entity = $target_entities[$identifier];
+        if ($target_entity instanceof TranslatableInterface) {
+          /* @var \Drupal\Core\Entity\ContentEntityBase $entity */
+          if ($target_entity->hasTranslation($active_langcode)) {
+            $target_entity = $target_entity->getTranslation($active_langcode);
+          }
+          if ($target_entity->access('view')) {
+            $item->entity = $target_entity;
+          }
+        }
+
+        if (!$item->entity->access('view')) {
+          continue;
+        }
+
         // Mark item as accessible.
         $item->access = TRUE;
       }
diff --git a/core/modules/entity_reference/src/Tests/EntityReferenceFieldViewTest.php b/core/modules/entity_reference/src/Tests/EntityReferenceFieldViewTest.php
new file mode 100644
index 0000000..8d94f54
--- /dev/null
+++ b/core/modules/entity_reference/src/Tests/EntityReferenceFieldViewTest.php
@@ -0,0 +1,250 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\entity_reference\Tests\EntityReferenceFieldViewTest.
+ */
+
+namespace Drupal\entity_reference\Tests;
+
+use Drupal\language\Entity\ConfigurableLanguage;
+use Drupal\Core\Field\FieldStorageDefinitionInterface;
+use Drupal\simpletest\WebTestBase;
+
+/**
+ * Tests the translation of entity reference field display on nodes.
+ *
+ * @group entity_reference
+ */
+class EntityReferenceFieldViewTest extends WebTestBase {
+  /**
+   * The langcode of the source language.
+   *
+   * @var string
+   */
+  protected $baseLangcode = 'en';
+
+  /**
+   * Target langcode for translation.
+   *
+   * @var string
+   */
+  protected $translateToLangcode = 'hu';
+
+  /**
+   * The test entity type name.
+   *
+   * @var string
+   */
+  protected $testEntityTypeName = 'node';
+
+  /**
+   * Entity type which have the entity reference field.
+   *
+   * @var \Drupal\node\Entity\NodeType
+   */
+  protected $referrerType;
+
+  /**
+   * Entity type which can be referenced.
+   *
+   * @var \Drupal\node\Entity\NodeType
+   */
+  protected $referencedType;
+
+  /**
+   * The referrer entity.
+   *
+   * @var \Drupal\node\Entity\Node
+   */
+  protected $referrerEntity;
+
+  /**
+   * The entity to refer.
+   *
+   * @var \Drupal\node\Entity\Node
+   */
+  protected $referencedEntity;
+
+  /**
+   * The machine name of the entity reference field.
+   *
+   * @var string
+   */
+  protected $referenceFieldName = 'test_reference_field';
+
+  /**
+   * The original label of the referenced entity, used in assertions.
+   *
+   * @var string
+   */
+  protected $originalLabel = 'OriginalLabel';
+
+  /**
+   * The translated label of the referenced entity, used in assertions.
+   *
+   * @var string
+   */
+  protected $translatedLabel = 'TranslatedLabel';
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array(
+    'language',
+    'content_translation',
+    'entity_reference',
+    'node',
+  );
+
+  protected function setUp() {
+    parent::setUp();
+    $this->setUpLanguages();
+    $this->setUpContentTypes();
+    $this->enableTranslation();
+    $this->setUpEntityReferenceField();
+    $this->createContent();
+  }
+
+  /**
+   * Tests if the translated taxonomy term is displayed.
+   */
+  public function testTranslatedTaxonomyTermReferenceDisplay() {
+    $path = $this->referrerEntity->url();
+    $translation_path = $this->translateToLangcode . $path;
+
+    $this->drupalGet($path);
+    $this->assertText($this->originalLabel);
+    $this->assertNoText($this->translatedLabel);
+    $this->drupalGet($translation_path);
+    $this->assertNoText($this->originalLabel);
+    $this->assertText($this->translatedLabel);
+  }
+
+  /**
+   * Adds additional languages.
+   */
+  protected function setUpLanguages() {
+    ConfigurableLanguage::createFromLangcode($this->translateToLangcode)->save();
+  }
+
+  /**
+   * Creates a test subject contents, with translation.
+   */
+  protected function createContent() {
+    $this->referencedEntity = $this->createReferencedEntity();
+    $this->referrerEntity = $this->createReferrerEntity();
+  }
+
+  /**
+   * Enables translations where it needed.
+   */
+  protected function enableTranslation() {
+    // Enable translation for the entity types and ensure the change is picked
+    // up.
+    content_translation_set_config($this->testEntityTypeName, $this->referrerType->id(), 'enabled', TRUE);
+    content_translation_set_config($this->testEntityTypeName, $this->referencedType->id(), 'enabled', TRUE);
+    drupal_static_reset();
+    \Drupal::entityManager()->clearCachedDefinitions();
+    \Drupal::service('router.builder')->rebuild();
+  }
+
+  /**
+   * Adds term reference field for the article content type.
+   */
+  protected function setUpEntityReferenceField() {
+    entity_create('field_storage_config', array(
+      'field_name' => $this->referenceFieldName,
+      'entity_type' => $this->testEntityTypeName,
+      'type' => 'entity_reference',
+      'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
+      'translatable' => FALSE,
+      'settings' => array(
+        'allowed_values' => array(
+          array(
+            'target_type' => $this->testEntityTypeName,
+          ),
+        ),
+      ),
+    ))->save();
+
+    entity_create('field_config', array(
+      'field_name' => $this->referenceFieldName,
+      'bundle' => $this->referrerType->type,
+      'entity_type' => $this->testEntityTypeName,
+    ))
+    ->save();
+    entity_get_form_display($this->testEntityTypeName, $this->referrerType->id(), 'default')
+      ->setComponent($this->referenceFieldName, array(
+        'type' => 'entity_reference_autocomplete',
+      ))
+      ->save();
+    entity_get_display($this->testEntityTypeName, $this->referrerType->id(), 'default')
+      ->setComponent($this->referenceFieldName, array(
+        'type' => 'entity_reference_label',
+      ))
+      ->save();
+  }
+
+  /**
+   * Create content types.
+   */
+  protected function setUpContentTypes() {
+    $this->referrerType = $this->drupalCreateContentType(array(
+        'type' => 'referrer',
+        'name' => 'Referrer',
+      ));
+    $this->referencedType = $this->drupalCreateContentType(array(
+        'type' => 'referenced_page',
+        'name' => 'Referenced Page',
+      ));
+  }
+
+  /**
+   * Create the referenced entity.
+   */
+  protected function createReferencedEntity() {
+    /** @var \Drupal\node\Entity\Node $node */
+    $node = entity_create($this->testEntityTypeName, array(
+      'title' => $this->originalLabel,
+      'type' => $this->referencedType->id(),
+      'description' => array(
+        'value' => $this->randomMachineName(),
+        'format' => 'basic_html',
+      ),
+      'langcode' => $this->baseLangcode,
+    ));
+    $node->save();
+    $node->addTranslation($this->translateToLangcode, array(
+      'title' => $this->translatedLabel,
+    ));
+    $node->save();
+
+    return $node;
+  }
+
+  /**
+   * Create the referrer entity.
+   */
+  protected function createReferrerEntity() {
+    /** @var \Drupal\node\Entity\Node $node */
+    $node = entity_create($this->testEntityTypeName, array(
+      'title' => $this->randomMachineName(),
+      'type' => $this->referrerType->id(),
+      'description' => array(
+        'value' => $this->randomMachineName(),
+        'format' => 'basic_html',
+      ),
+      $this->referenceFieldName => array(array('target_id' => $this->referencedEntity->id())),
+      'langcode' => $this->baseLangcode,
+    ));
+    $node->save();
+    $node->addTranslation($this->translateToLangcode, array());
+    $node->save();
+
+    return $node;
+  }
+
+}
