- Shipped
- 10 мая 2026 г. в 04:33 UTC
- Author
- Kamo
- Commit
- c0a87b7
Два режима сбоя были неразличимы в ответе, поэтому сценарий Они не могли отличить друг от друга и продолжали переводить одни и те же ключи на английский. на каждом запуске синхронизации, со случайными подмножествами, преуспевающими благодаря которым точные Запрос LibreTranslate произошел во время перезапуска рабочего: 1. Провайдер ошибся (тайм-аут, 5xx, соединение отказано в середине перезапуска) 2. Провайдер добился успеха, но вернул источник без изменений (законно "нет" «Необходим перевод» — собственные существительные, фирменные наименования и т.д. Оба закончили тем, что написали источник в качестве перевода. Изменения: LibreTranslateProvider / BergamotProvider: 3 попытки с 1s/3s обратная связь для переходных отказов (5xx, 429, тайм-аут, соединение) ошибки; 4xx (не-429) распространяется немедленно, потому что Неправильная просьба никогда не поможет. Тайм-аут запроса на вызов = 30. Бросает на повторный исчерпание вместо возврата исходного текста. * ProviderRouter: теперь различает "каждого поддерживающего поставщика" «Ошибка» (броски) из «по крайней мере, один преуспел, но вернулся» (законный проход — возвращает текст). Нет поддержки без изменений. ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** Уловы за исключением ключей, Собирает их в новом несостоявшемся списке Keys по ответу, и опускает Неудачные ключи от сообщений. * BatchTranslateResponse: добавляется неудавшееся поле Keys. Перевод.ts: читает неудавшиеся ключи, никогда не записывает эти ключи обратно. [скрыто], [скрыто], [скрыто], [скрыто], [скрыто], [скрыто], [скрыто] Значение английского языка на месте — что на следующем пробеге удовлетворяет cur====enVal и перезаказывает именно те ключи для повторного использования. Тесты: добавлены регрессионные тесты для «всех провайдеров, ошибающихся бросков», по меньшей мере одному из них удалось вернуть текст без изменений, "маршрутизатор" «Переходная первичная ошибка» и TranslationService Правильное разделение на сообщения против неудачных ключей.