N’essayez pas de deviner ma langue
(vitonsky.net)- Quand un service web détermine la langue d’affichage à partir de la géolocalisation IP, il peut afficher une langue non souhaitée aux utilisateurs qui utilisent un VPN, voyagent, vivent à l’étranger ou résident dans des pays multilingues
- Le pays et la langue n’ont pas une relation 1:1 : la Belgique a 3 langues officielles, la Suisse 4, l’Inde 22, et le Canada est un pays officiellement bilingue
- Les navigateurs envoient l’en-tête Accept-Language selon les réglages de l’OS ou du navigateur ; exemple :
Accept-Language: en-US,en;q=0.9,de;q=0.8 - Une meilleure implémentation consiste à prioriser
Accept-Language, puis à mémoriser la langue choisie manuellement par l’utilisateur via un cookie ou un paramètre d’URL - Il vaut mieux réserver GeoIP aux domaines où la localisation est nécessaire, comme la devise, la livraison ou les obligations légales, et ne pas l’utiliser pour le choix de la langue afin de moins déformer les préférences utilisateur
La géolocalisation IP ne dit rien des préférences linguistiques
- Une adresse IP indique seulement d’où provient la requête ; elle ne dit pas quelle langue l’utilisateur souhaite ou comprend
- Avec un VPN, en voyage, en expatriation ou dans des pays ayant plusieurs langues officielles, le choix de langue basé sur l’IP se trompe facilement
- Le pays et la langue ne se correspondent pas simplement
- Belgique : 3 langues officielles
- Suisse : 4 langues officielles
- Inde : 22 langues officielles
- Canada : officiellement bilingue, et officieusement multilingue
- Pour les utilisateurs de VPN, une langue aléatoire peut s’afficher à chaque changement d’IP ; il arrive aussi que Google s’ouvre dans une langue qu’ils ne comprennent pas
- Si une base de données IP erronée est prioritaire sur les informations de langue du navigateur, l’utilisateur reçoit une langue d’interface qu’il ne souhaite pas
Il faut donner la priorité à l’Accept-Language du navigateur
- Tous les navigateurs envoient l’en-tête
Accept-Languagecontenant les langues préférées de l’utilisateur - Cette valeur repose sur les réglages de l’OS ou du navigateur, pas sur la localisation ou l’IP
- Exemple :
Accept-Language: en-US,en;q=0.9,de;q=0.8
- Un flux de traitement raisonnable est simple
- lire
Accept-Language - respecter cette valeur
- permettre à l’utilisateur de changer de langue si nécessaire
- mémoriser ce choix via un cookie ou un paramètre d’URL
- lire
- Même si GeoIP est nécessaire, il convient de le limiter à des usages comme la devise, la livraison ou les obligations légales, et non à la langue
1 commentaires
Avis de Hacker News
C’est vraiment agaçant de ne pas respecter Accept-Language.
Pire encore, beaucoup de sites multilingues traduisent le bouton de changement de langue et même la liste des langues dans la langue actuelle ; c’est une conception idiote qui va à l’encontre du but recherché.
Wikipedia fait les choses correctement. Le bouton de changement de langue est clair, avec une icône multilingue universelle, et la liste des langues affiche le nom de chaque langue dans cette langue elle-même ; elle est globalement classée par ordre alphabétique, avec les candidats les plus probables mis en avant.
Par exemple, une page Wikipedia en anglais affiche des langues recommandées comme
Deutsch,Français,Nederlands. Si on se met à deviner arbitrairement la langue des gens, tout le monde finit par s’épuiser ; autant faire comme Wikipedia.Certains ont un bouton de fermeture, mais beaucoup n’en ont pas, ce qui rend la chose encore plus pénible.
中文etItalianoapparaissaient en recommandations, tandis que le reste était regroupé par zones géographiques, sans être particulièrement alphabétique.Côté Europe, il semble y avoir un groupe en alphabet cyrillique, mais
Қазақшаapparaît aprèsУкраїнська, ce qui n’est pas vraiment correct du point de vue du kazakh et peut aussi surprendre quelqu’un qui ne connaît pasҚ. Les langues chinoises ne semblent pas non plus triées par nombre de traits, et le coréen se trouve en dessous.La localisation de Wikipedia est excellente, mais c’est juste un petit complément sur le caractère ambigu du « tri alphabétique » quand on affiche les noms de langues dans leur propre langue.
La documentation d’assistance de Google https://support.google.com/youtube/answer/87604 expliquait en anglais quels boutons presser, mais je ne connaissais pas l’amharique et, à l’époque, je ne savais même pas de quelle langue il s’agissait. La traduction de l’iPhone ne reconnaissait pas non plus cette langue éthiopienne.
Une simple icône multilingue universelle aurait permis d’éviter facilement cette situation embarrassante.
Mais avec un système d’écriture inconnu, comme le bengali, ça devient un problème.
C’est pourquoi il pourrait être utile que tous les menus de sélection de langue incluent, comme échappatoire, l’anglais et le chinois sous une forme non localisée. Presque tous les utilisateurs du Web pourront les reconnaître assez pour tâtonner dans le menu et trouver leur vraie langue.
Je déteste aussi la « fonctionnalité » de YouTube qui traduit automatiquement les titres de vidéos dans la langue configurée. Je comprends l’anglais ; je n’ai pas besoin de ce genre de traduction automatique, et c’est vraiment pénible.
Si je ne connais pas la langue, il y a de fortes chances que la vidéo ne soit pas faite pour moi. Les vidéos destinées à un public international sont généralement en anglais, ou au moins traduites par leur créateur.
Un titre est une phrase courte, avec trop peu de contexte pour être bien traduit. J’ai déjà vu un titre en portugais comme
Vamos assistir uma conexão com o passado, ce qui, traduit littéralement, donnait « regardons une connexion avec le passé » ; il m’a fallu le retraduire mentalement pour comprendre que le titre original étaitLet's play A Link to the Past.Les contenus en ligne sont aussi un bon moyen de pratiquer une deuxième langue, et j’aimerais qu’on ne sous-estime pas mes capacités. Qu’on me laisse au moins lire l’original ; si besoin, je peux utiliser Google Translate ou un dictionnaire.
Je reconnais que cette fonctionnalité élargit l’accès aux contenus en ligne, mais si elle dégrade l’expérience, il faudrait au minimum pouvoir la désactiver.
Du genre
Lidl is worth it, ja!.Plusieurs YouTubers que je regarde souvent étendent leurs langues avec des pistes audio traduites par des fans, et l’anglais en fait parfois partie. Chaque fois que je regarde ce genre de vidéo, les jeux de mots ou les sous-entendus de la langue d’origine disparaissent dans la traduction, si bien que je dois repasser manuellement à la langue originale.
Comme YouTube déteste Firefox et les extensions liées à YouTube, la vidéo démarre souvent avant que tous les contrôles soient chargés, et je dois même revenir en arrière après avoir changé de piste de langue.
Quelqu’un a mis en lien, dans une autre réponse, une extension qui aide à ça, donc je pense l’essayer, mais c’est pénible qu’il n’y ait pas simplement, dans les paramètres de YouTube, un bouton « toujours utiliser la langue originale ». Quand je veux l’audio traduit, je peux l’activer moi-même ; comme je parle plusieurs langues à un certain niveau, c’est rare pour les contenus que je regarde.
Je comprendrais encore si l’objectif était de gêner les bloqueurs de pubs ou de pousser la publicité, mais là, c’est juste une fonction de « confort » mal implémentée. Malgré tout, j’imagine qu’un PM a dû être félicité pour ça.
Mais si, au lieu d’un titre en anglais que je peux lire, on me montre un titre norvégien moche traduit par une machine, mon expérience me dit que cette chaîne est probablement une chaîne de mauvaise qualité qui court après l’algorithme, et je clique sur « Ne pas recommander cette chaîne ».
Je déteste ce genre de conception, car elle repose sur l’hypothèse implicite que « tout le monde ne comprend qu’une seule langue ».
Je peux lire ta langue sans problème et, en général, je préfère l’original à une mauvaise localisation. Donc, deviner ma langue préférée à partir de mon IP se trompe presque à coup sûr.
J’indique déjà, via les paramètres de langue du navigateur, quelles langues je peux utiliser ; il n’y a aucune raison de supposer que l’utilisateur n’est pas assez malin pour les configurer correctement.
Le doublage IA activé par défaut sur YouTube est encore pire. Pour environ la moitié des vidéos que je regarde, je dois les ouvrir, aller dans les paramètres, désactiver le doublage IA, revenir au début et relancer. Ça ne prend pas longtemps, mais c’est extrêmement agaçant.
Je déteste aussi que les titres soient affichés traduits. C’est très étrange de regarder une vidéo où les gens parlent anglais alors que le titre est dans une autre langue.
Je ne parle pas espagnol couramment, mais l’un des bons moyens de le devenir est de consommer du contenu dans la langue originale, et YouTube rend ça difficile.
Le plus agaçant, c’est Google. Il sait qui je suis, il sait que je suis en voyage, il sait que ma langue préférée est l’anglais, mais sur certaines pages il affiche encore la langue en fonction de ma position.
Puisque j’ai autorisé Google à me suivre, j’aimerais qu’il s’en serve aussi pour offrir une bonne expérience utilisateur, pas seulement pour la publicité.
Même en vivant aux États-Unis, Google essaie de me proposer des résultats en espagnol pour des recherches liées au catalan. Par exemple, il privilégie la Wikipédia en espagnol. Le comportement du moteur de recherche a fluctué au fil des années, mais il n’a jamais été bon.
C’est un gros problème pour mes enfants, qui ne comprennent pas l’espagnol, et aussi pour les régions catalanophones qui ne sont pas en Espagne, Andorre comprise.
Gemini signalait facilement le contenu en catalan comme dangereux et empêchait de poursuivre la conversation. C’était le cas même avec des prompts du type « résume cet article », même si cela s’est peut-être amélioré récemment.
L’ancien Google était un exemple de grande entreprise responsable, attentive à la diversité du monde. J’apprécie toujours les efforts de plusieurs équipes, mais il semble clair que ce n’est plus une priorité.
Dernièrement, il semble avoir décidé qu’il était incorrect de traduire automatiquement en anglais les avis Maps rédigés dans la langue locale. Il traduit toutes les autres langues en anglais, mais comme j’habite dans la région, il suppose que je parle aussi la langue locale et que je n’ai donc pas besoin d’anglais.
C’est pareil pour les résultats de recherche. Comme je suis resté longtemps là-bas, il estime que je veux forcément la Wikipédia dans la langue locale. C’est simplement que, pour trouver des informations locales, je dois chercher dans la langue locale, mais il interprète ça comme un signal de préférence.
Cela vaut aussi pour toute la tendance selon laquelle « le logiciel doit deviner intelligemment toutes les préférences ». Vu l’échec aussi constant de Google dans ce domaine, il est difficile de comprendre pourquoi il persiste, sauf par une forme d’arrogance d’entreprise mal placée.
Il disait que, pour des raisons d’efficacité, le rendu du contenu se fait par étapes, et qu’au moment de construire la structure de la page principale, les informations utilisateur ne sont pas encore disponibles. Mais même à cette étape, l’en-tête Accept-Language devrait être immédiatement accessible, donc l’argument ne tient pas selon moi.
Changer de pays n’était pas simple, et il fallait renoncer à l’ancien pays et à ses applications. Comme je fais pas mal d’allers-retours, j’ai fini par acheter un deuxième téléphone et créer un compte pour le nouveau pays.
C’est amusant, parce qu’on a l’impression qu’il sait très bien que je ne les comprends pas, mais qu’il continue parce qu’il peut quand même facturer les annonceurs.
Le principe bien plus important est de ne pas traduire automatiquement le contenu dans la langue de l’utilisateur.
Il suffit d’afficher la langue dans laquelle les données existent réellement. Si l’utilisateur le souhaite, il est assez malin pour cliquer sur le bouton « traduire » du navigateur, et il est même probable que cette traduction soit meilleure.
L’anglais n’est ni ma langue maternelle ni ma deuxième langue, mais je le comprends assez bien pour l’utiliser tous les jours au travail. Je n’ai pas envie de fouiller dans un tas d’ordures de traduction automatique pour trouver le bouton qui permet de lire la version anglaise originale.
Étrangement, ce problème concerne surtout l’anglais. Les sites dans d’autres langues ne font généralement pas ça, et ce seul fait devrait suffire à montrer que les visiteurs étrangers détestent cette pratique.
Si vous voulez utiliser la traduction automatique sur un site web, vous devriez faire une rétrotraduction pour toutes les langues avant de publier. Traduisez, recollez le résultat, puis retraduisez dans la langue d’origine : vous verrez à peu près ce que vous vous apprêtiez à publier. Mieux vaut ne pas le faire.
Même si je ne parlais pas anglais, je ne pense pas que ce contenu traduit vaille la peine d’être lu.
Les fonctions pour changer de langue ou afficher l’original sont difficiles à trouver, et elles varient selon qu’on utilise l’application, le web mobile ou le web desktop.
Leur insistance à vouloir faire télécharger l’application est un problème à part entière.
L’hypothèse selon laquelle « tous les navigateurs envoient l’en-tête Accept-Language, indiquent la langue préférée de l’utilisateur d’après les réglages de son OS ou de son navigateur, et l’utilisateur peut la modifier s’il le souhaite » ne tient pas non plus
D’abord, Accept-Language est une liste ordonnée, mais les personnes qui utilisent plusieurs langues au quotidien ont souvent des préférences selon le sujet, plutôt qu’un ordre de préférence absolu
Même si un site d’actualité en anglais propose une version traduite en français, et même si l’on maîtrise mieux le français, on peut vouloir la version anglaise
L’utilisateur finit donc par indiquer la langue la plus pratique plutôt que sa vraie préférence. Par exemple, les sites locaux non anglophones ont tendance à moins faire les malins que les sites internationaux en anglais ; si l’on règle sa langue uniquement sur l’anglais, les premiers sont forcés de s’afficher en anglais et l’impact reste faible sur la plupart des autres sites
À l’inverse, le fait qu’un site français ignore toutes les préférences et pousse par défaut la version française peut aider dans ce genre de cas
Au final, j’aimerais que les exploitants de sites arrêtent de jouer aux plus malins et fournissent une interface très claire et rapide pour passer à une autre version. Wikipédia le fait plutôt bien
Un site web multilingue ne devrait proposer que des jeux de traductions entièrement traduits et validés. Traduire l’UI et le contenu propre dans quelques langues peut avoir du sens pour une entreprise selon son public cible, mais il faut alors tout maintenir et synchroniser
Il ne faut pas toucher au contenu utilisateur. Il ne devrait pas être traduit automatiquement, sauf comme fonctionnalité d’aide derrière un bouton du type « Espagnol détecté. Cliquez pour voir une traduction automatique en anglais », et à vrai dire il vaut mieux laisser cela au navigateur
Il suffit d’utiliser Accept-Language pour choisir la langue, puis de fournir en plus un moyen d’en changer
Wikipédia ne propose en fait pas des traductions du même contenu. Chaque langue est une instance distincte et, à part les libellés de l’UI MediaWiki, il ne s’agit pas d’une traduction du même article, mais d’articles différents dans des langues différentes, avec des recoupements. La version néerlandaise de l’article
Languagene prétend pas être la traduction néerlandaise du même texte, et elle se trouve volontairement sur un autre sous-domaine et un autre cheminÀ mon avis, il y a beaucoup à améliorer des deux côtés, navigateur comme site web
Les sites web devraient permettre à l’utilisateur de remplacer la langue demandée par le navigateur. Les navigateurs devraient aussi permettre de choisir, site par site, entre « valeur par défaut du site », « demander la langue par défaut du système », « demander l’anglais », « demander le chinois », « demander l’espagnol », etc.
La meilleure approche serait que le site expose la liste des langues prises en charge. Par exemple, cela pourrait figurer dans
manifest.json: https://developer.mozilla.org/en-US/docs/Web/Progressive_web... Le format pourrait être quelque chose commeMap>Le choix de la langue devrait se faire côté client, pas côté serveur
Si vous voulez la version anglaise d’un site d’actualité en anglais même lorsqu’il existe une traduction française, il suffit de mettre les deux langues au même niveau de priorité
Vu que beaucoup de sites, peut-être même presque tous, ne respectent pas l’en-tête Accept-Language, il est difficile de croire que l’utilisateur fait ce genre de raisonnement de théorie des jeux au moment de choisir ce réglage
J’ai déjà travaillé sur un projet visant à mettre en œuvre l’accessibilité et le support multilingue pour un site lié à l’administration
Nous avions utilisé Accept-Language pour choisir la langue par défaut parmi les langues prises en charge, mais le PM a annulé cette décision et imposé l’anglais par défaut
L’auditeur accessibilité a mis « utilisation d’Accept-Language » en rouge dans son rapport d’audit, et lorsqu’il a appris que cela avait d’abord été implémenté puis annulé, il a sévèrement réprimandé l’entreprise
Grâce à cette décision idiote et à d’autres du même genre, nous avons eu quelques semaines de travail contractuel supplémentaires
Puisque cela ressemble à un endroit où se plaindre des langues, j’ai aussi un grief contre Apple TV
J’ai de la famille qui ne parle que japonais, et mon compte Apple est finlandais. Nous avons essayé de regarder
The Martianensemble, mais même si une piste audio doublée en japonais existe manifestement, il était impossible de la sélectionnerLes options sans rapport avec le pays du compte ne sont tout simplement pas affichées, et pour contourner cela il faut changer tout le compte Apple de pays
Or, avec un abonnement Apple TV actif, on ne peut même pas faire ce changement. Résultat : ma famille n’a pas pu regarder Apple TV ensemble
Si je me souviens bien, il y avait un réglage de langue du compte, et pour regarder
Kim's Convenience, il fallait le mettre en anglais. Pas besoin de VPN ni de prétendre être dans un autre pays, mais si la bonne langue n’était pas configurée, le contenu était masquéC’était aussi le cas lorsqu’on regardait du contenu avec l’UI en finnois et des sous-titres anglais
Quand on est à l’étranger, c’est vraiment absurde, et même dans son pays, c’est pénible quand la version localisée n’est pas équivalente, comme pour de la documentation de programmation
Même dans le cas idéal, il y a de fortes chances que je préfère l’original en anglais, et en pratique c’est souvent de la traduction automatique, donc c’est bien pire
Autre chose extrêmement agaçante qu’on voit plus souvent ces derniers temps : les résultats de recherche affichent des versions traduites automatiquement du contenu. Reddit le fait maintenant, et c’est vraiment horrible
L’une des principales raisons d’utiliser des termes de recherche non anglais, c’est précisément d’obtenir des résultats non anglais. Par exemple quand on cherche des informations sur un sujet qui ne s’applique pas partout dans le monde
Le reste du monde comprend très bien plusieurs langues
Je n’ai pas vérifié si c’est basé sur la localisation ou sur Accept-Language, mais le comportement est vraiment exaspérant
Quand je fais une recherche web, j’obtiens le résultat en version anglaise ; quand je l’ouvre, dès que JavaScript se charge, la page bascule en PT-BR, puis quelques secondes plus tard, quand la page a fini de charger, elle revient à l’anglais tout en laissant le slug
/pt-br/dans l’URLIl est aussi évident que la traduction n’a pas été faite ou relue par des humains. En plus, je suis utilisateur du PT-PT, donc les différences avec le PT-BR m’agacent encore davantage
J’avais autrefois créé un petit système qui analysait Accept-Language, pondérait les priorités de l’utilisateur et choisissait, parmi ce que nous proposions, la langue la plus proche de ses préférences
Par exemple, si nous avions une traduction en portugais du Brésil mais pas en portugais du Portugal, nous servions la première à un utilisateur demandant la seconde, sauf s’il existait une correspondance exacte avec une priorité plus basse, auquel cas nous utilisions celle-là
Techniquement, ça fonctionnait bien, le code était propre, et c’était amusant à construire
Mais du point de vue utilisateur, la plupart voulaient simplement l’anglais, indépendamment de l’en-tête Accept-Language. On pouvait changer la langue dans le pied de page, mais ce n’était visiblement pas assez visible
Désormais, on demande simplement, et les utilisateurs sont plus satisfaits
Il est difficile de savoir comment rester simplement sur la page que j’ai cliquée. On ne sait pas si le bouton « continue » applique la valeur présélectionnée ou s’il ferme seulement la pop-up en continuant d’afficher la page actuelle
Dans le premier cas, je ne sais même pas si la valeur présélectionnée correspond à la langue actuelle de la page ou à une autre langue, et je me demande s’il faut deviner la locale actuelle, la sélectionner, puis fermer la pop-up. J’en viens même à me demander si je peux contourner le tout en supprimant la modale avec les outils de développement. Sur ce genre de mur de langue, même un petit bouton de fermeture est un luxe
Dans 95 cas sur 100, la langue sur laquelle j’ai cliqué me convient telle quelle. Si j’ai besoin des informations de livraison régionales ou des options de paiement de la version allemande, j’irai chercher le sélecteur de langue en haut à droite ou dans le pied de page
S’il se trouvait simplement à l’un de ces deux endroits, le web serait bien plus agréable sans pop-up JavaScript qui réapparaît sans cesse
Je m’interroge sur le modèle à utiliser pour proposer les choix. Cet article a le mérite de rejeter les icônes, mais je n’aime pas sa façon de ramener plusieurs régions à une seule langue : https://usersnap.com/blog/design-language-switch/