Локализация постов в темах с количеством сообщений более 20

В теме с более чем 20 сообщениями переводятся только первые 20; остальные остаются без перевода.

  1. Выберите английский в качестве языка интерфейса (также работает немецкий, так что, полагаю, подойдёт любой язык, кроме китайского).
  2. Откройте любую тему и убедитесь, что переводы отключены.
  3. Откройте Discourse-embed-bilibili(在discourse中插入哔哩哔哩视频)
  4. Прокрутите вниз до последнего сообщения.
  5. Прокрутите обратно к первому сообщению.
  6. Переключите язык на английский.
  7. Прокрутите вниз.

Ожидаемый результат: Все сообщения на английском.
Фактический результат: Первые 20 сообщений на английском, но те, что загружаются при прокрутке, остаются на исходном языке.

Это также происходит в других темах с более чем 20 сообщениями. Я выбрал эту тему в качестве примера, потому что последние сообщения не на английском, что позволяет воспроизвести проблему при использовании английского интерфейса. Если вы выберете другой язык интерфейса, вы сможете воспроизвести это в теме с сообщениями на английском.

1 лайк

Мне потребовалось некоторое время, чтобы понять, но суть ошибки следующая:

Кнопка «Показать оригинал» применяется только к текущей «странице» сообщений и игнорируется при загрузке следующей страницы через прокрутку.

Верно?

Это сводится к тому, что маршрут GET https://meta.discourse.org/t/#{topic.id}/posts.json?post_ids[]=#{posts.id} не учитывает cookie content-localization-show-original: "true".

Возможно :eyes:

Моя проблема заключалась в том, что я читал тему на оригинальном языке. Затем я переключил язык, так как не говорю по-китайски. Это вернуло меня к первому сообщению (я не до конца понимаю, почему; это происходит не всегда. Вот почему я выбрал прокрутку в описанных выше шагах).
И первые 20 сообщений были на английском, но последние всё ещё оставались на китайском.

Думаю, в таком случае параметр show-original: "false" позволил бы мне увидеть все сообщения на английском. Я не пробовал делать наоборот и не проверял запросы. Я не нашёл замену браузеру Kiwi, которая позволяла бы использовать инструменты разработчика на Android.

Я проверил вкладку сети и думаю, что проблема в том, что после переключения для просмотра перевода не отправляется новый запрос для этих постов:

Да, всё верно.

/posts.json?post_ids поддерживает функцию «Показать оригинал», но проблема заключается в том, что фронтенд-хранилище просто загружает существующие посты. Вот исправление, которое также решает раздражающий сдвиг обратно к первому посту.

4 лайка

Это только что было слито. Изменения, скорее всего, появятся в Meta через час, поэтому я буду следить за процессом и закрою задачу, если всё будет в порядке.

РЕДАКТИРОВАНИЕ: Выглядит хорошо — закрываю.

1 лайк

Эта тема была автоматически закрыта через 2 дня. Новые ответы больше не принимаются.