web-dev-qa-db-fra.com

Comment obtenir le paramètre de langue de Firefox? (VRAIMENT)

Je sais que cette question a été réponse avant , mais la réponse donnée n'est pas l'histoire complète:

Je suis allé dans Options-> Contenu de Firefox et j'ai supprimé toutes les langues sauf l'allemand/l'Allemagne, et navigator.language n'a pas changé - c'est toujours en-GB (je suis au Royaume-Uni).

On me dit que si j'obtiens la version allemande de Firefox, cela fonctionnera, mais je ne devrais pas avoir besoin de le faire, non?

La chaîne useragent contient également en-GB également; mais le langage d'acceptation sur les en-têtes HTTP IS défini correctement. Donc cela semble être un bug dans Firefox, j'ai passé un peu de temps à parcourir leur bugzilla, mais je ne vois pas cela exactement bogue enregistré, bien que cela me semble être une erreur assez énorme?

24
Ian Grainger

Je recommanderais d'utiliser un module complémentaire Firefox pour cette tâche. Commutateur de paramètres régionaux simples , Commutateur de paramètres régionaux ou Commutateur de paramètres régionaux rapides etc. (* Attention, certains de ces modules complémentaires peuvent contenir des publicités ou ne pas fonctionner) si vous venez de mettre à jour Firefox).

* Une autre solution consiste à télécharger une ancienne version différente de Firefox en utilisant la langue/locale. (Attention) Vous en avez besoin et l'installez dans un dossier différent afin de ne pas écraser votre version existante. Téléchargez ici J'utilise firefox 28 en espagnol. J'ai désactivé les mises à jour et j'ai refusé de l'utiliser comme navigateur par défaut. Si vous faites cela, une seule version de Firefox devrait fonctionner en même temps.

9
PbxMan

Navigator.language et l'en-tête HTTP User-Agent utilisent la valeur de la préférence "general.useragent.locale", qui est codée en dur dans intl.properties aux paramètres régionaux de la version de Firefox que vous avez téléchargée: http: //mxr.mozilla.org/mozilla-central/source/toolkit/locales/en-US/chrome/global/intl.properties#8

Ou pour votre build en-GB: http://hg.mozilla.org/l10n-central/en-GB/file/88dd673c01f1/toolkit/chrome/global/intl.properties#l8

Si vous souhaitez le modifier pour votre build, chargez simplement about: config, recherchez general.useragent.locale, double-cliquez dessus et modifiez la valeur.

15
Ted Mielczarek

Je suppose que navigator.language renvoie sa langue d'interface (je suppose que c'est GB English), pas celle dans laquelle il veut des documents. La chaîne de l'agent utilisateur indique également la version de Firefox qui a été téléchargée.

Accept-language est ce que le serveur de destination doit vérifier.

Je considère ce comportement de son tout à fait correct (en supposant que son interface (les menus et autres) sont vraiment en anglais GB).

2
Josip Medved

Si vous voulez que le Accept-Language valeur, vous ne pouvez pas récupérer si vous utilisez du JavaScript côté client. Vous devrez l'obtenir sur votre serveur.

Si vous voulez vraiment cette valeur en JavaScript côté client, alors lisez-la sur le serveur et réécrivez-la au client:

<script type="text/javascript">
// setting the accept language HTTP header value
// in client-side JavaScript from PHP
var acceptLanguage = '<?php echo $_SERVER["HTTP_ACCEPT_LANGUAGE"]; ?>';
</script>
0
Grant Wagner

dans Firefox, à propos de: config, modifiez la valeur de "intl.accept_languages", à votre locale requise, disons que de-DE fera l'affaire.

0
lwpro2