Наш новый встроенный переводчик Vivaldi позволяет вам переводить страницы целиком быстро и очень просто. А также он не нарушает вашей приватности в отличие от расширений или сервисов вроде Google Translate.
Недавно мы рассказывали о переводчике Vivaldi и о том, как им пользоваться, а также о компании Lingvanex — нашем партнёре, разработавшем данный инструмент.
Сегодня мы погрузимся в тему чуть глубже вместе с Петтером Нильсеном — разработчиком Vivaldi, ответственным за развитие переводчика в браузере. Петтер расскажет, как данная функция работает, а также о том, какие проблемы пришлось решать в процессе реализации данной задачи.
Как работает переводчик Vivaldi?
Петтер: Переводчик работает напрямую с сервером, который и выполняет всю работу по переводу страниц. Серверная часть переводчика была создана компанией Lingvanex. В данном ПО используется машинное обучение, а в качестве «железа» задействовано множество графических карт, установленных в серверах дата-центра в Исландии. По сравнению с возможностями обычных процессоров, процессоры графических карт лучше справляются с тяжёлыми вычислениями, особенно связанными с машинным обучением.
Процесс перевода состоит из следующих шагов:
- Когда вы открываете веб-страницу, весь текст с неё отправляется в CLD v3 (Compact Language Detector v3) — модель нейронной сети, которая определяет язык страницы и уведомляет браузер об этом (подробнее про CLD v3 можно почитать здесь).
- Браузер сравнивает язык страницы с языком, который вы установили для перевода в настройках. Если языки отличаются, появляется небольшое диалоговое окно с кнопкой, позволяющей начать перевод в один клик.
- При нажатии кнопки «Перевести» браузер отправляет специальный скрипт для перевода страницы в компонент ядра, отвечающий за рендеринг веб-страниц.
- Скрипт внедряется в код страницы и запускает процесс перевода страницы на выбранный вами язык.
- Скрипт извлекает все имеющиеся на странице тексты и отправляет их на сервер перевода, а затем получает переведённые данные обратно в браузер. Далее в процессе рендеринга страницы оригинальный текст заменяется на переведённую версию.
- Процесс работы скрипта продолжается до тех пор, пока перевод не будет завершён или пока не произойдёт какая-нибудь ошибка, о которой будет отправлено уведомление в браузер.
- В браузере будет отображено уведомление, сообщающее о том, что перевод завершён, или что произошла ошибка. Обычно данное диалоговое окно исчезает после успешного перевода страницы, при этом в адресной строке Vivaldi остаётся подсвеченной иконка переводчика.
Если в двух словах, то описанный выше процесс позволяет полностью переводить просматриваемые веб-страницы на язык, установленный в браузере, или на указанный вами в раскрывающемся диалоговом окне, в один клик. Вы также можете сделать дополнительные настройки для переводчика:
- Всегда переводить – всегда переводить текущий язык.
- Никогда не переводить – браузер больше никогда не спросит про перевод всех веб-страниц на данном языке.
- Никогда не переводить этот сайт – никогда не спрашивать о переводе данного веб-сайта в будущем.
- Предлагать перевод страниц – отключает автоматический перевод страниц и появление диалогового окна. Кнопка переводчика по-прежнему остаётся в адресной строке, чтобы вы могли активировать перевод вручную или изменить настройки.
Насколько сложно было организовать такое взаимодействие браузера с сервером?
Петтер: Чтобы осуществлять такой перевод, нужна слаженная работа многих компонентов.
Прежде всего — это интерфейс, с помощью которого пользователь управляет работой функции. Далее, браузер должен получать с сервера список поддерживаемых языков. Это нужно делать регулярно, чтобы новые языки сразу попадали в интерфейс браузера.
Но самое важное и сложное — это извлечение текстов из веб-страниц с помощью скриптов и их отправка на сервер для перевода, а затем корректная замена этими частями оригинального текста. При этом перевод должен осуществляться и во время прокрутки страницы, что требует хорошей оптимизации работы скриптов. Мы постоянно улучшаем данные скрипты и процесс этот будет продолжаться по мере получения отзывов от пользователей.
С какими ещё сложностями вам пришлось столкнуться?
Петтер: Можно сказать об определённых проблемах с «железом». Учитывая сложность современной ситуации в мире (речь не столько о пандемии, сколько о буме криптомайнинга), было непросто и довольно затратно заполучить нужное количество мощных видеокарт в нужном количестве.
Другим подводным камнем стал процесс тестирования работы всех модулей после внесения изменений в скрипты переводчика — нам надо было убедиться, что в результате перевод других веб-страниц не пострадает.
При этом важно помнить, что при добавлении нового языка на сервер нам требуется вносить соответствующие изменения и в интерфейс браузера, чтобы новые языки отображались в Vivaldi, причём — на родном для пользователя языке.
Также определённые проблемы составляют страницы с встроенными фреймами или динамически изменяющимися блоками.
И ещё мы заметили, что некоторые форумы осуществляют загрузку страниц не всегда стандартным способом, что «ломает» механизм определения языка и снижает производительность переводчика.
На самом деле не все эти проблемы являются уникальными для переводчика Vivaldi — мы иногда видим аналогичные трудности и в других браузерах. Поэтому мы надеемся оперативно исправлять обнаруживаемые недочёты в процессе дальнейшей разработки переводчика.
И, конечно, наша постоянная забота — это повышение производительности переводчика и улучшение пользовательского интерфейса.
В данный момент доступен только перевод веб-страниц целиком. Планируется ли расширение функциональности?
Петтер: Уже сейчас идёт работа по добавлению опции перевода выделенного на веб-странице текста. Также мы планируем добавить функцию перевода в наш встроенный почтовый клиент, в боковую панель и в другие компоненты браузера.
Попробовать переводчик Vivaldi очень легко. Просто установите версию Vivaldi 4.0 для Windows, Mac или Linux, а также для мобильных устройств под управлением Android 5 или выше. Загрузите браузер прямо сейчас. 🚀
Вы уже попробовали переводчик Vivaldi? Напишите нам ваши пожелания и предложения по добавлению новых языков и дальнейшему улучшению этой полезной функции.
Перевод: Илья Шпаньков