Vues 3, filtre contextuel sur la langue - autorise plusieurs langues


8

Donc, pour ce site que je construis, je dois pouvoir faire ce qui suit.

  1. Lorsque l'utilisateur consulte le site en anglais, affichez tous les articles en anglais
  2. Lorsque l'utilisateur consulte le site en néerlandais, affichez tous les articles en néerlandais - mais aussi les articles en anglais non traduits
  3. Lorsque l'utilisateur consulte le site en allemand, affichez tous les articles allemands - mais également les articles non traduits en anglais.

Le filtre contextuel «Traduction de contenu: langue» ne permet de mettre qu'une seule valeur. C'est soit une langue spécifiée, soit toutes.

Mais dans mon cas, il faudrait pouvoir définir par exemple "en + nl" ou "en + de". Comme on peut le faire avec la taxonomie 'Has Taxonomy', je voudrais quelque chose comme 'Has Language'.

Réponses:


3

J'ai résolu cette tâche comme suit:

  • Pour "Lorsque la valeur de filtre n'est pas disponible", sélectionnez l'option "Fournir la valeur par défaut".
  • puis utilisez "PHP Code" comme valeur pour "Type"
  • le code PHP réel que j'ai ajouté est comme indiqué dans la capture d'écran ci-dessous:

entrez la description de l'image ici


Ajout de php sur une vue? C'est moche ..... Cela résout le problème mais je ne pense pas que ce soit une bonne idée.
itsdarrylnorris

Cela peut être hackish mais cela m'a exactement donné ce qui est nécessaire pour une exigence légèrement différente - une page de vue, avec des préfixes de langue: site.com/en et site.com/ja ... Lorsque l'utilisateur est sur EN, affiche tout le contenu avec Contenu EN; lorsqu'il est basculé sur l'interface JA, affiche uniquement le contenu avec la traduction JA. Merci!
jaesperanza

2

Une solution consisterait à utiliser la traduction sur le terrain:

  1. Définissez «Activer la langue de secours» sur actif dans la page de configuration de la traduction d'entité.
  2. Définissez la vue pour utiliser la langue utilisateur actuelle (Avancé> Autre> Langue du champ).

Terminé.


ne peut pas voir une option "Activer le repli linguistique" sur cette page. besoin d'installer le module de traduction d'entité avant, je pense ...
headkit

sinon, comment accéderiez-vous à la page de configuration des modules? J'aurais dû le souligner plus clairement, alors merci d'avoir ajouté cette information.
cjoy

1

Je suppose que vous avez besoin de ce module: https://www.drupal.org/project/select_translation

il fournit une fonctionnalité de secours linguistique pour les nœuds traduits avec la traduction de contenu (pas la traduction d'entité) à l'intérieur des listes de vues. Il s'agit d'une alternative à l'option Vues "Field Language" qui ne fonctionnerait pas pour les nœuds traduits avec Content Translation.


1

Pour avoir une vue avec un repli de langue par défaut si une traduction de noeud n'existe pas, puis afficher la langue par défaut , assurez-vous UNCHECK:

X Si nécessaire, ajoutez la condition de langue de champ à la requête

entrez la description de l'image ici

entrez la description de l'image ici

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.