Данное обновление содержит множество кардинальных изменений в структуре расширения. Из-за этого настройки этой версий не является обратно совместимым со старыми версиями расширения. Чтобы избежать каких-либо проблем после обновления мы автоматически конвертируем все ваши настройки под новый формат, но в любом случае рекомендуем проверить правильность настроек после первого запуска обновленного скрипта.
Общее
- Добавлена поддержка IMDb (#1202)
- Добавлена поддержка Bunkr (#1191)
- Добавлена поддержка IGN (#1186)
- Добавлена поддержка Telegram Web K (#1139, #1218)
- Добавлена поддержка "unlisted embed" и "groups/channels/album/showcase videos" для Vimeo
- Исправлена работа Coursehunter (#1211)
- Добавлена авторизация через аккаунт Яндекса для работы "Живых голосов"
- Зайдите в настройки расширения
- Нажмите на кнопку "Авторизоваться"
Авторизуйтесь на сайте через аккаунт Яндекса, подобно тому, как вы входите в другие сервисы с помощью социальных аккаунтов. После успешной авторизации и редиректа на страницу "профиля" на сайте вы можете вернуться к расширению. Это действие нужно выполнить только 1 раз, чтобы получить токен доступа к API. Время жизни авторизации - 1 год.
- Нажмите на кнопку "Обновить" рядом с кнопкой "Авторизоваться"
- После выполнения всех пунктов у вас должен появиться никнейм аккаунта и ваша аватарка (загружается с серверов Яндекса, поэтому у некоторых пользоватей может быть недоступна) левее кнопки "Авторизоваться" в меню расширения
* Для повторной авторизации выйдите с аккаунта на сайте и заново на нем авторизуйтесь. Не забудьте нажать на кнопку "Обновить" в меню расширения, чтобы обновить данные в активной вкладке без перезагрузки страницы.
* Для работы данной функции вы должны использовать современный загрузчик скриптов (Tampermonkey, Violentmonkey и т.п.), который поддерживает GM Storage т.к. данная функция требует синхронизации настроек между сайтами.
-
Добавлена смена языка меню без перезагрузки страницы
-
Добавлена поддержка установки сочетания клавиш в качестве хоткея (в #1234)
-
Добавлена возможность "отменить" еще незавершенный перевод видео при повторном нажатие на кнопку перевода
-
Добавлена смена положения кнопки перевода через меню (положение меняется только в широких плеерах с шириной более 600 пикселей)
* ранее положение кнопки перевода можно было изменить только перетащив ее мышкой в левую/правую часть плеера
-
Добавлена настройка времени до скрытия кнопки перевода. Доступные значения от 0.1 до 3 секунд, значение по умолчанию 1 секунда
-
Добавлено сохранение выставленной настройки "Режим проксирования" для пользователей из стран в которых сервера Яндекса недоступны (#1204 в #1233)
-
Визуальные изменения настроек в меню расширения
- Блок "О расширении" вынесен в отдельное подменю
- Добавлено подменю "Оформление интерфейса"
- Добавлена обводка для тултипов для выделения на фоне
- Добавлен блок "Настройки горячих клавиш"
- Добавлен блок "Другие настройки"
- Функция "Формат для загрузки субтитров" пересена из подменю "Оформление субтитров" в блок "Настройки субтитров"
- Функции "Сервис перевода текста", "Сервис определения языка" и "Переводить ошибки API" (недоступно с включенным русским языком меню) перенесены в блок "Другие настройки"
- Функция "Язык меню" перенесена в подменю "Оформление интерфейса"
- Функция "Показывать кнопку 'Картинка в картинке'" (недоступно в Firefox) перенесена в подменю "Оформление интерфейса"
- Функция "Не переводить с родного языка" переименована в "Не переводить с выбранных языков"
- Функция "Использовать эксперементальный вариант голосов Yandex для некоторых видеороликов" переименована в "Использовать живые голоса. Будто все знают русский."
- Добавлено отображение единиц измерения для слайдеров "Максимальная длина субтитров", "Размер шрифта субтитров" и "Прозрачность фона субтитров"
- Улучшен визуал слайдера "Уменьшать громкость видео до", теперь, текущее значение находится после фразы, а не переносится на новую строчку
- Изменен дизайн настройки хоткеев
-
Улучшен UX "ленивой" загрузки субтитров
До
При первом нажатии субтитры загружаются в фоновом режиме. Единственное, что об этом показывает - это иконка загрузки в кнопке перевода. После того, как субтитры от Яндекса были загружены появляется меню со списком субтитров.

После
При первом нажатии субтитры загружаются в фоновом режиме, но меню со списком субтитров появляется мгновенно. Благодаря этому вы можете сразу выбрать уже существующие субтитры от сайта, а не ждать для этого завершения загрузки субтитров от Яндекса. Для индикации загрузки субтитров от Яндекса добавлен лоадер в самом низу модального окна.

- Убран сломанный 9AnimeTV (#1198)
- Исправлена работа Kodik с зашифрованными ссылками
- Исправлена работа
/client/disk
для Yandex Disk (#1206) - Исправлена работа Poketube
- Исправлена ошибка из-за которой, если в кнопке перевода отображалась ошибка, то повторное нажатие не сбрасывало состояние кнопки перевода
- Улучшена очистка названия загружаемых файлов
- Небольшая оптимизация работы расширения
Техническая часть
-
Добавлена загрузка аудио для правильной обработки статус кода перевода AUDIO_REQUESTED на YouTube
Ранее, расширение полностью полагалось на фичу, которая позволяла сразу отправить ошибку загрузки аудио для продолжения перевода. Это работало, но такой подход был неправильным и заставлял сервера Яндекса загружать аудио самостоятельно. Вследствие, отсутствия клиентской загрузки аудио, в последнее время, стали возникать случаи, что запрос нового перевода иногда падал с ошибкой "Возникла ошибка при переводе, попробуйте позже", хотя, это же видео успешно переводилось в ЯБраузере.
Теперь, расширение сначала будет пытаться загрузить аудио файл, а если у него это не получится, то будет отправлять сообщение об ошибке загрузки. Данную функцию можно отключить, но делать это КРАЙНЕ НЕ РЕКОМЕНДУЕТСЯ т.к. это может негативно повлять на работу расширения и привести к ошибкам при переводе.
* не работает в UserScripts и прочих загрузчиках, где нет
unsafeWindow
API. -
Частично переработана архитектура кода расширения =>
- Большая часть кода переписана на TypeScript
index.js
разделен на более мелкие функциональные файлы- Пересмотрена логика взаимодействия между основными классами
- Взаимодействие с UI компонентами вынесено в отдельные файлы-компоненты и частично переписано
-
Исправлена ошибка из-за которой некоторые эвенты тултипов не удалялись
-
Добавлена поддержка GM v4 API для взаимодействия с VOT Storage. Все синхронные методы теперь являются "приватными" и не должны использоваться за пределами класса VOTStorage
Это необходимо, чтобы минимизировать проблемы, когда в каком-то из загрузчиков может не оказаться синхронного или наоборот асинхронного GM Storage API
- Значения при взаимодействие с localStorage, теперь, обрабатываются с помощью JSON.stringify / JSON.parse, что позволяет перейти от использования int boolean (0 | 1) к обычному (true | false)
- Изменена логика обработки и получения фраз локализации. Добавлена типизация для доступных фраз.
- Ускорена сборка расширения с помощью замены
ls-loader
на@sucrase/webpack-loader
- Включена минимальная минификация обычной сборки с помощью
oxc-minify-webpack-plugin
для уменьшения размера - Убрано использование библиотеки Anime.js
- Другие небольшие улучшения и изменения связанные с кодовой базой
What's Changed
- refactor: rename proxyOnlyExtensions to nonProxyExtensions and update related logic by @SashaXser in #1196
- Update README by @ACherepkov1989 in #1229
- Improved proxy mode selection function (x2) by @progzone122 in #1233
- Improving hotkeys settings by @progzone122 in #1234
- Added safe check for undefined videoData before accessing videoId by @progzone122 in #1236
- Release v1.10.0 by @ilyhalight in #1250
New Contributors
- @progzone122 made their first contribution in #1233
Full Changelog: 1.9.5.2...1.10.0