Компания Mozilla опубликовала выпуск Firefox-дополнения Firefox Translations 0.4 (ранее развивалось под именем Bergamot Translate) с реализацией самодостаточной системы машинного перевода, работающей на стороне браузера без обращения к внешним сервисам. Для перевода с одного языка на другой задействован движок bergamot-translator, развиваемый в рамках инициативы Bergamot разработчиками из Mozilla совместно с исследователями нескольких университетов Великобритании, Эстонии и Чехии при финансовой поддержке Евросоюза. Код распространяется под лицензией MPL-2.0.

Движок написан на языке C++ и компилируется промежуточное бинарное представление WebAssembly при помощи компилятора Emscripten. Движок представляет собой обвязку над фреймворком машинного перевода Marian, в котором применяется рекуррентная нейронная сеть (RNN) и языковые модели на основе трансформеров. Для ускорения обучения и перевода может использоваться GPU. Marian используется для обеспечения работы сервиса перевода Microsoft Translator и развивается в основном инженерами из Microsoft совместно с исследователями из Эдинбургского и Познанского университетов.

В Firefox Translations реализована поддержка перевода с эстонского и испанского языков на английский и наоборот, а также с английского на немецкий. Производительность перевода составляет 500-600 слов в минуту. Имеется поддержка приоритизации перевода текста, видимого в окне браузера. В новой версии предоставлена возможность автоматической загрузки файлов с моделями при первой попытке перевода. Файлы с моделями занимают примерно 15 МБ для каждого языка. Автоматическая загрузка приводит к небольшой задержке перед началом первого перевода, но кардинально сокращает размер самого дополнение (3.6 МБ вместо 124 МБ).

В новой версии также значительно ускорена загрузка моделей в память — раньше на загрузку модели требовалось 10-30 секунд, а теперь модели загружаются почти мгновенно. Если перевод страницы занимает более 3 секунд в интерфейсе обеспечена индикация прогресса выполнения операции. Перевод осуществляется последовательно сверху вниз, начиная с видимой области. Переведённые части показываются по мере готовности, а не переведённые остаются на исходном языке.

Включена отправка телеметрии, пердающей данные о взаимодействии пользователя с интерфейсом дополнения (например, о нажатии кнопки перевода или запрете переводов для определённых сайтов), информацию о производительности выполнения операций и технические сведения о системе (CPU, память).

Дополнение пока может быть установлено только в ночных сборках Firefox при отключении проверки дополнений по цифровой подписи («xpinstall.signatures.dev-root=true» и «xpinstall.signatures.required=false» в about:config).
После установки дополнения Firefox начнёт выводить панель с предложением выполнить перевод для страниц, язык которых отличается от языка браузера и поддерживается в дополнении. Предоставляется возможность отключить дальнейший вывод панели для заданного языка или сайта.

Напомним, что в Firefox уже имеется встроенный механизм для перевода страниц, но он завязан на использовании внешних облачных сервисов (поддерживаются Google, Yandex и Bing) и не активирован по умолчанию (для включения в about:config следует изменить настройки «browser.translation»). Механизм перевода в том числе поддерживает автоматическое определение языка при открытии страницы на неизвестном языке и выводит специальный индикатор с предложением осуществить перевод страницы. Новое дополнение использует похожий интерфейс для взаимодействия с пользователем, но вместо обращения к внешним сервисам запускается встроенный обработчик, обрабатывающий данные на системе пользователя.