Langue du navigateur et localisation des applications
Utilisez les préférences de langue du navigateur comme indice de localisation, sans les considérer comme une identité ni remplacer le choix explicite.
Vous voulez la documentation structurée pour Plateforme ?
Cet article fait partie de la bibliothèque éditoriale. Pour les étapes de configuration, la référence et les mises à jour continues, passez directement à la section docs.
Les préférences de langue du navigateur peuvent aider à choisir une première traduction, mais elles restent un indice. navigator.language indique la préférence principale et navigator.languages peut fournir une liste ordonnée. Ces valeurs ne prouvent ni le lieu de vie, ni la nationalité, ni la langue souhaitée pour chaque tâche. Une application négocie une langue disponible, propose un sélecteur et garde un repli lisible.
Signification des valeurs Navigator
L'interface Navigator expose des préférences définies par la personne ou le navigateur. MDN Navigator.language décrit la balise principale et WHATWG Navigator.languages décrit la liste ordonnée. fr-CA exprime une préférence linguistique et régionale pour le contenu, pas une position géographique.
La liste peut être absente, unique ou changer après une modification des réglages. Traitez-la comme une entrée de sélection et non comme un profil permanent. L'attribut lang du document est différent : il aide les lecteurs d'écran et doit être actualisé lorsque le contenu visible change.
Négocier les langues disponibles
Définissez la liste des locales réellement traduites. Normalisez les balises, essayez la variante la plus précise, puis la langue parente. Avec fr-CA, fr et en, une demande canadienne peut utiliser fr-CA, une autre demande française fr, et le reste en. Ne fabriquez pas de traduction et ne confondez pas les régions.
Un ordre fiable est le choix explicite mémorisé, la première valeur compatible de navigator.languages, navigator.language si la liste manque, puis une langue par défaut stable. Cette séquence convient aussi aux vues intégrées qui fournissent moins d'informations. Le défaut doit rester complet, sans clés non traduites.
L'internationalisation distingue langue, écriture et région. W3C Internationalization explique pourquoi ces éléments ne sont pas interchangeables. Si une variante manque, indiquez le repli et laissez une autre langue accessible dans le sélecteur.
Préserver le choix explicite
La sélection automatique aide lors de la première visite, mais ne doit jamais enfermer une personne dans une langue illisible. Le sélecteur doit afficher des noms traduits, une valeur courante claire et un parcours au clavier. Mémorisez la locale après un choix explicite et restaurez-la avant de consulter une préférence navigateur modifiée. Précisez si le choix concerne la page, le compte ou les prochaines visites.
Gardez le contenu et le focus pendant le chargement. Ne supprimez ni formulaire ni brouillon lors du changement. Si un paquet échoue, conservez la dernière langue lisible et proposez une nouvelle tentative. Une préférence ne vaut pas consentement pour les messages promotionnels, le transfert de données ou une décision juridique.
Charger les ressources sans casser le contenu
Versionnez les ressources et vérifiez chaque clé nécessaire. Pendant la transition, affichez l'ancien texte plutôt qu'une clé interne. Évitez de concaténer des fragments : l'ordre grammatical et les pluriels varient. Utilisez Intl pour les dates, nombres et listes, mais stockez les données de façon canonique et ne déduisez pas le pays fiscal à partir de la langue.
Mettez à jour lang, les titres, descriptions, liens alternatifs et la direction du document. Testez les textes longs, le sens droite-gauche et les nombres mêlés au code. Une URL localisée doit garder la même intention ; une traduction absente ne doit pas rediriger vers une page sans rapport.
Tester préférence, repli et accessibilité
Testez une liste vide, une région non prise en charge, une balise avec écriture et un navigateur qui ne fournit que navigator.language. Modifiez la préférence après un choix explicite et vérifiez que celui-ci reste prioritaire. Effacez ce choix et vérifiez que la négociation redevient prévisible.
Testez une connexion lente, une réponse interrompue et un cache périmé. Conservez les saisies, annoncez la progression et proposez une reprise. Parcourez le sélecteur au clavier, vérifiez le focus et le nouvel attribut lang avec un lecteur d'écran. Contrôlez pluriels, séparateurs décimaux, expansion du texte et zoom.
Vie privée et limites
Les préférences peuvent contribuer à une configuration reconnaissable lorsqu'elles sont combinées à d'autres données. Si seule la locale est nécessaire, n'envoyez pas toute la liste aux outils d'analyse. N'utilisez pas ces balises pour déduire résidence ou attribut sensible. Pour une traduction distante, indiquez le service, la conservation et l'action qui déclenche le transfert. Un manque local ne doit jamais téléverser un contenu privé sans confirmation.
Documentez les locales complètes et celles qui utilisent un repli. Gardez l'alternative accessible et réévaluez tout changement de stockage, synchronisation ou empaquetage.
Pour les dates et les nombres, séparez la locale des données stockées avec le guide de formatage Intl. Consultez aussi les choix de confidentialité du navigateur.
La même règle concerne les alertes, les fichiers générés et le support : changez les libellés, pas les données ni les autorisations.
Expliquez la portée de chaque sélecteur et affichez un repli clair lorsqu'une ressource manque.
Une balise peut contenir une écriture et une région ; ces parties doivent rester distinctes.
La négociation doit être déterministe afin qu'un support puisse reproduire un résultat sans conserver toute la liste du navigateur.
L'authentification et la récupération doivent rester compréhensibles si le paquet choisi n'est pas encore chargé.
Les routes rendues côté serveur et côté client doivent appliquer la même priorité au choix mémorisé.
La qualité comprend titres, libellés, alertes, textes alternatifs et pluriels, pas seulement les mots traduits.
Quand une locale manque, proposez une autre langue, le défaut ou une nouvelle tentative.
Réévaluez la négociation si changent les contrôles de confidentialité, les vues intégrées ou les données internationales.
La langue par défaut doit permettre de terminer la tâche sans attendre une autre ressource.
Un changement de langue ne doit effacer ni saisie ni autorisation déjà accordée.
Les messages d'erreur ont besoin d'une traduction ou d'un repli compréhensible.
Les dates et montants stockés doivent conserver leur sens original.
La direction du texte et l'attribut lang font partie de l'accessibilité.
Une préférence du navigateur ne remplace jamais un choix conscient de partager du contenu.
Gardez le choix compréhensible dans chaque locale et expliquez comment revenir à la langue par défaut, sur mobile comme sur ordinateur.
Les mêmes conseils s'appliquent aux navigateurs mobiles et de bureau.
Correspondance des affirmations et sources
- MDN Navigator.language décrit la valeur principale.
- WHATWG Navigator.languages décrit la liste ordonnée.
- W3C Internationalization distingue langue, écriture et région.
- MDN Navigator documente l'interface du navigateur.
Sources publiques
Articles Connexes
Faites passer BotBrowser de la recherche à la production
Utilisez ces guides pour comprendre le modèle, puis passez à la validation multi-plateforme, aux contextes isolés et au déploiement navigateur prêt pour l'échelle.