Как работает переводчик Vivaldi

Разработчики Vivaldi рассказывают о встроенном переводчике веб-страниц.

Переводчик Vivaldi

Наш новый встроенный переводчик Vivaldi позволяет вам переводить страницы целиком быстро и очень просто. А также он не нарушает вашей приватности в отличие от расширений или сервисов вроде Google Translate.

Недавно мы рассказывали о переводчике Vivaldi и о том, как им пользоваться, а также о компании Lingvanex — нашем партнёре, разработавшем данный инструмент.

Сегодня мы погрузимся в тему чуть глубже вместе с Петтером Нильсеном — разработчиком Vivaldi, ответственным за развитие переводчика в браузере. Петтер расскажет, как данная функция работает, а также о том, какие проблемы пришлось решать в процессе реализации данной задачи.

Петтер Нильсен на своей любимой “кушетке для размышлений”.

Как работает переводчик Vivaldi?

Петтер: Переводчик работает напрямую с сервером, который и выполняет всю работу по переводу страниц. Серверная часть переводчика была создана компанией Lingvanex. В данном ПО используется машинное обучение, а в качестве «железа» задействовано множество графических карт, установленных в серверах дата-центра в Исландии. По сравнению с возможностями обычных процессоров, процессоры графических карт лучше справляются с тяжёлыми вычислениями, особенно связанными с машинным обучением.

Процесс перевода состоит из следующих шагов:

  • Когда вы открываете веб-страницу, весь текст с неё отправляется в CLD v3 (Compact Language Detector v3) — модель нейронной сети, которая определяет язык страницы и уведомляет браузер об этом (подробнее про CLD v3 можно почитать здесь).
  • Браузер сравнивает язык страницы с языком, который вы установили для перевода в настройках. Если языки отличаются, появляется небольшое диалоговое окно с кнопкой, позволяющей начать перевод в один клик.
  • При нажатии кнопки «Перевести» браузер отправляет специальный скрипт для перевода страницы в компонент ядра, отвечающий за рендеринг веб-страниц.
  • Скрипт внедряется в код страницы и запускает процесс перевода страницы на выбранный вами язык.
  • Скрипт извлекает все имеющиеся на странице тексты и отправляет их на сервер перевода, а затем получает переведённые данные обратно в браузер. Далее в процессе рендеринга страницы оригинальный текст заменяется на переведённую версию.
  • Процесс работы скрипта продолжается до тех пор, пока перевод не будет завершён или пока не произойдёт какая-нибудь ошибка, о которой будет отправлено уведомление в браузер.
  • В браузере будет отображено уведомление, сообщающее о том, что перевод завершён, или что произошла ошибка. Обычно данное диалоговое окно исчезает после успешного перевода страницы, при этом в адресной строке Vivaldi остаётся подсвеченной иконка переводчика.

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

  • Всегда переводить – всегда переводить текущий язык.
  • Никогда не переводить – браузер больше никогда не спросит про перевод всех веб-страниц на данном языке.
  • Никогда не переводить этот сайт – никогда не спрашивать о переводе данного веб-сайта в будущем.
  • Предлагать перевод страниц – отключает автоматический перевод страниц и появление диалогового окна. Кнопка переводчика по-прежнему остаётся в адресной строке, чтобы вы могли активировать перевод вручную или изменить настройки.
Настройте свои предпочтения перевода

Насколько сложно было организовать такое взаимодействие браузера с сервером?

Петтер: Чтобы осуществлять такой перевод, нужна слаженная работа многих компонентов.

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

Но самое важное и сложное — это извлечение текстов из веб-страниц с помощью скриптов и их отправка на сервер для перевода, а затем корректная замена этими частями оригинального текста. При этом перевод должен осуществляться и во время прокрутки страницы, что требует хорошей оптимизации работы скриптов. Мы постоянно улучшаем данные скрипты и процесс этот будет продолжаться по мере получения отзывов от пользователей.

С какими ещё сложностями вам пришлось столкнуться?

Петтер: Можно сказать об определённых проблемах с «железом». Учитывая сложность современной ситуации в мире (речь не столько о пандемии, сколько о буме криптомайнинга), было непросто и довольно затратно заполучить нужное количество мощных видеокарт в нужном количестве.

Другим подводным камнем стал процесс тестирования работы всех модулей после внесения изменений в скрипты переводчика — нам надо было убедиться, что в результате перевод других веб-страниц не пострадает.

При этом важно помнить, что при добавлении нового языка на сервер нам требуется вносить соответствующие изменения и в интерфейс браузера, чтобы новые языки отображались в Vivaldi, причём — на родном для пользователя языке.

Также определённые проблемы составляют страницы с встроенными фреймами или динамически изменяющимися блоками.

И ещё мы заметили, что некоторые форумы осуществляют загрузку страниц не всегда стандартным способом, что «ломает» механизм определения языка и снижает производительность переводчика.

На самом деле не все эти проблемы являются уникальными для переводчика Vivaldi — мы иногда видим аналогичные трудности и в других браузерах. Поэтому мы надеемся оперативно исправлять обнаруживаемые недочёты в процессе дальнейшей разработки переводчика.

И, конечно, наша постоянная забота — это повышение производительности переводчика и улучшение пользовательского интерфейса.

В данный момент доступен только перевод веб-страниц целиком. Планируется ли расширение функциональности?

Петтер: Уже сейчас идёт работа по добавлению опции перевода выделенного на веб-странице текста. Также мы планируем добавить функцию перевода в наш встроенный почтовый клиент, в боковую панель и в другие компоненты браузера.

Как работает переводчик Vivaldi в плане приватности?

Попробовать переводчик Vivaldi очень легко. Просто установите версию Vivaldi 4.0 для Windows, Mac или Linux, а также для мобильных устройств под управлением Android 5 или выше. Загрузите браузер прямо сейчас. 🚀

Вы уже попробовали переводчик Vivaldi? Напишите нам ваши пожелания и предложения по добавлению новых языков и дальнейшему улучшению этой полезной функции.

Перевод: Илья Шпаньков

Выйдите из-под контроля техногигантов

Загрузить Vivaldi