Esperado: Todos os posts estão em inglês. Resultado real: Os primeiros 20 posts estão em inglês, mas aqueles carregados ao rolar estão no idioma original.
Isso também funciona em outros tópicos com mais de 20 posts. Escolhi este post como exemplo porque os últimos posts não estão em inglês, então ele pode ser reproduzido com uma interface em inglês. Se você escolher um idioma de interface diferente, poderá reproduzi-lo em um tópico com posts em inglês também.
Demorou um pouco para entender, mas a essência do bug é:
O botão “Mostrar Original” só se aplica à “página” atual de posts e não é respeitado ao carregar a próxima página através da rolagem.
Certo?
Isso desceria até a rota em GET https://meta.discourse.org/t/#{topic.id}/posts.json?post_ids[]=#{posts.id} não respeitando o cookie content-localization-show-original: "true".
Meu problema era que eu estava lendo o tópico no idioma original. Então usei o alternador, porque não falo chinês. Isso me levou de volta à primeira postagem (não entendo completamente por quê; nem sempre acontece. É por isso que escolhi rolar nas etapas acima).
E então as primeiras 20 postagens estavam em inglês, mas as últimas ainda estavam em chinês.
Acho que, nesse caso, um show_original=false seria o que eu precisava para ver todas as postagens em inglês.
Verifiquei a aba de rede e acho que o problema é que não há uma nova solicitação para essas postagens depois que usei o alternador para ver a tradução:
O /posts.json?post_ids atende ao “mostrar original”, mas o problema é devido à loja frontend apenas carregar as postagens existentes. Aqui está uma correção que também aborda o irritante retorno à primeira postagem.