Accès HTTP_ACCEPT_LANGUAGE côté client? JavaScript? Je ne vois pas de wrapper JQuery. Pages statiques pour détecter la langue préférée!

J’essaie d’accéder aux préférences linguistiques de l’utilisateur sans utiliser le code serveur.

Je cherche du JavaScript comme ça:

var language_array = jQuery.languagePreferences(); //en-ca,en;q=0.8,en-us;q=0.6,de-de;q=0.4,de;q=0.2 

Je sais que je peux utiliser HTTP_ACCEPT_LANGUAGE côté serveur, mais qu’en est-il de la page statique JavaScript / JQuery côté client (non générée par le serveur)?

J’ai fait pas mal de recherches sur Google et je n’ai pas de solution claire, agnostique pour les navigateurs. Comment JavaScript a-t-il access à la liste des langues préférées des navigateurs? (tel que configuré, par exemple, dans FireFox avec Outils> Options> Contenu> Langues) Il semble que ce soit trop difficile.

Si ce n’est pas possible, il semble que ceux-ci pourraient fonctionner:

1) [Une question pour ServerFault.com] Utilisez la réécriture d’URL côté serveur afin qu’Apache réponde avec la page statique correcte en fonction des préférences de langue?

2) Utiliser AJAX sur le client pour interroger le serveur uniquement pour lire HTTP_ACCEPT_LANGUAGE? Semble très compliqué!

Est-ce que je manque quelque chose?

Malheureusement, il n’est pas possible d’obtenir l’équivalent de HTTP_ACCEPT_LANGUAGE utilisant des techniques purement client. Les parameters locaux les plus courants du système d’exploitation des utilisateurs sont les plus proches de l’utilisateur:

navigator.userLanguage pour IE

et

window.navigator.language pour la plupart des autres (FF, Opera, etc.).

Je trouve que navigator.language et navigator.browserLanguage ne sont pas très fiables (par exemple, IE8 ne me donne pas correctement en-nous plutôt qu’en -gb ).

Utiliser ajax ou modifier le routage comme vous l’avez suggéré ne sera qu’un moyen fiable.