feat: machine translation resumes after a page reload
CI / frontend (push) Failing after 14s
CI / backend (push) Failing after 49s

The run is recorded at every page and picked up from the translator's finished job; one run across tabs via Web Locks.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
mrleo1nidandClaude Sonnet 5.5 committed 2026-10-25 20:39:37 +03:00
1 parent 7fa88e4025
commit 68b66a1d94
5 files changed
+200 -30

No files matched your search

+8 -2
View File
@@ -216,8 +216,14 @@ translate russian strings:
* запуск живёт в провайдере выше страниц (`translator/runner.tsx`): перевод идёт,
пока вкладка открыта, даже если уйти из редактора; его карточка с прогрессом и
кнопкой «Остановить» стоит в том же плавающем окне, что и загрузки. Одновременно
работает только один перевод (на все игры и языки), пока он идёт, кнопки
отдельных строк недоступны; закрытие вкладки браузер подтверждает;
работает только один перевод (на все игры и языки; между вкладками это
держит Web Lock), пока он идёт, кнопки
отдельных строк недоступны; закрытие вкладки браузер подтверждает. На каждой странице запуск
записывается в `localStorage` (`pg.translation.run`: что переводится, где
остановились, какое задание отправлено в переводчик). После обновления страницы
сайт сам продолжает: забирает готовое задание из переводчика, сохраняет его и идёт
дальше, а карточка и бейджи снова обновляются. Запись старше 30 минут не
подхватывается;
* автоперевод идёт по списку так, как его видит пользователь: текущая
вкладка («Реплики» или «Имена и меню»), фильтр по файлу и поиск, сверху вниз.
Берутся строки «не переведено» (и «устарело» по желанию) страницами по 40;