Maison >interface Web >js tutoriel >Comment puis-je détecter de manière fiable la préférence de langue du navigateur d'un utilisateur à l'aide de JavaScript ?
La détection de la langue préférée de l'utilisateur dans un navigateur Web est essentielle pour personnaliser l'expérience utilisateur. Cependant, différents navigateurs disposent de différents mécanismes pour définir les préférences de langue.
Dans Internet Explorer, la langue préférée peut être configurée dans Outils > Options Internet > Général > Langues. Cependant, accéder à ce paramètre à l'aide de JavaScript reste un défi.
De même, dans Firefox, la langue préférée est définie dans Outils > Options > Contenu > Langues. Pendant que navigator.langue récupère la langue définie dans Démarrer > Panneau de configuration > Options régionales et linguistiques > Options régionales, il ne parvient pas à détecter le paramètre spécifique au navigateur.
Après avoir étudié ce problème, il a été découvert que les paramètres de langue préférés du navigateur n'affectent pas la propriété navigator.langue de JavaScript. Au lieu de cela, ils modifient l’en-tête HTTP « Accept-Language ». Cependant, JavaScript n'a pas d'accès direct à cet en-tête.
Pour relever ce défi, une solution de contournement a été développée. Le script Google App Engine sur http://ajaxhttpheaders.appspot.com renvoie les en-têtes de requête HTTP à l'aide de JSONP. En utilisant ce script, le code jQuery suivant peut être utilisé pour récupérer la langue préférée :
$.ajax({ url: "http://ajaxhttpheaders.appspot.com", dataType: 'jsonp', success: function(headers) { language = headers['Accept-Language']; nowDoSomethingWithIt(language); } });
De plus, un plugin jQuery a été publié sur GitHub pour simplifier cette fonctionnalité : https://github.com/ dansingerman/jQuery-Browser-Language
Pour référence ultérieure, le code App Engine utilisé pour cette solution de contournement est disponible sur https://github.com/dansingerman/app-engine-headers.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!