Page 1 sur 1
$_SERVER['HTTP_ACCEPT_LANGUAGE'] [regle]
Publié : 15 nov. 2005, 23:53
par arno.
bonjour.
dans ma variable d'environnement php $_SERVER['HTTP_ACCEPT_LANGUAGE'] . j'ai, avec Firefox :
fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
alors qu'avec d'autres navigateurs, (lynx et konqueror), j'obtiens des choses moins surprenantes comme fr,en
quelqu'un sait-il a quoi correspondent ces variables q=
merci.
Publié : 16 nov. 2005, 01:00
par Mori
salut
visiblement des variables identifiant les langues ... mais je ne connais pas le tableau ... donc pour l'amharique, je ne sais pas.
Variable http_accept_charset
Donne le code du jeu de caractères accepté par votre navigateur. C'est le contenu de l'en-tête Accept-Charset: de la requête courante, si elle existe. Par exemple, le jeu de caractères accentués de notre alphabet français : 'iso-8859-1,*,utf-8'.
ISO-8859-1,utf-8;q=0.7,*;q=0.7
Variable http_accept_language
Donne la langue reconnue par votre navigateur (qui n'est pas forcément la même que celle dans laquelle il s'affiche. C'est le contenu de l'en-tête Accept-Language de la requête courante, si elle existe: Par exemple : 'fr'. Sert, par exemple, aux Webmasters qui développent des sites multilingues. Sert également aux statistiques car on en déduit l'origine géographique et la langue favorite du visiteur. Ce n'est pas fiable à 100% (par exemple, j'utilise un navigateur en langue anglaise US alors que je suis français né à l'étranger) mais cela donne une tendance certaine. L'analyse de cette chaîne de caractères permet donc de déduire, avec de fortes probabilités d'exactitude, quels sont votre langue maternelle et votre pays d'origine (pas le pays où vous êtes installé actuellement - celui-ci est calculé à partir de l'adresse IP)
fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
http://assiste.free.fr/p/qui_etes_vous/qui.php
Publié : 16 nov. 2005, 09:52
par arno.
merci Mori.
Effectivement, ca a a voir avec les langues acceptees pour le navigateur.
Cela correspond a ma preference (ou peut y acceder aussi par le menu des options)
intl.accept_languages avec les
q= en plus.
Pour voir ce que cela fait chez vous, en fonction de vos reglages ou de votre navigateur, vous pouvez voir ici :
http://ffsearchplugins.free.fr/essai.php
pourquoi diable firefox rajoute-t-il ces signes cabbalistiques

Publié : 16 nov. 2005, 10:27
par bobo
Les paramètres q= servent à indiquer la priorité. Le niveau le plus élevé est q=1, qui est la valeur par défaut.
Ta chaîne fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 signifie donc que tu préfère le français classique à 100%, le français de france à 80%, l'anglais d'amérique à 50% et l'anglais quelconque à 30%.
Normalement le serveur pourrait combiner cette information avec la qualité de la traduction des pages dont il dispose. Si les pages en français ont une qualité de 20% (traduction automatique à partir du russe par exemple), mais les pages en anglais US une qualité de 90% (traduction à partir du russe, mais par quelqu'un comprenant très bien les 2 langues), on en déduirait qu'il vaut mieux proposer la version anglaise (résultante à 45%) plutôt que la version française (résultante à 20%).
Mais tout ça est rarement utilisé dans la pratique.
Publié : 16 nov. 2005, 10:30
par arno.
merci beaucoup
Publié : 16 nov. 2005, 10:51
par Mori
j'en connais un qui va se trouver moins bête cette journée.

merci bobo, pour cette explication précise.
Publié : 16 nov. 2005, 17:08
par calimo
Bon, moi j'ai toujours un peu de peine à piger la syntaxe du truc et à quoi s'appliquent les q=.
Prenons l'exemple du HTTP-ACCEPT qui est un peu plus compliqué :
Code : Tout sélectionner
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Sur quoi s'applique le 0.9 ? Sur ce qui est juste avant ? Ou tout ce qui est avant ? Est-ce qu'il y a une explication claire quelque part de la syntaxe exacte ?
Publié : 16 nov. 2005, 17:58
par chBok
J'ai traduit cette page sur le site d'Apache, je pense qu'elle répond plus précisement à la question posée.
Bonne lecture

Publié : 16 nov. 2005, 23:50
par arno. sans ses cookies
il est interessant cet article chBok
mais concetement, je n'ai pas acces a la config d'apache, c'est pour un compte free, et ma negociation de langue, je dois la faire avec php, et eventuellement .htacess
Du coup, je pensais parcourir la variable, regarder pour chaque entree, si elle correspond a une de mes langues, sinon prendre une valeur par defaut (l'anglais), et ensuite, faire les include qui vont bien.
Est-ce qu'il y aurait une maniere de faire ?