Est-ce que quelqu'un sait comment obtenir la culture de navigateur de Firefox et Google Chrome en utilisant javascript? Remarque: Ceci est une application Web asp.net 3.5.
L'exigence est d'essayer de définir la culture d'affichage de l'application en fonction de la culture du navigateur. J'ai trouvé très peu d'éléments d'information pour les autres navigateurs, mais ils ne semblent pas fonctionner.
Je suis capable de l'obtenir dans IE avec l'extrait de code suivant:
var browserCulture = this.clientInformation.browserLanguage;
Toute info serait formidable!
Les propriétés suivantes existent sur l'objet navigator
(qui peut également être appelé clientInformation
sur IE mais il n'y a aucune raison d'utiliser ce nom):
language
(non-IE, langue d'installation du navigateur)browserLanguage
(IE, langue d'installation du navigateur)userLanguage
(IE, paramètre de langue au niveau du système d'exploitation utilisateur)systemLanguage
(IE, langue d'installation du système d'exploitation)Mais! Vous ne devriez jamais utiliser ces propriétés! Ils seront la mauvaise langue dans de nombreux cas.
Aucun d’entre eux ne reflète les paramètres de langue que l’utilisateur peut réellement configurer dans l’interface utilisateur «langues préférées» du navigateur, et il est difficile, voire impossible, pour les utilisateurs de les modifier. Vous allez créer une grande frustration en utilisant l’une de ces valeurs sans passer par un moyen manuel simple supplémentaire pour changer de langue.
L'emplacement correct que vous devez rechercher pour choisir la langue à utiliser par défaut, tel que configuré par l'interface utilisateur normale du navigateur, est l'en-tête Accept-Language
transmis à votre serveur dans la requête HTTP. Il s'agit d'une liste classée des langues préférées dans lesquelles vous pouvez choisir, et c'est ce que ASP.NET utilise pour deviner une culture client automatique, si vous l'utilisez.
Malheureusement, cette propriété n'est pas disponible à partir de JavaScript!
En général, vous utilisez votre côté serveur pour analyser l'en-tête Accept-Language
et choisir une seule langue appropriée à utiliser. Dans ASP.NET, vous pouvez obtenir une liste pré-triée à partir de HttpRequest.UserLanguages et choisir la première qui vous convient.
Vous crivez ensuite ce nom de langue dans un élément <script>
pour transmettre les informations de langue au côté client.
Essaye ça:
var l_lang;
if (navigator.userLanguage) // Explorer
l_lang = navigator.userLanguage;
else if (navigator.language) // FF
l_lang = navigator.language;
else
l_lang = "en";
Source: http://forums.digitalpoint.com/showthread.php?t=631706
navigator.languages
est un tableau et contient toutes les langues sélectionnées dans l'ordre. Et ne fonctionne que pour Chrome et Firefox.
Ce n'est pas la même chose que navigator.language
et par là je veux dire que navigator.language
ne correspond pas nécessairement à navigator.languages[0]
.
Juste pour être clair.
Pour obtenir les paramètres régionaux dans IE, vous devez écrire le code côté serveur. J'ai essayé avec servlet et ai obtenu la langue d'acceptation de l'IE. Il affiche les langues sélectionnées par l'utilisateur. Appelez le servlet de votre côté client et obtenez les paramètres régionaux.
String name=request.getHeader("accept-language");
AcceptClass ac=new AcceptClass();
ac.setAccLang(name);
Gson gs=new Gson();
String json = gs.toJson(ac);
response.setContentType("application/json");
response.getWriter().write(json);