web-dev-qa-db-fra.com

Comment rendre les champs de référence d'entité dans la langue actuelle

J'essaie de rendre les champs d'une référence d'entité dans un modèle twig mais ils s'affichent dans la langue par défaut au lieu de la langue sélectionnée. Mon code twig:

{% 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

Vous pouvez utiliser la procédure suivante pour les champs traduits

Ajoutez une langue dans votre THEMENAME.theme

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

Et dans votre node.html.twig pour obtenir les champs traduits

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

Ainsi, dans votre cas, vous aurez besoin

{% 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