J'ai une vue qui est la liste d'un type de contenu à l'aide de champs. (J'utilise également une relation et un filtre contextuel, btw.)
L'un de ces champs est "lien vers le contenu".
Le type de contenu est traduisible. La vue est filtrée par Translation language (= Interface text language selected for page)
. Dans ma langue secondaire (allemand), seuls les nœuds avec une traduction sont affichés. Jusqu'ici tout va bien.
Le langage de rendu est défini sur: Interface text language selected for page
.
Cependant, les lignes rendues sont toujours liées à la langue par défaut (/en
), même lorsque le reste de la page est rendu dans la langue secondaire (de
).
Que puis-je faire pour que les lignes rendent les liens dans la bonne langue?
C'est un bug et il est en cours d'élaboration, la solution est fournie et elle est actuellement étiquetée comme Needs review
. Vous pouvez peut-être appliquer le patch et tester vous-même:
Les champs Liens d'entité ne prennent pas en charge la traduction
Dans Drupal 8.4 et versions antérieures, il était possible d'utiliser la solution de contournement du champ Path
et d'utiliser un champ de texte personnalisé pour construire le lien:
<a href="{{ path }}">{% trans %} View more {% endtrans %}</a>
La sortie du champ Chemin traduit correctement les liens avec le préfixe de chemin correct, voir ici: Traduire le contenu: lien vers le champ Contenu sur les vues dans Drupal 8 . Mais dans Drupal 8.5 le champ Chemin n'est plus pris en charge, vous devez donc corriger ou attendre que la mise à jour soit publiée.
Ajoutez 2 champs à votre vue:
Exclure le champ "Contenu: Node ID" de l'affichage.
Remplacez la sortie de ce champ par du texte personnalisé:
{% trans %} View more {% endtrans %}
Réécrivez le champ "Contenu: Langue de traduction" en tant que lien personnalisé:
{{ langcode_value }}/node/{{ nid }}
Ensuite, accédez à admin/config/regional/translate.
Vous pouvez traduire Voir plus dans n'importe quelle langue désirée: FILTRER LES CORDES TRADUISABLES (Voir plus) et le traduire selon la langue
La réponse de Jturpin m'a aidé à résoudre ce problème. En plus de cela, vous pourriez raccourcir
{% trans %} View more {% endtrans %}
à
{{'View more'|t}}