Das Erkennen der bevorzugten Sprache des Benutzers in einem Webbrowser ist für die Personalisierung der Benutzererfahrungen unerlässlich. Allerdings verfügen verschiedene Browser über unterschiedliche Mechanismen zum Festlegen der Spracheinstellungen.
Im Internet Explorer kann die bevorzugte Sprache unter Extras > Internetoptionen > Allgemein > Sprachen. Allerdings ist der Zugriff auf diese Einstellung über JavaScript immer noch eine Herausforderung.
Ähnlich wird in Firefox die bevorzugte Sprache unter „Extras“ > „Einstellungen“ festgelegt. Optionen > Inhalt > Sprachen. Während navigator.sprache die unter Start > festgelegte Sprache abruft. Systemsteuerung > Regional- und Sprachoptionen > In den regionalen Optionen wird die browserspezifische Einstellung nicht erkannt.
Nach der Untersuchung dieses Problems wurde festgestellt, dass die bevorzugten Spracheinstellungen des Browsers keinen Einfluss auf die navigator.Language-Eigenschaft von JavaScript haben. Stattdessen ändern sie den HTTP-Header „Accept-Language“. JavaScript hat jedoch keinen direkten Zugriff auf diesen Header.
Um dieser Herausforderung zu begegnen, wurde eine Problemumgehung entwickelt. Das Google App Engine-Skript unter http://ajaxhttpheaders.appspot.com gibt HTTP-Anforderungsheader mithilfe von JSONP zurück. Durch die Verwendung dieses Skripts kann der folgende jQuery-Code verwendet werden, um die bevorzugte Sprache abzurufen:
$.ajax({ url: "http://ajaxhttpheaders.appspot.com", dataType: 'jsonp', success: function(headers) { language = headers['Accept-Language']; nowDoSomethingWithIt(language); } });
Darüber hinaus wurde auf GitHub ein jQuery-Plugin veröffentlicht, um diese Funktionalität zu vereinfachen: https://github.com/ dansingerman/jQuery-Browser-Language
Zur weiteren Referenz steht der für diese Problemumgehung verwendete App Engine-Code unter zur Verfügung https://github.com/dansingerman/app-engine-headers.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von JavaScript zuverlässig die Browser-Sprachpräferenz eines Benutzers erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!