La société Mozilla a publié une version de l'extension Firefox Firefox Translations 0.4 (anciennement développée sous le nom Bergamot Translate) avec la mise en œuvre d'un système autonome de traduction automatique, fonctionnant côté navigateur sans requêtes vers des services externes. Pour traduire d'une langue à une autre, le moteur bergamot-translator est utilisé, développé dans le cadre de l'initiative Bergamot par des développeurs de Mozilla en collaboration avec des chercheurs de plusieurs universités au Royaume-Uni, en Estonie et en République tchèque, avec le soutien financier de l'Union européenne. Le code est distribué sous la licence MPL-2.0.
Le moteur est écrit en C++ et compile à un binaire intermédiaire WebAssembly à l'aide du compilateur Emscripten. Il constitue une interface sur le framework de traduction automatique Marian, qui utilise un réseau de neurones récurrents (RNN) et des modèles de langage basés sur des transformeurs. Pour accélérer l'apprentissage et la traduction, il peut utiliser des GPU. Marian est utilisé pour le service de traduction Microsoft Translator et est principalement développé par des ingénieurs de Microsoft en collaboration avec des chercheurs des universités d'Édimbourg et de Poznań.
Firefox Translations prend en charge la traduction depuis l'estonien et l'espagnol vers l'anglais et vice versa, ainsi que de l'anglais vers l'allemand. La performance de traduction est de 500 à 600 mots par minute. La prise en charge de la priorisation de la traduction du texte visible dans la fenêtre du navigateur est disponible. Dans la nouvelle version, il est possible de télécharger automatiquement des fichiers de modèles lors de la première tentative de traduction. Les fichiers de modèles font environ 15 Mo pour chaque langue. Le téléchargement automatique entraîne un léger délai avant le début de la première traduction, mais réduit considérablement la taille de l'extension elle-même (3,6 Mo au lieu de 124 Mo).
Dans la nouvelle version, le chargement des modèles en mémoire a également été considérablement accéléré — auparavant, le chargement d'un modèle prenait 10 à 30 secondes, maintenant les modèles se chargent presque instantanément. Si la traduction d'une page prend plus de 3 secondes, une indication de progression est présente dans l'interface. La traduction se fait de haut en bas, en commençant par la zone visible. Les parties traduites s'affichent au fur et à mesure qu'elles sont prêtes, tandis que les parties non traduites restent dans la langue d'origine.
L'envoi de télémétrie est activé, incluant des données sur l'interaction de l'utilisateur avec l'interface de l'extension (par exemple, concernant les clics sur le bouton de traduction ou le blocage des traductions pour certains sites), des informations sur le temps d'exécution des opérations et des détails techniques sur le système (CPU, mémoire).
L'extension ne peut être installée pour l'instant que dans les versions nocturnes de Firefox avec la vérification de la signature des extensions désactivée (« xpinstall.signatures.dev-root=true » et « xpinstall.signatures.required=false » dans about:config). Après l'installation de l'extension, Firefox commencera à afficher une barre proposant d'effectuer une traduction pour les pages dont la langue diffère de celle du navigateur et qui est supportée par l'extension. Il est possible de désactiver l'affichage ultérieur de la barre pour une langue ou un site donné.

Rappelons qu'il existe déjà un mécanisme intégré dans Firefox pour traduire des pages, mais il dépend de l'utilisation de services cloud externes (supportant Google, Yandex et Bing) et n'est pas activé par défaut (pour l'activer, il faut modifier les paramètres « browser.translation » dans about:config). Le mécanisme de traduction supporte également la détection automatique de la langue lors de l'ouverture d'une page dans une langue inconnue et affiche un indicateur spécial proposant de traduire la page. La nouvelle extension utilise cette même interface pour interagir avec l'utilisateur, mais au lieu de faire appel à des services externes, elle lance un traitement intégré, traitant les données sur le système de l'utilisateur.

Source : opennet.ru
