Attendu : Tous les messages sont en anglais. Résultat actuel : Les 20 premiers messages sont en anglais, mais ceux chargés lors du défilement sont dans la langue d’origine.
Cela fonctionne également sur d’autres sujets comportant plus de 20 messages. J’ai choisi ce message comme exemple car les derniers messages ne sont pas en anglais, il peut donc être reproduit avec une interface en anglais. Si vous choisissez une autre langue d’interface, vous pouvez le reproduire sur un sujet avec des messages en anglais également.
J’ai mis du temps à comprendre, mais l’essentiel du bug est :
Le bouton « Afficher l’original » ne s’applique qu’à la « page » actuelle des publications et n’est pas respecté lors du chargement de la page suivante par défilement.
C’est bien ça ?
Cela remonterait à la route GET https://meta.discourse.org/t/#{topic.id}/posts.json?post_ids[]=#{posts.id} qui ne respecterait pas le cookie content-localization-show-original: "true".
Mon problème était que je lisais le sujet dans la langue d’origine. Ensuite, j’ai utilisé le bouton de basculement, car je ne parle pas chinois. Cela m’a ramené au premier message (je ne comprends pas entièrement pourquoi ; cela n’arrive pas toujours. C’est pourquoi j’ai choisi de faire défiler dans les étapes ci-dessus).
Et ensuite, les 20 premiers messages étaient en anglais, mais les derniers étaient toujours en chinois.
Je pense que dans ce cas, un show_original=false serait ce dont j’avais besoin pour voir tous les messages en anglais.
J’ai vérifié l’onglet réseau et je pense que le problème est qu’il n’y a pas de nouvelle requête pour ces messages après que j’ai utilisé le commutateur pour afficher la traduction :
Le /posts.json?post_ids prend bien en charge « montrer l’original », mais le problème vient du fait que le magasin frontend ne charge que les publications existantes. Voici une correction qui résout également le problème agaçant du retour au premier message.