Maison > interface Web > js tutoriel > Comment puis-je détecter la langue préférée d'un navigateur à l'aide de JavaScript ?

Comment puis-je détecter la langue préférée d'un navigateur à l'aide de JavaScript ?

Mary-Kate Olsen
Libérer: 2024-12-12 19:20:10
original
271 Les gens l'ont consulté

How Can I Detect a Browser's Preferred Language Using JavaScript?

JavaScript pour détecter les préférences de langue du navigateur

La détection de la langue préférée du navigateur à l'aide de JavaScript peut être un défi, car elle n'est pas directement accessible via le navigateur. langue. En effet, les paramètres du navigateur affectent l'en-tête HTTP « Accept-Language », qui n'est pas accessible via JavaScript.

Pour surmonter cette limitation, une solution de contournement consiste à utiliser un service tiers tel que Google App Engine. Voici comment cela fonctionne :

  1. Créez un script Google App Engine : hébergez un script sur https://ajaxhttpheaders.appspot.com. Ce script renverra les en-têtes de requête HTTP via JSONP.
  2. Faire une requête AJAX : utilisez jQuery ou une bibliothèque similaire pour envoyer une requête AJAX au script Google App Engine.
  3. Analyser la réponse : La réponse contiendra l'en-tête 'Accept-Language'. Vous pouvez ensuite utiliser la valeur du langage analysée.

Voici un exemple de code dans jQuery :

$.ajax({
    url: "http://ajaxhttpheaders.appspot.com", 
    dataType: 'jsonp', 
    success: function(headers) {
        language = headers['Accept-Language'];
        nowDoSomethingWithIt(language);
    }
});
Copier après la connexion

Notez que ce hack n'est recommandé que si vous n'avez pas de back-end pour effectuer cette tâche.

Pour une solution plus pratique, vous pouvez utiliser le plugin jQuery-Browser-Language disponible sur https://github.com/dansingerman/jQuery-Browser-Language.

Voici le code exécuté sur AppEngine :

class MainPage(webapp.RequestHandler):
    def get(self):
        headers = self.request.headers
        callback = self.request.get('callback')

        if callback:
          self.response.headers['Content-Type'] = 'application/javascript'
          self.response.out.write(callback + "(")
          self.response.out.write(headers)
          self.response.out.write(")")
        else:
          self.response.headers['Content-Type'] = 'text/plain'
          self.response.out.write("I need a callback=")
Copier après la connexion

Le code est également open source 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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal