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'.

Kasper
la source

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

Taras Germanyuk d'Ukraine
la source
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é.

cjoy
la source
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.

hugronaphor
la source
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

Jorge Díaz
la source