Views 3.8 de type content translation

Vue de type contenu, page, Format tableau

Le field "Node translation: Translation set node ID" affiche l'ID du body FR (ici sur les pages seules, crées au début du site):
Views 3.8 : afficher Node translation: Translation set node IDEt s'il n'y a pas de traduction en anglais, il affiche la valeur 0.
Pour un article en anglais seul, il est égal au NID.

Le field "translation status" affiche presque toujours non. Une seule occurence de "sujet de forum" a un oui, et a cochée "Cette traduction doit être mise à jour ".

Tous ces contenus ont été créés au tout début du site.

 

 

 

 

 

Un ex simple (sur un seul type de contenu)

Sans relation ni filtre contextuel, dans add filter criteria on trouve: Views 3.8 : choix critères de filtre selon traduction (i18n module) et avec Source translation Views 3.8 : configuration du filtre selon Source translation.
Reste à ajouter les relations, via "Content translation: Translations" (une fois pour le fr, une fois pour le en... une relation par langue).

En ajoutant la 1ere relation, j'ai ce choix: Views 3.8 : configurer une relationTranslations (Traduction du contenu) puis Views 3.8 : configurer une relation Translation pour le fr - on verra qu'il ne faut pas cocher la case ("Require this relationship" cochée -> INNER JOIN)

SELECT node.title AS node_title, node.nid AS nid, node.language AS node_language, node.type AS node_type, node.tnid AS node_tnid, node.translate AS node_translate, node.changed AS node_changed, node.promote AS node_promote
FROM 
{node} node
INNER JOIN {node} node_node ON node.nid = node_node.tnid AND node_node.language = 'fr'
WHERE (( (node.status = '1') AND (node.type IN  ('cv')) AND (node.tnid = node.nid OR node.tnid = 0) ))
ORDER BY node_changed DESC
LIMIT 10 OFFSET 0

Mais il ne s'affiche plus que le francais. En désactivant "require relationship" on a un LEFT JOIN:

SELECT node.title AS node_title, node.nid AS nid, node.language AS node_language, node.type AS node_type, node.tnid AS node_tnid, node.translate AS node_translate, node.changed AS node_changed, node.promote AS node_promote
FROM 
{node} node
LEFT JOIN {node} node_node ON node.nid = node_node.tnid AND node_node.language = 'fr'
WHERE (( (node.status = '1') AND (node.type IN  ('cv')) AND (node.tnid = node.nid OR node.tnid = 0) ))
ORDER BY node_changed DESC
LIMIT 10 OFFSET 0

 

Faire idem pour l'anglais (id "transen"): Views 3.8 : configurer une relation Translation  pour l'anglais.

Ajouter le titre et "edit link" en se basant sur transen, ils apparaitront à droite. Comme "edit FR" n'utilise aucune relation, on voit les contenus non-traduits (translation set node id apparait avec 0, et titre anglais vide).

SELECT node.title AS node_title, node.nid AS nid, node.language AS node_language, node.type AS node_type, node.tnid AS node_tnid, node.translate AS node_translate, node.changed AS node_changed, node.promote AS node_promote, node_node_1.title AS node_node_1_title, node_node_1.nid AS node_node_1_nid, node_node_1.language AS node_node_1_language, node_node_1.tnid AS node_node_1_tnid
FROM 
{node} node
LEFT JOIN {node} node_node ON node.nid = node_node.tnid AND node_node.language = 'fr'
LEFT JOIN {node} node_node_1 ON node.nid = node_node_1.tnid AND node_node_1.language = 'en'
WHERE (( (node.status = '1') AND (node.type IN  ('cv')) AND (node.tnid = node.nid OR node.tnid = 0) ))
ORDER BY node_changed DESC
LIMIT 10 OFFSET 0