La bonne façon est de regarder les HTTP Accept-Language - tête envoyé au serveur. Il contient la commande, pondérée de la liste des langues que l'utilisateur a configuré son navigateur à préférer.
Malheureusement, cet en-tête n'est pas disponible pour la lecture à l'intérieur de JavaScript; tout ce que vous obtenez est navigateur.la langue, qui vous indique quels sont localisées version du navigateur web a été installé. Ce n'est pas nécessairement la même chose que la langue du visiteur(s). Sur IE vous obtenez plutôt systemLanguage (OS installé langue), browserLanguage (même en tant que "langue") et userLanguage (configuré par l'utilisateur de l'OS de la région), qui sont tous de la même façon inutile.
Si j'avais à choisir entre ces propriétés, j'avais sniff pour ‘userLanguage "d'abord, la chute de retour à la "langue" et seulement après cela, (si ceux-ci ne correspond pas à toutes les langues disponibles) en regardant ‘browserLanguage "et enfin "systemLanguage'.
Si vous pouvez mettre un script côté serveur quelque part sur le net qui lit simplement l'-tête Accept-Language et le reproduit comme un fichier JavaScript avec la valeur d'en-tête dans la chaîne, par exemple.:
var acceptLanguage= 'en-gb,en;q=0.7,de;q=0.3';
ensuite, vous pouvez inclure un <script src> pointant sur ce service externe dans le HTML, et JavaScript pour analyser la langue de l'en-tête. Je ne sais pas du tout existant de la bibliothèque de code pour ce faire, cependant, puisque Accepter d'analyse de Langage est presque toujours fait sur le côté serveur.
Tout ce que vous finissez par faire, vous avez certainement besoin d'un remplacement utilisateur car il sera toujours deviner mal pour certaines personnes. Souvent, il est plus facile de mettre le réglage de la langue dans l'URL (par exemple. http://www.example.com/en/site vs http://www.example.com/de/site), et de permettre à l'utilisateur de cliquer sur les liens entre les deux. Parfois, vous ne voulez qu'une seule URL pour les deux versions linguistiques, dans ce cas, vous devez enregistrer le réglage dans les cookies, mais cela peut confondre les agents utilisateurs avec pas de support pour les cookies et les moteurs de recherche.