it-swarm.com.de

So rendern Sie Entitätsreferenzfelder in der aktuellen Sprache

Ich versuche, Felder aus einer Entitätsreferenz in einer twig - Vorlage zu rendern, aber sie werden in der Standardsprache anstelle der ausgewählten angezeigt. Mein twig Code:

{% for location in node.field_locations %}
  <div class="home-location">
    <div class="wording">
      {{ location.entity.title.value }}
       <span>{{ location.entity.field_sub_title.value }}</span>
     </div>
   </div>
 {% endfor %}
4
Chris

Sie können das folgende Verfahren für übersetzte Felder verwenden

Fügen Sie Sprache in Ihre THEMENAME.theme

function dru8_preprocess_node(&$vars) {
  $language = \Drupal::languageManager()->getCurrentLanguage()->getId();
  $vars['lang'] = $language;
}

Und in deinem node.html.twig um übersetzte Felder zu erhalten

{% if node.field_stories.entity.hastranslation(lang) %}
  <p>{{ node.field_stories.entity.translation(lang).title.value }}</p>
{% else %}
  <p>No translation<p/>
{% endif %}

Also in Ihrem Fall werden Sie brauchen

{% for location in node.field_locations %}
  <div class="home-location">
    <div class="wording">
      {{ location.entity.translation(lang).title.value }}
       <span>{{ location.entity.translation(lang).field_sub_title.value }}</span>
     </div>
   </div>
 {% endfor %}
3
GiorgosK