Ce qui se passe dans votre navigateur
Ce site affirme que votre texte ne part nulle part. Une affirmation ne vaut rien si personne ne peut la contrôler : cette page dit exactement ce que votre appareil fait, ce qu’il demande et à qui, et comment le vérifier vous-même en deux minutes, sans nous croire sur parole.
La promesse, et ce qu’elle veut dire au juste
Un traducteur en ligne ordinaire envoie votre texte à un serveur, qui calcule et renvoie la réponse. Votre phrase sort donc de chez vous, traverse le réseau, arrive chez quelqu’un. Ce qu’il en fait ensuite ne dépend plus de vous : vous ne pouvez que lire ce qu’il en promet.
Ici, le montage est différent, et la différence n’est pas une politique, c’est une architecture. Nous ne servons que des fichiers : une page, une feuille de style, un programme de traduction en WebAssembly, des modèles de langue. Il n’existe chez nous aucun code qui s’exécute, donc aucun code qui pourrait recevoir une phrase. Votre navigateur télécharge le nécessaire, puis calcule tout seul.
La conséquence pratique est simple : il n’y a rien à nous demander de supprimer, parce que nous n’avons jamais rien reçu.
Ce n’est pas une raison de nous faire confiance. C’est une raison de pouvoir se passer de nous faire confiance : la suite de cette page vous donne les gestes.
Deux moteurs, et la boîte dit lequel a travaillé
Les navigateurs récents embarquent leur propre traducteur, modèles compris. Quand le vôtre en a un et qu’il accepte la direction demandée, c’est lui qui calcule, et vous ne téléchargez alors aucun modèle chez nous : pas un octet. Quand il n’en a pas, ou quand il refuse cette direction, notre moteur prend le relais et fait le travail comme il l’a toujours fait. La boîte essaie le premier, retombe sur le second, et ne laisse personne devant un écran bloqué.
Nous ne devinons pas cela au nom de votre navigateur. Un nom se maquille, vieillit, et se trompe dans les deux sens : nous avons mesuré sur nos propres postes un navigateur qui expose l’objet du traducteur et refuse toutes les directions, et un autre qui l’expose et ne répond jamais. La boîte demande donc au navigateur s’il sait faire cette direction précise, elle attend sa réponse un court instant, et s’il se tait elle considère qu’il n’a rien à proposer.
Dans les deux cas, la règle qui tient tout ne bouge pas : le calcul se fait sur votre appareil, et votre texte ne part nulle part. Le reste change, et nous préférons l’écrire.
Quand le modèle n’est pas le nôtre, nous ne pouvons pas répondre de sa qualité comme nous répondons de la nôtre.
C’est pourquoi la boîte nomme son moteur après chaque traduction, en clair, sous le résultat. Le résultat le porte aussi dans son balisage, sous un attribut data-moteur qui vaut natif quand le navigateur a traduit et odersa quand c’est notre moteur : deux valeurs, pas une troisième, pour que le contrôle se fasse de l’extérieur et pas seulement à l’œil.
Ce que nous savons du traducteur d’un navigateur : nous ne l’avons pas entraîné, nous ne savons pas sur quoi il l’a été, et les scores de qualité que nous publions pour chaque direction ne le concernent pas, puisqu’ils mesurent les modèles de Mozilla. Nous savons en revanche qu’il calcule sur l’appareil, et c’est la seule chose que ce site exige d’un moteur.
Le pack de langue d’un navigateur ne vient pas de chez nous : c’est votre navigateur qui va le chercher chez son éditeur, hors de la page. Il n’apparaît donc pas dans l’inspecteur réseau de la page, où vous ne verrez rien s’ajouter du tout. Votre texte, lui, ne bouge pas davantage qu’avant.
Vérifiez-le vous-même, à l’inspecteur réseau
Tout navigateur récent embarque un inspecteur. Il montre chaque requête qui sort de la page, sa destination, sa taille et son sens. C’est l’outil que nous utiliserions nous-mêmes pour contrôler un site tiers, et il ne peut pas mentir en notre faveur : il appartient à votre navigateur, pas à nous.
Les gestes, dans l’ordre
- Ouvrez la boîte de traduction dans un nouvel onglet.
- Ouvrez l’inspecteur : la touche F12, ou Ctrl + Maj + I, ou Cmd + Option + I sur un Mac. Choisissez l’onglet Réseau.
- Rechargez la page une fois, l’inspecteur ouvert, pour qu’il voie tout depuis le début.
- Regardez la liste. Elle ne doit contenir que des adresses de ce site. Aucune ne doit pointer vers un autre domaine : ni police, ni mesure d’audience, ni bibliothèque hébergée ailleurs. Cette page-ci n’en émet aucune non plus.
- Écrivez une phrase dans la boîte, choisissez une langue d’arrivée, et cliquez sur Traduire.
- Regardez ce qui s’ajoute. Si votre navigateur n’a pas son propre traducteur : le moteur, puis les fichiers de la direction demandée, tous en lecture, tous depuis ce site. S’il en a un, il ne s’ajoute rien du tout, et la boîte écrit sous le résultat que c’est lui qui a traduit.
- Cherchez maintenant une requête qui contiendrait votre phrase. Filtrez sur les envois, triez par méthode : il n’y a aucun envoi. Pas un seul. Votre texte n’apparaît dans aucune requête, parce qu’aucune requête ne le transporte.
Le contrôle qui ne trompe pas
Une preuve plus courte, et plus difficile à contester : traduisez une première fois avec le réseau, puis coupez-le entièrement, mode avion compris. Rechargez la page et retraduisez dans la même direction. La traduction se fait. Un service qui envoie votre texte quelque part ne peut pas fonctionner sans réseau ; celui-ci le peut, parce qu’il n’envoie rien.
Ce que votre appareil demande, exactement
Quatre choses au plus, et rien d’autre. Toutes sur ce domaine, toutes en lecture seule. Les deux dernières ne partent que si votre navigateur n’a pas son propre traducteur.
| Ce qui est demandé | À quel moment | Poids |
|---|---|---|
| La page, sa feuille de style, ses polices | à l’ouverture | quelques centaines de kilo-octets |
| La liste des langues servies | à l’ouverture | moins de cent kilo-octets |
| Le moteur en WebAssembly | au premier clic sur Traduire, et seulement si le navigateur ne traduit pas lui-même | 5 Mo, une seule fois |
| Les fichiers de la direction choisie | au premier usage de cette direction, dans le même cas | environ 20 Mo |
Ouvrir l’accueil ne télécharge aucun modèle : la boîte est utilisable tout de suite, et le poids ne part qu’au moment où quelqu’un demande vraiment une traduction. Nous servons en tout 346 fichiers de modèle pour 112 directions, soit 2290 Mo. Personne ne télécharge ce total, jamais : chacun ne prend que sa direction, et beaucoup n’en prendront aucune.
La boîte annonce ce que le prochain clic va coûter avant de le prendre, sous les deux menus de langue. Elle dit trois choses différentes selon le cas, et chacune est vraie : le poids à télécharger, ou que la direction est déjà en réserve sur votre appareil, ou que c’est le traducteur du navigateur qui la prendra et qu’il n’y a rien à télécharger ici.
Ce qui est gardé sur votre appareil
Trois choses, toutes locales, toutes effaçables par vous depuis les réglages de votre navigateur.
- Les pages du site, en réserve, pour qu’il s’affiche sans réseau.
- Le moteur et les directions déjà utilisées, mis en réserve après usage réel. Jamais à l’avance : un site qui entamerait votre forfait sans prévenir serait un mauvais site.
- Les deux codes de langue que vous avez choisis en dernier, pour vous les reproposer. Deux codes de deux lettres, rien de plus.
Aucun cookie, aucun compte, aucun identifiant. Rien de tout cela ne nous revient : ce sont des octets rangés chez vous, que nous ne pouvons pas lire.
Ce que le programme fait, en clair
Notre moteur est bergamot-translator, compilé en WebAssembly, sous licence MPL-2.0. Les modèles sont ceux que Mozilla publie pour la traduction dans Firefox, sous la même licence. Nous n’avons entraîné aucun modèle et nous n’en modifions aucun : nous les servons.
Le traducteur d’un navigateur, lui, n’est pas un programme que nous fournissons : c’est une fonction du navigateur, appelée depuis la page comme on appelle n’importe quelle autre. Elle n’existe que sur une adresse sécurisée, et elle n’est pas accessible depuis un fil de travail séparé. C’est la raison technique pour laquelle les deux moteurs ne vivent pas au même endroit dans notre code : le nôtre tourne dans un fil séparé, celui du navigateur est appelé depuis la page.
Ce fil séparé n’est pas un raffinement. Décompresser un modèle et faire tourner notre moteur gèlerait l’affichage pendant plusieurs secondes ; à part, la page reste vivante et la barre d’avancement peut dire la vérité pendant le téléchargement. Le traducteur du navigateur n’a pas ce problème, parce qu’il ne nous fait rien décompresser.
Nos modèles sont servis compressés et décompressés chez vous. Cinq d’entre eux dépassent la taille qu’un fichier peut avoir sur notre hébergement : ils sont coupés en tranches numérotées, et votre navigateur les recolle octet pour octet avant de décompresser. 10 tranches sont servies à ce titre. Rien n’est tronqué, et l’empreinte du fichier reconstitué est au registre.
Compter en mémoire vive : une direction chargée dans notre moteur occupe plusieurs centaines de mébioctets sur votre appareil, et un passage par l’anglais en demande deux à la fois. C’est le vrai coût d’une traduction pivotée, davantage que le temps de calcul, et c’est pourquoi la boîte ne garde jamais plus de deux directions vivantes en même temps : elle libère la plus ancienne avant d’en construire une nouvelle. Sans cette règle, six directions d’affilée dans le même onglet finissaient par épuiser la mémoire du moteur.
Ce que cela donne, sur un exemple
Le même contenu, traduit deux fois par cette boîte, dans un navigateur, sans qu’un octet de texte sorte de la machine.
| Entrée | Sortie | Trajet |
|---|---|---|
| The library is open to everyone. | লাইব্রেরি সবার জন্য উন্মুক্ত। | en>bn |
| La bibliothèque est ouverte à tout le monde. | লাইব্রেরি সবার জন্য উন্মুক্ত। | fr>en>bn |
Le second trajet porte trois langues : il n’existe pas de modèle du français vers le bengali chez Mozilla, notre moteur passe donc par l’anglais. Il ne le devine pas pour vous, il l’écrit, et le résultat porte cette information dans son balisage. C’est vérifiable de l’extérieur, et c’est fait pour.
Le passage par l’anglais est une contrainte de nos modèles, pas une loi de la traduction. Un navigateur qui a son propre traducteur fait souvent le français vers le bengali d’un seul saut : le trajet écrit sous le résultat porte alors deux langues et non trois, et la boîte nomme le navigateur comme moteur. Nous avons relevé le cas sur un navigateur de bureau, avec le même résultat mot pour mot que le nôtre ; rien ne garantit qu’il en soit toujours ainsi, et c’est exactement pourquoi la boîte dit qui a calculé.
Les limites de cette vérification
Ce que l’inspecteur montre, c’est ce que fait ce site aujourd’hui, sur votre appareil, à l’instant où vous regardez. Il ne dit rien de ce que nous ferons demain. C’est justement pourquoi le contrôle est court et refaisable : il vaut mieux qu’une promesse, parce qu’il se refait à chaque visite, et parce qu’un manquement se verrait.
Une extension de navigateur installée chez vous peut, elle, émettre des requêtes depuis la page. Elles apparaîtront dans l’inspecteur et ne viennent pas de nous. Si vous voyez une adresse étrangère à ce site, cherchez d’abord de ce côté.
Et le traducteur d’un navigateur échappe à ce contrôle, par construction : nous ne l’avons pas écrit, nous ne le servons pas, nous ne pouvons rien vous montrer de son intérieur. Ce que nous pouvons vous montrer, c’est qu’il ne nous fait rien télécharger et que la boîte dit quand c’est lui qui a travaillé. Pour ce qu’il fait de son côté, la question se pose à l’éditeur de votre navigateur, et pas à nous. Si vous préférez le nôtre, dont les modèles et le moteur sont ouverts et vérifiables au fichier, un navigateur sans traducteur intégré vous le donnera.
Enfin, la qualité d’une traduction automatique n’a rien à voir avec la confidentialité. Un texte qui ne part nulle part peut être mal traduit : nous avons écrit dans quels cas, et le score de qualité de chaque direction est publié tel que Mozilla le mesure, y compris quand il est mauvais.
Sources
- bergamot-translator, le moteur, sous licence MPL-2.0.
- mozilla/translations, d’où viennent les modèles, sous la même licence.
- Les évaluations publiées par Mozilla, qui comparent ces modèles aux traducteurs en ligne sur son propre jeu de test.
- La documentation de l’API Translator, celle du traducteur intégré aux navigateurs, dont nous nous servons quand il est là : contexte sécurisé exigé, modèles téléchargés par le navigateur, absence dans les fils de travail.
- Le détail des licences vérifiées au fichier, pour le moteur comme pour chaque modèle servi.