diff -u b/core/modules/field/field.attach.inc b/core/modules/field/field.attach.inc --- b/core/modules/field/field.attach.inc +++ b/core/modules/field/field.attach.inc @@ -115,8 +115,9 @@ if (method_exists($target, $method)) { // Determine the list of languages to iterate on. - // @todo Unify language fallback handling between configurable and base - // fields. + // @todo Unify the language fallback handling here between configurable + // and base fields once field_available_languages() is either removed + // or fixed to not require a configurable field: [#2067079]. if ($field_definition instanceof FieldInstanceInterface) { $available_langcodes = field_available_languages($entity_type, $field_definition->getField()); $langcodes = _field_language_suggestion($available_langcodes, $options['langcode'], $field_definition->getFieldName()); diff -u b/core/modules/field/field.module b/core/modules/field/field.module --- b/core/modules/field/field.module +++ b/core/modules/field/field.module @@ -535,14 +535,7 @@ } if ($formatter) { - // @todo Unify language fallback handling between configurable and base - // fields. - if ($field_definition instanceof FieldInstanceInterface) { - $display_langcode = field_language($entity, $field_name, $langcode); - } - else { - $display_langcode = $entity->language()->id; - } + $display_langcode = field_language($entity, $field_name, $langcode); // Invoke the formatter's prepareView() and view() methods. $items = $entity->getTranslation($display_langcode)->get($field_name);