Ожидаемый результат: Все сообщения на английском. Фактический результат: Первые 20 сообщений на английском, но те, что загружаются при прокрутке, остаются на исходном языке.
Это также происходит в других темах с более чем 20 сообщениями. Я выбрал эту тему в качестве примера, потому что последние сообщения не на английском, что позволяет воспроизвести проблему при использовании английского интерфейса. Если вы выберете другой язык интерфейса, вы сможете воспроизвести это в теме с сообщениями на английском.
Мне потребовалось некоторое время, чтобы понять, но суть ошибки следующая:
Кнопка «Показать оригинал» применяется только к текущей «странице» сообщений и игнорируется при загрузке следующей страницы через прокрутку.
Верно?
Это сводится к тому, что маршрут GET https://meta.discourse.org/t/#{topic.id}/posts.json?post_ids[]=#{posts.id} не учитывает cookie content-localization-show-original: "true".
Моя проблема заключалась в том, что я читал тему на оригинальном языке. Затем я переключил язык, так как не говорю по-китайски. Это вернуло меня к первому сообщению (я не до конца понимаю, почему; это происходит не всегда. Вот почему я выбрал прокрутку в описанных выше шагах).
И первые 20 сообщений были на английском, но последние всё ещё оставались на китайском.
Думаю, в таком случае параметр show-original: "false" позволил бы мне увидеть все сообщения на английском. Я не пробовал делать наоборот и не проверял запросы. Я не нашёл замену браузеру Kiwi, которая позволяла бы использовать инструменты разработчика на Android.
/posts.json?post_ids поддерживает функцию «Показать оригинал», но проблема заключается в том, что фронтенд-хранилище просто загружает существующие посты. Вот исправление, которое также решает раздражающий сдвиг обратно к первому посту.
Это только что было слито. Изменения, скорее всего, появятся в Meta через час, поэтому я буду следить за процессом и закрою задачу, если всё будет в порядке.