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
242 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!

source:php.cn
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