Détection automatique de la langue du navigateur

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Détection automatique de la langue du navigateur

Re: Détection automatique de la langue du navigateur

par moogli » 22 nov. 2010, 01:23

Salut,

Pour le else, il signifie dans cette structure, le cas par defaut quand les deux premier n'existe. Dans ce cas ci pour moi je dirais le francais puisqu'il n'est pas dans les deux autres cas !

Je pense que le premier if est inutile si la variable n'est pas deja definies avant.
Un cookie peut etre une solution pour "garder" la langue du client couplé a un fomulaire pour laisser le choix ?

@+

Re: Détection automatique de la langue du navigateur

par stealth35 » 21 nov. 2010, 22:40

juste une info pour ceux que ca intéresse (tout le monde n'ayant pas pas encore php 5.3 et Intl)
y'a une fonction pour ca locale_accept_from_http :wink:

Re: Détection automatique de la langue du navigateur

par xTG » 21 nov. 2010, 20:50

C'est synthaxiquement correct, pour le dernier else s'il est vide autant ne pas le mettre. ;)

Re: Détection automatique de la langue du navigateur

par laresistance2 » 21 nov. 2010, 20:40

Pouvez-vous me répondre ?
Merci

Re: Détection automatique de la langue du navigateur

par laresistance2 » 20 nov. 2010, 07:32

Merci j'ai inclus ce code dans ma page d'accueil (index)
Mais pouvez-vous me dire si mon code est correct

Code : Tout sélectionner

if (!isset($Language)) { $Language = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']); $Language = strtolower(substr(chop($Langue[0]),0,2)); if ($Language == 'en') { header("Location: http://en.monsite.com"); } elseif ($Language == 'es') { header("Location: http://es.monsite.com"); } else { }}
et est-ce correct de ne rien mettre entre les accolades de la dernière condition ?
Merci

Re: Détection automatique de la langue du navigateur

par AB » 11 nov. 2010, 17:16

$lang_navig = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$lang_navig = strtolower(substr(rtrim($lang_navig[0]),0,2));

echo $lang_navig;

Re: Détection automatique de la langue du navigateur

par laresistance2 » 11 nov. 2010, 17:10

Oui merci,
La variable pour faire ça est

Code : Tout sélectionner

$_SERVER['HTTP_ACCEPT_LANGUAGE']
Mais concrètement je ne sais pas vraiment comment procéder :(
Pouvez-vous un peu m'aiguiller ?
Merci d'avance

Re: Détection automatique de la langue du navigateur

par Berzemus » 11 nov. 2010, 16:50

Bien sur, il faut vérifier les entêtes envoyés par le navigateur. On y trouve les langues qu'il accepte.

Détection automatique de la langue du navigateur

par laresistance2 » 11 nov. 2010, 15:41

Bonjour,
J'ai un site sur trois langues
monsite.com (version française), en.monsite.com et es.monsite.com
Je voudrais donc d'après la lange du navigateur il redirectionne l'internaute vers le site approprié.
Par exemple si la lange du navigateur est l'anglais le script redirectionne automatique l'internaute vers en.monsite.com

Avez-vous une idée commet puis-je faire ça en PHP ?
Merci