reverted: --- b/core/lib/Drupal/Core/Entity/Entity/EntityViewDisplay.php +++ a/core/lib/Drupal/Core/Entity/Entity/EntityViewDisplay.php @@ -248,7 +248,7 @@ $items = $grouped_items[$id]; /** @var \Drupal\Core\Access\AccessResultInterface $field_access */ $field_access = $items->access('view', NULL, TRUE); + $build_list[$id][$name] = $field_access->isAllowed() ? $formatter->view($items) : []; - $build_list[$id][$name] = $field_access->isAllowed() ? $formatter->view($items, $entity->language()->getId()) : []; // Apply the field access cacheability metadata to the render array. $this->renderer->addCacheableDependency($build_list[$id][$name], $field_access); } reverted: --- b/core/lib/Drupal/Core/Field/FormatterBase.php +++ a/core/lib/Drupal/Core/Field/FormatterBase.php @@ -8,7 +8,6 @@ namespace Drupal\Core\Field; use Drupal\Core\Form\FormStateInterface; -use Drupal\Core\Language\LanguageInterface; use Drupal\Core\Render\Element; /** @@ -77,11 +76,8 @@ /** * {@inheritdoc} */ + public function view(FieldItemListInterface $items) { + $elements = $this->viewElements($items); - public function view(FieldItemListInterface $items, $langcode = NULL) { - if (empty($langcode)) { - $langcode = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(); - } - $elements = $this->viewElements($items, $langcode); // If there are actual renderable children, use #theme => field, otherwise, // let access cacheability metadata pass through for correct bubbling. reverted: --- b/core/lib/Drupal/Core/Field/FormatterInterface.php +++ a/core/lib/Drupal/Core/Field/FormatterInterface.php @@ -69,29 +69,23 @@ * * @param \Drupal\Core\Field\FieldItemListInterface $items * The field values to be rendered. - * @param string $langcode - * (optional) The language that should be used to render the field. Defaults - * to the current content language. * * @return array * A renderable array for a themed field with its label and all its values. */ + public function view(FieldItemListInterface $items); - public function view(FieldItemListInterface $items, $langcode = NULL); /** * Builds a renderable array for a field value. * * @param \Drupal\Core\Field\FieldItemListInterface $items * The field values to be rendered. - * @param string $langcode - * (optional) The language that should be used to render the field. Defaults - * to the current content language. * * @return array * A renderable array for $items, as an array of child elements keyed by * consecutive numeric indexes starting from 0. */ + public function viewElements(FieldItemListInterface $items); - public function viewElements(FieldItemListInterface $items, $langcode = NULL); /** * Returns if the formatter can be used for the provided field. reverted: --- b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/BasicStringFormatter.php +++ a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/BasicStringFormatter.php @@ -31,7 +31,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { reverted: --- b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/BooleanFormatter.php +++ a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/BooleanFormatter.php @@ -116,7 +116,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = []; $formats = $this->getOutputFormats(); reverted: --- b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php +++ a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php @@ -10,7 +10,6 @@ use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\Field\FieldItemListInterface; use Drupal\Core\Form\FormStateInterface; -use Drupal\Core\Language\LanguageInterface; use Drupal\Core\Logger\LoggerChannelFactoryInterface; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -120,14 +119,11 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $view_mode = $this->getSetting('view_mode'); $elements = array(); - if (empty($langcode)) { - $langcode = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(); - } + foreach ($this->getEntitiesToView($items) as $delta => $entity) { - foreach ($this->getEntitiesToView($items, $langcode) as $delta => $entity) { // Protect ourselves from recursive rendering. static $depth = 0; $depth++; reverted: --- b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceFormatterBase.php +++ a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceFormatterBase.php @@ -13,7 +13,6 @@ use Drupal\Core\Field\FieldItemListInterface; use Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem; use Drupal\Core\Field\FormatterBase; -use Drupal\Core\Language\LanguageInterface; use Drupal\Core\TypedData\TranslatableInterface; /** @@ -37,25 +36,24 @@ * * @param \Drupal\Core\Field\EntityReferenceFieldItemListInterface $items * The item list. - * @param $langcode - * The language code of entities. * * @return \Drupal\Core\Entity\EntityInterface[] * The array of referenced entities to display, keyed by delta. * * @see ::prepareView() */ + protected function getEntitiesToView(EntityReferenceFieldItemListInterface $items) { - protected function getEntitiesToView(EntityReferenceFieldItemListInterface $items, $langcode) { $entities = array(); + $parent_entity_langcode = $items->getEntity()->language()->getId(); foreach ($items as $delta => $item) { // Ignore items where no entity could be loaded in prepareView(). if (!empty($item->_loaded)) { $entity = $item->entity; // Set the entity in the correct language for display. + if ($entity instanceof TranslatableInterface && $entity->hasTranslation($parent_entity_langcode)) { + $entity = $entity->getTranslation($parent_entity_langcode); - if ($entity instanceof TranslatableInterface) { - $entity = \Drupal::entityManager()->getTranslationFromContext($entity, $langcode); } $access = $this->checkAccess($entity); @@ -78,8 +76,8 @@ * @see ::prepareView() * @see ::getEntitiestoView() */ + public function view(FieldItemListInterface $items) { + $elements = parent::view($items); - public function view(FieldItemListInterface $items, $langcode = NULL) { - $elements = parent::view($items, $langcode); $field_level_access_cacheability = new CacheableMetadata(); reverted: --- b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceIdFormatter.php +++ a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceIdFormatter.php @@ -8,7 +8,6 @@ namespace Drupal\Core\Field\Plugin\Field\FieldFormatter; use Drupal\Core\Field\FieldItemListInterface; -use Drupal\Core\Language\LanguageInterface; /** * Plugin implementation of the 'entity reference ID' formatter. @@ -27,13 +26,10 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); - if (empty($langcode)) { - $langcode = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(); - } + foreach ($this->getEntitiesToView($items) as $delta => $entity) { - foreach ($this->getEntitiesToView($items, $langcode) as $delta => $entity) { if ($entity->id()) { $elements[$delta] = array( '#plain_text' => $entity->id(), reverted: --- b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceLabelFormatter.php +++ a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceLabelFormatter.php @@ -10,7 +10,6 @@ use Drupal\Core\Entity\Exception\UndefinedLinkTemplateException; use Drupal\Core\Field\FieldItemListInterface; use Drupal\Core\Form\FormStateInterface; -use Drupal\Core\Language\LanguageInterface; /** * Plugin implementation of the 'entity reference label' formatter. @@ -60,14 +59,11 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); $output_as_link = $this->getSetting('link'); - if (empty($langcode)) { - $langcode = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(); - } + foreach ($this->getEntitiesToView($items) as $delta => $entity) { - foreach ($this->getEntitiesToView($items, $langcode) as $delta => $entity) { $label = $entity->label(); // If the link is to be displayed and the entity has a uri, display a // link. reverted: --- b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/MailToFormatter.php +++ a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/MailToFormatter.php @@ -27,7 +27,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { reverted: --- b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericFormatterBase.php +++ a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericFormatterBase.php @@ -66,7 +66,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); $settings = $this->getFieldSettings(); reverted: --- b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericUnformattedFormatter.php +++ a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericUnformattedFormatter.php @@ -28,7 +28,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { reverted: --- b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/StringFormatter.php +++ a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/StringFormatter.php @@ -119,7 +119,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); $url = NULL; if ($this->getSetting('link_to_entity')) { reverted: --- b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/TimestampAgoFormatter.php +++ a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/TimestampAgoFormatter.php @@ -153,7 +153,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { reverted: --- b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/TimestampFormatter.php +++ a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/TimestampFormatter.php @@ -165,7 +165,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); $date_format = $this->getSetting('date_format'); reverted: --- b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/UriLinkFormatter.php +++ a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/UriLinkFormatter.php @@ -27,7 +27,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { reverted: --- b/core/modules/aggregator/src/Plugin/Field/FieldFormatter/AggregatorTitleFormatter.php +++ a/core/modules/aggregator/src/Plugin/Field/FieldFormatter/AggregatorTitleFormatter.php @@ -54,7 +54,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = []; if ($items->getEntity()->getEntityTypeId() == 'aggregator_feed') { reverted: --- b/core/modules/aggregator/src/Plugin/Field/FieldFormatter/AggregatorXSSFormatter.php +++ a/core/modules/aggregator/src/Plugin/Field/FieldFormatter/AggregatorXSSFormatter.php @@ -30,7 +30,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = []; foreach ($items as $delta => $item) { reverted: --- b/core/modules/comment/src/Plugin/Field/FieldFormatter/AuthorNameFormatter.php +++ a/core/modules/comment/src/Plugin/Field/FieldFormatter/AuthorNameFormatter.php @@ -28,7 +28,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { reverted: --- b/core/modules/comment/src/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php +++ a/core/modules/comment/src/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php @@ -137,7 +137,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); $output = array(); reverted: --- b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeCustomFormatter.php +++ a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeCustomFormatter.php @@ -36,7 +36,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { reverted: --- b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php +++ a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php @@ -36,7 +36,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { reverted: --- b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimePlainFormatter.php +++ a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimePlainFormatter.php @@ -25,7 +25,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { reverted: --- b/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeTimeAgoFormatter.php +++ a/core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeTimeAgoFormatter.php @@ -107,7 +107,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { reverted: --- b/core/modules/entity_reference/src/Tests/EntityReferenceFieldTranslatedReferenceViewTest.php +++ a/core/modules/entity_reference/src/Tests/EntityReferenceFieldTranslatedReferenceViewTest.php @@ -17,14 +17,6 @@ * @group entity_reference */ class EntityReferenceFieldTranslatedReferenceViewTest extends WebTestBase { - - /** - * Flag indicating whether the field is translatable. - * - * @var bool - */ - protected $translatable = TRUE; - /** * The langcode of the source language. * @@ -196,7 +188,7 @@ 'entity_type' => $this->testEntityTypeName, 'type' => 'entity_reference', 'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED, + 'translatable' => TRUE, - 'translatable' => $this->translatable, 'settings' => array( 'allowed_values' => array( array( reverted: --- b/core/modules/entity_reference/src/Tests/EntityReferenceFieldUntranslatedReferenceViewTest.php +++ /dev/null @@ -1,24 +0,0 @@ - 'Nothing to see here'); } } reverted: --- b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldDefaultFormatter.php +++ a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldDefaultFormatter.php @@ -62,7 +62,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { reverted: --- b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldEmptyFormatter.php +++ a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldEmptyFormatter.php @@ -35,7 +35,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); if ($items->isEmpty()) { reverted: --- b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldEmptySettingFormatter.php +++ a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldEmptySettingFormatter.php @@ -63,7 +63,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); if (!empty($items)) { reverted: --- b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldMultipleFormatter.php +++ a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldMultipleFormatter.php @@ -63,7 +63,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); if (!empty($items)) { reverted: --- b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldNoSettingsFormatter.php +++ a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldNoSettingsFormatter.php @@ -27,7 +27,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { reverted: --- b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldPrepareViewFormatter.php +++ a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldPrepareViewFormatter.php @@ -75,7 +75,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { reverted: --- b/core/modules/file/src/Plugin/Field/FieldFormatter/BaseFieldFileFormatterBase.php +++ a/core/modules/file/src/Plugin/Field/FieldFormatter/BaseFieldFileFormatterBase.php @@ -46,7 +46,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = []; $url = NULL; reverted: --- b/core/modules/file/src/Plugin/Field/FieldFormatter/FileSize.php +++ a/core/modules/file/src/Plugin/Field/FieldFormatter/FileSize.php @@ -34,7 +34,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = []; foreach ($items as $delta => $item) { reverted: --- b/core/modules/file/src/Plugin/Field/FieldFormatter/GenericFileFormatter.php +++ a/core/modules/file/src/Plugin/Field/FieldFormatter/GenericFileFormatter.php @@ -8,7 +8,6 @@ namespace Drupal\file\Plugin\Field\FieldFormatter; use Drupal\Core\Field\FieldItemListInterface; -use Drupal\Core\Language\LanguageInterface; /** * Plugin implementation of the 'file_default' formatter. @@ -26,13 +25,10 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); - if (empty($langcode)) { - $langcode = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(); - } + foreach ($this->getEntitiesToView($items) as $delta => $file) { - foreach ($this->getEntitiesToView($items, $langcode) as $delta => $file) { $item = $file->_referringItem; $elements[$delta] = array( '#theme' => 'file_link', reverted: --- b/core/modules/file/src/Plugin/Field/FieldFormatter/RSSEnclosureFormatter.php +++ a/core/modules/file/src/Plugin/Field/FieldFormatter/RSSEnclosureFormatter.php @@ -8,7 +8,6 @@ namespace Drupal\file\Plugin\Field\FieldFormatter; use Drupal\Core\Field\FieldItemListInterface; -use Drupal\Core\Language\LanguageInterface; /** * Plugin implementation of the 'file_rss_enclosure' formatter. @@ -26,14 +25,11 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $entity = $items->getEntity(); - if (empty($langcode)) { - $langcode = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(); - } // Add the first file as an enclosure to the RSS item. RSS allows only one // enclosure per item. See: http://en.wikipedia.org/wiki/RSS_enclosure + foreach ($this->getEntitiesToView($items) as $delta => $file) { - foreach ($this->getEntitiesToView($items, $langcode) as $delta => $file) { $entity->rss_elements[] = array( 'key' => 'enclosure', 'attributes' => array( reverted: --- b/core/modules/file/src/Plugin/Field/FieldFormatter/TableFormatter.php +++ a/core/modules/file/src/Plugin/Field/FieldFormatter/TableFormatter.php @@ -8,7 +8,6 @@ namespace Drupal\file\Plugin\Field\FieldFormatter; use Drupal\Core\Field\FieldItemListInterface; -use Drupal\Core\Language\LanguageInterface; /** * Plugin implementation of the 'file_table' formatter. @@ -26,13 +25,10 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); - if (empty($langcode)) { - $langcode = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(); - } + if ($files = $this->getEntitiesToView($items)) { - if ($files = $this->getEntitiesToView($items, $langcode)) { $header = array(t('Attachment'), t('Size')); $rows = array(); foreach ($files as $delta => $file) { reverted: --- b/core/modules/file/src/Plugin/Field/FieldFormatter/UrlPlainFormatter.php +++ a/core/modules/file/src/Plugin/Field/FieldFormatter/UrlPlainFormatter.php @@ -8,7 +8,6 @@ namespace Drupal\file\Plugin\Field\FieldFormatter; use Drupal\Core\Field\FieldItemListInterface; -use Drupal\Core\Language\LanguageInterface; /** * Plugin implementation of the 'file_url_plain' formatter. @@ -26,13 +25,10 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); - if (empty($langcode)) { - $langcode = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(); - } + foreach ($this->getEntitiesToView($items) as $delta => $file) { - foreach ($this->getEntitiesToView($items, $langcode) as $delta => $file) { $elements[$delta] = array( '#markup' => file_create_url($file->getFileUri()), '#cache' => array( reverted: --- b/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatter.php +++ a/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatter.php @@ -11,10 +11,11 @@ use Drupal\Core\Field\FieldItemListInterface; use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\Link; -use Drupal\Core\Language\LanguageInterface; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; +use Drupal\Core\Routing\UrlGeneratorInterface; use Drupal\Core\Session\AccountInterface; use Drupal\Core\Url; +use Drupal\Core\Utility\LinkGeneratorInterface; use Symfony\Component\DependencyInjection\ContainerInterface; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Cache\Cache; @@ -40,13 +41,6 @@ protected $currentUser; /** - * The language manager. - * - * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager - */ - protected $languageManager; - - /** * The image style entity storage. * * @var \Drupal\Core\Entity\EntityStorageInterface @@ -175,12 +169,9 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); + $files = $this->getEntitiesToView($items); - if (empty($langcode)) { - $langcode = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(); - } - $files = $this->getEntitiesToView($items, $langcode); // Early opt-out if the field is empty. if (empty($files)) { reverted: --- b/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php +++ a/core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php @@ -8,7 +8,6 @@ namespace Drupal\image\Plugin\Field\FieldFormatter; use Drupal\Core\Field\EntityReferenceFieldItemListInterface; -use Drupal\Core\Language\LanguageInterface; use Drupal\field\FieldConfigInterface; use Drupal\file\Plugin\Field\FieldFormatter\FileFormatterBase; @@ -20,7 +19,7 @@ /** * {@inheritdoc} */ + protected function getEntitiesToView(EntityReferenceFieldItemListInterface $items) { - protected function getEntitiesToView(EntityReferenceFieldItemListInterface $items, $langcode = NULL) { // Add the default image if needed. if ($items->isEmpty()) { $default_image = $this->getFieldSetting('default_image'); @@ -29,9 +28,6 @@ if (empty($default_image['uuid']) && $this->fieldDefinition instanceof FieldConfigInterface) { $default_image = $this->fieldDefinition->getFieldStorageDefinition()->getSetting('default_image'); } - if (empty($langcode)) { - $langcode = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(); - } if (!empty($default_image['uuid']) && $file = \Drupal::entityManager()->loadEntityByUuid('file', $default_image['uuid'])) { // Clone the FieldItemList into a runtime-only object for the formatter, @@ -52,7 +48,7 @@ } } + return parent::getEntitiesToView($items); - return parent::getEntitiesToView($items, $langcode); } } reverted: --- b/core/modules/link/src/Plugin/Field/FieldFormatter/LinkFormatter.php +++ a/core/modules/link/src/Plugin/Field/FieldFormatter/LinkFormatter.php @@ -176,7 +176,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $element = array(); $entity = $items->getEntity(); $settings = $this->getSettings(); reverted: --- b/core/modules/link/src/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php +++ a/core/modules/link/src/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php @@ -42,7 +42,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $element = array(); $entity = $items->getEntity(); $settings = $this->getSettings(); reverted: --- b/core/modules/options/src/Plugin/Field/FieldFormatter/OptionsDefaultFormatter.php +++ a/core/modules/options/src/Plugin/Field/FieldFormatter/OptionsDefaultFormatter.php @@ -33,7 +33,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); // Only collect allowed options if there are actually items to display. reverted: --- b/core/modules/options/src/Plugin/Field/FieldFormatter/OptionsKeyFormatter.php +++ a/core/modules/options/src/Plugin/Field/FieldFormatter/OptionsKeyFormatter.php @@ -32,7 +32,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { reverted: --- b/core/modules/responsive_image/src/Plugin/Field/FieldFormatter/ResponsiveImageFormatter.php +++ a/core/modules/responsive_image/src/Plugin/Field/FieldFormatter/ResponsiveImageFormatter.php @@ -164,7 +164,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); $files = $this->getEntitiesToView($items); reverted: --- b/core/modules/responsive_image/tests/modules/responsive_image_test_module/src/Plugin/Field/FieldFormatter/ResponsiveImageTestFormatter.php +++ a/core/modules/responsive_image/tests/modules/responsive_image_test_module/src/Plugin/Field/FieldFormatter/ResponsiveImageTestFormatter.php @@ -26,7 +26,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = parent::viewElements($items); // Unset #item_attributes to test that the theme function can handle that. foreach ($elements as &$element) { reverted: --- b/core/modules/taxonomy/src/Plugin/Field/FieldFormatter/EntityReferenceTaxonomyTermRssFormatter.php +++ a/core/modules/taxonomy/src/Plugin/Field/FieldFormatter/EntityReferenceTaxonomyTermRssFormatter.php @@ -10,7 +10,6 @@ use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\Field\FieldItemListInterface; use Drupal\Core\Field\Plugin\Field\FieldFormatter\EntityReferenceFormatterBase; -use Drupal\Core\Language\LanguageInterface; /** * Plugin implementation of the 'entity reference taxonomy term RSS' formatter. @@ -29,14 +28,11 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $parent_entity = $items->getEntity(); $elements = array(); - if (empty($langcode)) { - $langcode = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(); - } + foreach ($this->getEntitiesToView($items) as $delta => $entity) { - foreach ($this->getEntitiesToView($items, $langcode) as $delta => $entity) { $parent_entity->rss_elements[] = array( 'key' => 'category', 'value' => $entity->label(), reverted: --- b/core/modules/taxonomy/src/Tests/TaxonomyTranslationTestTrait.php +++ a/core/modules/taxonomy/src/Tests/TaxonomyTranslationTestTrait.php @@ -83,7 +83,7 @@ * (optional) If TRUE, create a translatable term reference field. Defaults * to FALSE. */ + protected function setUpTermReferenceField($translatable = FALSE) { - protected function setUpTermReferenceField() { $handler_settings = array( 'target_bundles' => array( $this->vocabulary->id() => $this->vocabulary->id(), @@ -92,7 +92,7 @@ ); $this->createEntityReferenceField('node', 'article', $this->termFieldName, NULL, 'taxonomy_term', 'default', $handler_settings, FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED); $field_storage = FieldStorageConfig::loadByName('node', $this->termFieldName); + $field_storage->setTranslatable($translatable); - $field_storage->setTranslatable(FALSE); $field_storage->save(); entity_get_form_display('node', 'article', 'default') reverted: --- b/core/modules/taxonomy/src/Tests/TermTranslationFieldViewTest.php +++ a/core/modules/taxonomy/src/Tests/TermTranslationFieldViewTest.php @@ -50,7 +50,7 @@ $this->vocabulary = $this->createVocabulary(); $this->enableTranslation(); $this->setUpTerm(); + $this->setUpTermReferenceField(TRUE); - $this->setUpTermReferenceField(); $this->setUpNode(); } reverted: --- b/core/modules/telephone/src/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php +++ a/core/modules/telephone/src/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php @@ -67,7 +67,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $element = array(); $title_setting = $this->getSetting('title'); reverted: --- b/core/modules/text/src/Plugin/Field/FieldFormatter/TextDefaultFormatter.php +++ a/core/modules/text/src/Plugin/Field/FieldFormatter/TextDefaultFormatter.php @@ -31,7 +31,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); // The ProcessedText element already handles cache context & tag bubbling. reverted: --- b/core/modules/text/src/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php +++ a/core/modules/text/src/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php @@ -70,7 +70,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); $render_as_summary = function (&$element) { reverted: --- b/core/modules/user/src/Plugin/Field/FieldFormatter/AuthorFormatter.php +++ a/core/modules/user/src/Plugin/Field/FieldFormatter/AuthorFormatter.php @@ -12,7 +12,6 @@ use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\Field\FieldItemListInterface; use Drupal\Core\Field\Plugin\Field\FieldFormatter\EntityReferenceFormatterBase; -use Drupal\Core\Language\LanguageInterface; /** * Plugin implementation of the 'author' formatter. @@ -31,13 +30,10 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); - if (empty($langcode)) { - $langcode = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(); - } + foreach ($this->getEntitiesToView($items) as $delta => $entity) { - foreach ($this->getEntitiesToView($items, $langcode) as $delta => $entity) { /** @var $referenced_user \Drupal\user\UserInterface */ $elements[$delta] = array( '#theme' => 'username', reverted: --- b/core/modules/user/src/Plugin/Field/FieldFormatter/UserNameFormatter.php +++ a/core/modules/user/src/Plugin/Field/FieldFormatter/UserNameFormatter.php @@ -54,7 +54,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = []; foreach ($items as $delta => $item) { reverted: --- b/core/modules/views/tests/modules/views_test_formatter/src/Plugin/Field/FieldFormatter/AttachmentTestFormatter.php +++ a/core/modules/views/tests/modules/views_test_formatter/src/Plugin/Field/FieldFormatter/AttachmentTestFormatter.php @@ -28,7 +28,7 @@ /** * {@inheritdoc} */ + public function viewElements(FieldItemListInterface $items) { - public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = parent::viewElements($items); // Add dummy attachments. only in patch2: unchanged: --- core/lib/Drupal/Core/Entity/Entity/EntityViewDisplay.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/lib/Drupal/Core/Entity/Entity/EntityViewDisplay.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -249,7 +249,7 @@ $items = $grouped_items[$id]; /** @var \Drupal\Core\Access\AccessResultInterface $field_access */ $field_access = $items->access('view', NULL, TRUE); - $build_list[$id][$name] = $field_access->isAllowed() ? $formatter->view($items) : []; + $build_list[$id][$name] = $field_access->isAllowed() ? $formatter->view($items, $entity->language()->getId()) : []; // Apply the field access cacheability metadata to the render array. $this->renderer->addCacheableDependency($build_list[$id][$name], $field_access); } only in patch2: unchanged: --- core/lib/Drupal/Core/Field/FormatterBase.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/lib/Drupal/Core/Field/FormatterBase.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -8,6 +8,7 @@ namespace Drupal\Core\Field; use Drupal\Core\Form\FormStateInterface; +use Drupal\Core\Language\LanguageInterface; use Drupal\Core\Render\Element; /** @@ -76,8 +77,11 @@ /** * {@inheritdoc} */ - public function view(FieldItemListInterface $items) { - $elements = $this->viewElements($items); + public function view(FieldItemListInterface $items, $langcode = NULL) { + if (empty($langcode)) { + $langcode = \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId(); + } + $elements = $this->viewElements($items, $langcode); // If there are actual renderable children, use #theme => field, otherwise, // let access cacheability metadata pass through for correct bubbling. only in patch2: unchanged: --- core/lib/Drupal/Core/Field/FormatterInterface.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/lib/Drupal/Core/Field/FormatterInterface.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -69,23 +69,29 @@ * * @param \Drupal\Core\Field\FieldItemListInterface $items * The field values to be rendered. + * @param string $langcode + * (optional) The language that should be used to render the field. Defaults + * to the current content language. * * @return array * A renderable array for a themed field with its label and all its values. */ - public function view(FieldItemListInterface $items); + public function view(FieldItemListInterface $items, $langcode = NULL); /** * Builds a renderable array for a field value. * * @param \Drupal\Core\Field\FieldItemListInterface $items * The field values to be rendered. + * @param string $langcode + * (optional) The language that should be used to render the field. Defaults + * to the current content language. * * @return array * A renderable array for $items, as an array of child elements keyed by * consecutive numeric indexes starting from 0. */ - public function viewElements(FieldItemListInterface $items); + public function viewElements(FieldItemListInterface $items, $langcode = NULL); /** * Returns if the formatter can be used for the provided field. only in patch2: unchanged: --- core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/BasicStringFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/BasicStringFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -31,7 +31,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/BooleanFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/BooleanFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -116,7 +116,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = []; $formats = $this->getOutputFormats(); only in patch2: unchanged: --- core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/MailToFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/MailToFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -27,7 +27,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericFormatterBase.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericFormatterBase.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -66,7 +66,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); $settings = $this->getFieldSettings(); only in patch2: unchanged: --- core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericUnformattedFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericUnformattedFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -28,7 +28,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/StringFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/StringFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -119,7 +119,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); $url = NULL; if ($this->getSetting('link_to_entity')) { only in patch2: unchanged: --- core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/TimestampAgoFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/TimestampAgoFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -153,7 +153,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/TimestampFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/TimestampFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -165,7 +165,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); $date_format = $this->getSetting('date_format'); only in patch2: unchanged: --- core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/UriLinkFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/UriLinkFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -27,7 +27,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/modules/aggregator/src/Plugin/Field/FieldFormatter/AggregatorTitleFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/aggregator/src/Plugin/Field/FieldFormatter/AggregatorTitleFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -54,7 +54,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = []; if ($items->getEntity()->getEntityTypeId() == 'aggregator_feed') { only in patch2: unchanged: --- core/modules/aggregator/src/Plugin/Field/FieldFormatter/AggregatorXSSFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/aggregator/src/Plugin/Field/FieldFormatter/AggregatorXSSFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -30,7 +30,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = []; foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/modules/comment/src/Plugin/Field/FieldFormatter/AuthorNameFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/comment/src/Plugin/Field/FieldFormatter/AuthorNameFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -28,7 +28,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/modules/comment/src/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/comment/src/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -137,7 +137,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); $output = array(); only in patch2: unchanged: --- core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeCustomFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeCustomFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -36,7 +36,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -36,7 +36,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimePlainFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimePlainFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -25,7 +25,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeTimeAgoFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/datetime/src/Plugin/Field/FieldFormatter/DateTimeTimeAgoFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -107,7 +107,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/modules/entity_reference/src/Tests/EntityReferenceFieldTranslatedReferenceViewTest.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/entity_reference/src/Tests/EntityReferenceFieldTranslatedReferenceViewTest.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -17,7 +17,15 @@ * @group entity_reference */ class EntityReferenceFieldTranslatedReferenceViewTest extends WebTestBase { + /** + * Flag indicating whether the field is translatable. + * + * @var bool + */ + protected $translatable = TRUE; + + /** * The langcode of the source language. * * @var string @@ -188,7 +196,7 @@ 'entity_type' => $this->testEntityTypeName, 'type' => 'entity_reference', 'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED, - 'translatable' => TRUE, + 'translatable' => $this->translatable, 'settings' => array( 'allowed_values' => array( array( only in patch2: unchanged: --- core/modules/entity_reference/src/Tests/EntityReferenceFieldUntranslatedReferenceViewTest.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) +++ core/modules/entity_reference/src/Tests/EntityReferenceFieldUntranslatedReferenceViewTest.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -0,0 +1,24 @@ + 'Nothing to see here'); } } only in patch2: unchanged: --- core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldDefaultFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldDefaultFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -62,7 +62,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldEmptyFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldEmptyFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -35,7 +35,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); if ($items->isEmpty()) { only in patch2: unchanged: --- core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldEmptySettingFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldEmptySettingFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -63,7 +63,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); if (!empty($items)) { only in patch2: unchanged: --- core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldMultipleFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldMultipleFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -63,7 +63,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); if (!empty($items)) { only in patch2: unchanged: --- core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldNoSettingsFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldNoSettingsFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -27,7 +27,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldPrepareViewFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldPrepareViewFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -75,7 +75,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/modules/file/src/Plugin/Field/FieldFormatter/BaseFieldFileFormatterBase.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/file/src/Plugin/Field/FieldFormatter/BaseFieldFileFormatterBase.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -46,7 +46,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = []; $url = NULL; only in patch2: unchanged: --- core/modules/file/src/Plugin/Field/FieldFormatter/FileSize.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/file/src/Plugin/Field/FieldFormatter/FileSize.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -34,7 +34,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = []; foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/modules/link/src/Plugin/Field/FieldFormatter/LinkFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/link/src/Plugin/Field/FieldFormatter/LinkFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -176,7 +176,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $element = array(); $entity = $items->getEntity(); $settings = $this->getSettings(); only in patch2: unchanged: --- core/modules/link/src/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/link/src/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -42,7 +42,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $element = array(); $entity = $items->getEntity(); $settings = $this->getSettings(); only in patch2: unchanged: --- core/modules/options/src/Plugin/Field/FieldFormatter/OptionsDefaultFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/options/src/Plugin/Field/FieldFormatter/OptionsDefaultFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -33,7 +33,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); // Only collect allowed options if there are actually items to display. only in patch2: unchanged: --- core/modules/options/src/Plugin/Field/FieldFormatter/OptionsKeyFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/options/src/Plugin/Field/FieldFormatter/OptionsKeyFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -32,7 +32,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/modules/responsive_image/src/Plugin/Field/FieldFormatter/ResponsiveImageFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/responsive_image/src/Plugin/Field/FieldFormatter/ResponsiveImageFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -192,7 +192,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); $files = $this->getEntitiesToView($items); only in patch2: unchanged: --- core/modules/responsive_image/tests/modules/responsive_image_test_module/src/Plugin/Field/FieldFormatter/ResponsiveImageTestFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/responsive_image/tests/modules/responsive_image_test_module/src/Plugin/Field/FieldFormatter/ResponsiveImageTestFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -26,7 +26,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = parent::viewElements($items); // Unset #item_attributes to test that the theme function can handle that. foreach ($elements as &$element) { only in patch2: unchanged: --- core/modules/taxonomy/src/Tests/TaxonomyTranslationTestTrait.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/taxonomy/src/Tests/TaxonomyTranslationTestTrait.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -83,7 +83,7 @@ * (optional) If TRUE, create a translatable term reference field. Defaults * to FALSE. */ - protected function setUpTermReferenceField($translatable = FALSE) { + protected function setUpTermReferenceField() { $handler_settings = array( 'target_bundles' => array( $this->vocabulary->id() => $this->vocabulary->id(), @@ -92,7 +92,7 @@ ); $this->createEntityReferenceField('node', 'article', $this->termFieldName, NULL, 'taxonomy_term', 'default', $handler_settings, FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED); $field_storage = FieldStorageConfig::loadByName('node', $this->termFieldName); - $field_storage->setTranslatable($translatable); + $field_storage->setTranslatable(FALSE); $field_storage->save(); entity_get_form_display('node', 'article', 'default') only in patch2: unchanged: --- core/modules/taxonomy/src/Tests/TermTranslationFieldViewTest.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/taxonomy/src/Tests/TermTranslationFieldViewTest.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -50,7 +50,7 @@ $this->vocabulary = $this->createVocabulary(); $this->enableTranslation(); $this->setUpTerm(); - $this->setUpTermReferenceField(TRUE); + $this->setUpTermReferenceField(); $this->setUpNode(); } only in patch2: unchanged: --- core/modules/telephone/src/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/telephone/src/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -67,7 +67,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $element = array(); $title_setting = $this->getSetting('title'); only in patch2: unchanged: --- core/modules/text/src/Plugin/Field/FieldFormatter/TextDefaultFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/text/src/Plugin/Field/FieldFormatter/TextDefaultFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -31,7 +31,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); // The ProcessedText element already handles cache context & tag bubbling. only in patch2: unchanged: --- core/modules/text/src/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/text/src/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -70,7 +70,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); $render_as_summary = function (&$element) { only in patch2: unchanged: --- core/modules/user/src/Plugin/Field/FieldFormatter/UserNameFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/user/src/Plugin/Field/FieldFormatter/UserNameFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -54,7 +54,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = []; foreach ($items as $delta => $item) { only in patch2: unchanged: --- core/modules/views/tests/modules/views_test_formatter/src/Plugin/Field/FieldFormatter/AttachmentTestFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/views/tests/modules/views_test_formatter/src/Plugin/Field/FieldFormatter/AttachmentTestFormatter.php (revision 121bce476868e14db70020ae0cdad6bf146d0340) @@ -28,7 +28,7 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = parent::viewElements($items); // Add dummy attachments. only in patch2: unchanged: --- core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php (revision 45ec61e78c457fc6e8c59cf5e49a1e5cdf490d43) @@ -119,11 +119,11 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $view_mode = $this->getSetting('view_mode'); $elements = array(); - foreach ($this->getEntitiesToView($items) as $delta => $entity) { + foreach ($this->getEntitiesToView($items, $langcode) as $delta => $entity) { // Protect ourselves from recursive rendering. static $depth = 0; $depth++; only in patch2: unchanged: --- core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceFormatterBase.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceFormatterBase.php (revision 45ec61e78c457fc6e8c59cf5e49a1e5cdf490d43) @@ -13,6 +13,7 @@ use Drupal\Core\Field\FieldItemListInterface; use Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem; use Drupal\Core\Field\FormatterBase; +use Drupal\Core\Language\LanguageInterface; use Drupal\Core\TypedData\TranslatableInterface; /** @@ -36,24 +37,25 @@ * * @param \Drupal\Core\Field\EntityReferenceFieldItemListInterface $items * The item list. + * @param $langcode + * The language code of entities. * * @return \Drupal\Core\Entity\EntityInterface[] * The array of referenced entities to display, keyed by delta. * * @see ::prepareView() */ - protected function getEntitiesToView(EntityReferenceFieldItemListInterface $items) { + protected function getEntitiesToView(EntityReferenceFieldItemListInterface $items, $langcode) { $entities = array(); - $parent_entity_langcode = $items->getEntity()->language()->getId(); foreach ($items as $delta => $item) { // Ignore items where no entity could be loaded in prepareView(). if (!empty($item->_loaded)) { $entity = $item->entity; // Set the entity in the correct language for display. - if ($entity instanceof TranslatableInterface && $entity->hasTranslation($parent_entity_langcode)) { - $entity = $entity->getTranslation($parent_entity_langcode); + if ($entity instanceof TranslatableInterface) { + $entity = \Drupal::entityManager()->getTranslationFromContext($entity, $this->safeLangcode($langcode)); } $access = $this->checkAccess($entity); @@ -76,8 +78,8 @@ * @see ::prepareView() * @see ::getEntitiestoView() */ - public function view(FieldItemListInterface $items) { - $elements = parent::view($items); + public function view(FieldItemListInterface $items, $langcode = NULL) { + $elements = parent::view($items, $langcode); $field_level_access_cacheability = new CacheableMetadata(); @@ -187,4 +189,21 @@ return $entity->access('view', NULL, TRUE); } + /** + * If set, return the given langcode, else fall back to current language. + * + * @param string $langcode + * The langcode to check. + * + * @return string + */ + private function safeLangcode($langcode) { + if (empty($langcode)) { + return \Drupal::languageManager() + ->getCurrentLanguage(LanguageInterface::TYPE_CONTENT) + ->getId(); + } + + return $langcode; + } } only in patch2: unchanged: --- core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceIdFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceIdFormatter.php (revision 45ec61e78c457fc6e8c59cf5e49a1e5cdf490d43) @@ -26,10 +26,10 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); - foreach ($this->getEntitiesToView($items) as $delta => $entity) { + foreach ($this->getEntitiesToView($items, $langcode) as $delta => $entity) { if ($entity->id()) { $elements[$delta] = array( '#plain_text' => $entity->id(), only in patch2: unchanged: --- core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceLabelFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceLabelFormatter.php (revision 45ec61e78c457fc6e8c59cf5e49a1e5cdf490d43) @@ -59,11 +59,11 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); $output_as_link = $this->getSetting('link'); - foreach ($this->getEntitiesToView($items) as $delta => $entity) { + foreach ($this->getEntitiesToView($items, $langcode) as $delta => $entity) { $label = $entity->label(); // If the link is to be displayed and the entity has a uri, display a // link. only in patch2: unchanged: --- core/modules/file/src/Plugin/Field/FieldFormatter/GenericFileFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/file/src/Plugin/Field/FieldFormatter/GenericFileFormatter.php (revision 45ec61e78c457fc6e8c59cf5e49a1e5cdf490d43) @@ -25,10 +25,10 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); - foreach ($this->getEntitiesToView($items) as $delta => $file) { + foreach ($this->getEntitiesToView($items, $langcode) as $delta => $file) { $item = $file->_referringItem; $elements[$delta] = array( '#theme' => 'file_link', only in patch2: unchanged: --- core/modules/file/src/Plugin/Field/FieldFormatter/RSSEnclosureFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/file/src/Plugin/Field/FieldFormatter/RSSEnclosureFormatter.php (revision 45ec61e78c457fc6e8c59cf5e49a1e5cdf490d43) @@ -25,11 +25,11 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $entity = $items->getEntity(); // Add the first file as an enclosure to the RSS item. RSS allows only one // enclosure per item. See: http://en.wikipedia.org/wiki/RSS_enclosure - foreach ($this->getEntitiesToView($items) as $delta => $file) { + foreach ($this->getEntitiesToView($items, $langcode) as $delta => $file) { $entity->rss_elements[] = array( 'key' => 'enclosure', 'attributes' => array( only in patch2: unchanged: --- core/modules/file/src/Plugin/Field/FieldFormatter/TableFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/file/src/Plugin/Field/FieldFormatter/TableFormatter.php (revision 45ec61e78c457fc6e8c59cf5e49a1e5cdf490d43) @@ -25,10 +25,10 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); - if ($files = $this->getEntitiesToView($items)) { + if ($files = $this->getEntitiesToView($items, $langcode)) { $header = array(t('Attachment'), t('Size')); $rows = array(); foreach ($files as $delta => $file) { only in patch2: unchanged: --- core/modules/file/src/Plugin/Field/FieldFormatter/UrlPlainFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/file/src/Plugin/Field/FieldFormatter/UrlPlainFormatter.php (revision 45ec61e78c457fc6e8c59cf5e49a1e5cdf490d43) @@ -25,10 +25,10 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); - foreach ($this->getEntitiesToView($items) as $delta => $file) { + foreach ($this->getEntitiesToView($items, $langcode) as $delta => $file) { $elements[$delta] = array( '#markup' => file_create_url($file->getFileUri()), '#cache' => array( only in patch2: unchanged: --- core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatter.php (revision 45ec61e78c457fc6e8c59cf5e49a1e5cdf490d43) @@ -12,10 +12,8 @@ use Drupal\Core\Field\FieldDefinitionInterface; use Drupal\Core\Link; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; -use Drupal\Core\Routing\UrlGeneratorInterface; use Drupal\Core\Session\AccountInterface; use Drupal\Core\Url; -use Drupal\Core\Utility\LinkGeneratorInterface; use Symfony\Component\DependencyInjection\ContainerInterface; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Cache\Cache; @@ -41,6 +39,13 @@ protected $currentUser; /** + * The language manager. + * + * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager + */ + protected $languageManager; + + /** * The image style entity storage. * * @var \Drupal\Core\Entity\EntityStorageInterface @@ -169,9 +174,9 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); - $files = $this->getEntitiesToView($items); + $files = $this->getEntitiesToView($items, $langcode); // Early opt-out if the field is empty. if (empty($files)) { only in patch2: unchanged: --- core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/image/src/Plugin/Field/FieldFormatter/ImageFormatterBase.php (revision 45ec61e78c457fc6e8c59cf5e49a1e5cdf490d43) @@ -19,7 +19,7 @@ /** * {@inheritdoc} */ - protected function getEntitiesToView(EntityReferenceFieldItemListInterface $items) { + protected function getEntitiesToView(EntityReferenceFieldItemListInterface $items, $langcode = NULL) { // Add the default image if needed. if ($items->isEmpty()) { $default_image = $this->getFieldSetting('default_image'); @@ -48,7 +48,7 @@ } } - return parent::getEntitiesToView($items); + return parent::getEntitiesToView($items, $langcode); } } only in patch2: unchanged: --- core/modules/taxonomy/src/Plugin/Field/FieldFormatter/EntityReferenceTaxonomyTermRssFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/taxonomy/src/Plugin/Field/FieldFormatter/EntityReferenceTaxonomyTermRssFormatter.php (revision 45ec61e78c457fc6e8c59cf5e49a1e5cdf490d43) @@ -28,11 +28,11 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $parent_entity = $items->getEntity(); $elements = array(); - foreach ($this->getEntitiesToView($items) as $delta => $entity) { + foreach ($this->getEntitiesToView($items, $langcode) as $delta => $entity) { $parent_entity->rss_elements[] = array( 'key' => 'category', 'value' => $entity->label(), only in patch2: unchanged: --- core/modules/user/src/Plugin/Field/FieldFormatter/AuthorFormatter.php (revision 13ae3e14abca5a36b02ca391481f6fabd62e455b) +++ core/modules/user/src/Plugin/Field/FieldFormatter/AuthorFormatter.php (revision 45ec61e78c457fc6e8c59cf5e49a1e5cdf490d43) @@ -30,10 +30,10 @@ /** * {@inheritdoc} */ - public function viewElements(FieldItemListInterface $items) { + public function viewElements(FieldItemListInterface $items, $langcode = NULL) { $elements = array(); - foreach ($this->getEntitiesToView($items) as $delta => $entity) { + foreach ($this->getEntitiesToView($items, $langcode) as $delta => $entity) { /** @var $referenced_user \Drupal\user\UserInterface */ $elements[$delta] = array( '#theme' => 'username',