créer un site en deux langue ?

keviin1988
Invité n'ayant pas de compte PHPfrance

12 oct. 2009, 22:40

Salut,
je voudrais créer un site web en anglais et en français ,
je veut que la langue soit déterminer avec l'ip , et le visiteur pourras aussi la changer avec une select .
Ma première question , es que j'utilise deux dossier localhost/fr/index.php et localhost/en/index.php et dans localhost/index.php je redirige le visiteur d'après son ip ou bien dans la page principale du site je fait un truc qui ressemble à sa

Code : Tout sélectionner

if (ip=francaofone:j'affiche la version française du site ; else j'affiche la version francaise ;
Deuxième question,
comment je peut directement faire une redirection de localhost/en/ à localhost/fr directement l'ors du changement de la langue sélectionné ?
je suis nouveau dans le domaine ,
merci beaucoup d'avance .

keviin1988
Invité n'ayant pas de compte PHPfrance

13 oct. 2009, 00:49

tout compte fait, je vais faire très simple
déterminer l'adress ip a l'index et renvoyer la personne selon son ip,
vous aurais pas un site qui donne les adresses ip de chaque pays ? Par exemple en Amérique les ip sont comprise entre 85.0.0.0 et 86.0.0.0 (c'est juste un exemple je connais pas les valeurs exacte :P ).
si en php je fait : if(($ip>(85.0.0.0)=&&($ip<(86.0.0.0) )...
ça marche ?
merci

ViPHP
AB
ViPHP | 5818 Messages

13 oct. 2009, 02:44

En général on se base sur la valeur de préférence du navigateur qui est paramétrable par le visiteur, ce qui est plus logique puisque c'est donc la langue que l'utilisateur utilise par défaut. Cette valeur peut-être trouvée par la variable de serveur HTTP_ACCEPT_LANGUAGE.

On peut faire cela pour trouver la langue du navigateur (et donc celle utilisée par défaut par le visiteur) :
$lang_navig = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$lang_navig = strtolower(substr(rtrim($lang_navig[0]),0,2));

//Vérification
echo $lang_navig;