You are here

protected function EntityTranslationRenderTrait::getEntityTranslationRenderer in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/views/src/Entity/Render/EntityTranslationRenderTrait.php \Drupal\views\Entity\Render\EntityTranslationRenderTrait::getEntityTranslationRenderer()

Returns the current renderer.

Return value

\Drupal\views\Entity\Render\EntityTranslationRendererBase The configured renderer.

File

core/modules/views/src/Entity/Render/EntityTranslationRenderTrait.php, line 28

Class

EntityTranslationRenderTrait
Trait used to instantiate the view's entity translation renderer.

Namespace

Drupal\views\Entity\Render

Code

protected function getEntityTranslationRenderer() {
  if (!isset($this->entityTranslationRenderer)) {
    $view = $this
      ->getView();
    $rendering_language = $view->display_handler
      ->getOption('rendering_language');
    $langcode = NULL;
    $dynamic_renderers = [
      '***LANGUAGE_entity_translation***' => 'TranslationLanguageRenderer',
      '***LANGUAGE_entity_default***' => 'DefaultLanguageRenderer',
    ];
    if (isset($dynamic_renderers[$rendering_language])) {

      // Dynamic language set based on result rows or instance defaults.
      $renderer = $dynamic_renderers[$rendering_language];
    }
    else {
      if (strpos($rendering_language, '***LANGUAGE_') !== FALSE) {
        $langcode = PluginBase::queryLanguageSubstitutions()[$rendering_language];
      }
      else {

        // Specific langcode set.
        $langcode = $rendering_language;
      }
      $renderer = 'ConfigurableLanguageRenderer';
    }
    $class = '\\Drupal\\views\\Entity\\Render\\' . $renderer;
    $entity_type = $this
      ->getEntityTypeManager()
      ->getDefinition($this
      ->getEntityTypeId());
    $this->entityTranslationRenderer = new $class($view, $this
      ->getLanguageManager(), $entity_type, $langcode);
  }
  return $this->entityTranslationRenderer;
}