Script PHP : affichage la langue en fonction du navigateur

Consultez la formation au REFERENCEMENT naturel Google de WebRankInfo / Ranking Metrics

hska
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 22
Inscription: 19 Nov 2004

Script PHP : affichage la langue en fonction du navigateur

Message le Jeu Jan 13, 2005 16:08

Bonjour,
Je voudrais vous demander un renseignement:
Comment faites vous, en PHP / MySQl pour détecter automatiquement la langue du navigateur et par la suite, de redirectionner l'internaute vers la page acceuil de sa langue préférence?

Je dispose un petit site en PHP/mySQL qui contient 3 langues Français, Anglais, Espagnol.
Les URL sont les suivant :
-www.monsite.com/index_fr.php
-www.monsite.com/index_uk.php
-www.monsite.com/index_es.php

Si la langue n'est pas idetifié sur le navigateur de l'internaute, la page d'accueil par défaut sera affichée : -www.monsite.com/index_fr.php

Est ce qui vous connaissez un script tout fait qui permettra de faire cela?
Merci d'avance!

PS: Enfait ,j'ai trouvé ce ci mais je n'arrive pas à adapter à mon cas, aidez moi s'il vous plaît: Merci

<?
if (!isset($Langue)) {
$Langue = explode(",",$HTTP_ACCEPT_LANGUAGE);
$Langue = strtolower(substr(chop($Langue[0]),0,2));
}
?>
<? else {
header("Location: /index.php?Langue=fr");
} ?>


XenonDelee
WRInaute impliqué
WRInaute impliqué
 
Messages: 923
Inscription: 6 Avr 2004

Message le Jeu Jan 13, 2005 17:10

euh j'ai jamais fait ça mais il me semble qu'il ya une erreur logique

essaie plutôt ça :

Code: Tout sélectionner
if (!isset($Langue)) {
  if(isset($HTTP_ACCEPT_LANGUAGE)){
  $Langue = explode(",",$HTTP_ACCEPT_LANGUAGE);
  $Langue = strtolower(substr(chop($Langue[0]),0,2)); }
else
  $Langue="fr";
}
header("Location: /index.php?Langue=$Langue");


sietjp
WRInaute impliqué
WRInaute impliqué
 
Messages: 624
Inscription: 14 Déc 2003

Message le Jeu Jan 13, 2005 17:39

Pour reprendre le code de XenonDelee et l'adapter à ton cas ça fait ceci (avec une redirection 301 c mieux je pense pour google) :

Code: Tout sélectionner
header("HTTP/1.1 301 Moved Permanently");
header("Location: /index_$Langue.php");
Dernière édition par sietjp le Jeu Jan 13, 2005 21:46, édité 1 fois.

Morph1er
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 307
Inscription: 7 Juil 2004

Message le Jeu Jan 13, 2005 17:50

Je n'interviendrait pas directement dans le code mais il faut savoir que php est passé aux Super Globale tel que $_SERVER pour ton cas, mais il existe $_GET, $_POST, $_SESSION, $_REQUEST, $_FILES, $_COOKIE, $_ENV... )je crois que j'en ai oublié une mais je ne vois plus lol...)

Tous ça pour dire que programmer c'est bien, respecter des "standards" datant de 5 ans n'est peut-être plus conseillé... passe sur le manuel php, et tu découvriras que ça pourrait te jouer des tours de tout faire à l'ancienne.


XenonDelee
WRInaute impliqué
WRInaute impliqué
 
Messages: 923
Inscription: 6 Avr 2004

Message le Jeu Jan 13, 2005 20:21

J'ai laissé $HTTP_ACCEPT_LANGUAGE pour reprendre son exemple

il est vrai qu'il est plus prudent aujourd'hui d'écrire

$_server[HTTP_ACCEPT_LANGUAGE]

Ceci dit je ne crois pas que cela provoque une faille de sécurité de garder l'ancienne notation ( dans ce cas précis ) :roll:

( mais je ne suis pas hacker :mrgreen: )


XenonDelee
WRInaute impliqué
WRInaute impliqué
 
Messages: 923
Inscription: 6 Avr 2004

Message le Jeu Jan 13, 2005 20:24

sietjp a écrit:
Code: Tout sélectionner
header("Location: /index_$Langue.php");


oui c'est la bonne adaptation au cas :lol:

hska
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 22
Inscription: 19 Nov 2004

Merci à vous tous

Message le Jeu Jan 13, 2005 21:40

Bonsoir à vous tous,
Je vous remercie de vos contributions et vos remarques, cela m'a permis de mieux comprendre et adapter ce script à mes besoins.
Super génial, merci encore.
hska

Céo Kay
WRInaute discret
WRInaute discret
 
Messages: 68
Inscription: 18 Déc 2004

Message le Ven Jan 14, 2005 11:45

Petite question ....

Est-ce que dans ce cas, Google ( qui ne renverra pas de HTTP_ACCEPT_LANGAGE ) ne risque pas de ne visiter que le site français ???

ou s'il en renvoie de ne visiter qu'une des versions du site ?

Ca sera dommage pour le référencement des autres versions du site .... :cry:


Remi L.
WRInaute passionné
WRInaute passionné
 
Messages: 1063
Inscription: 6 Sep 2003

Message le Ven Jan 14, 2005 16:57

Oui, si tu n'as pas de liens pour passer volontairement d'une langue à l'autre... D'ailleurs sans parler de googlebot, ce sont tes visiteurs qui en ont besoin (parce que la redirection auto ne peut marcher dans tous les cas).

LeZeb
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 3
Inscription: 24 Déc 2007

Message le Lun Déc 24, 2007 12:05

J'aimerais beaucoup appliquer ce script a mon blog
http://zeb.3dvf.com/blog

mais visiblement cela ne marche pas tres bien
j'atterit sur zeb.3dvf.com/index.php/en ou fr et non pas zeb.3dvf.com/blog/index.php/en ou fr

si je changes l'url du header de la sorte :
header("Location: /blog/index.php/$Langue");
la je tombes sur zeb.3dvf.com/blog/blog/index.php/en

au secours :)

merci de votre aide

Fanfan92
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 45
Inscription: 16 Sep 2008

Message le Jeu Nov 13, 2008 19:37

sietjp a écrit:Pour reprendre le code de XenonDelee et l'adapter à ton cas ça fait ceci (avec une redirection 301 c mieux je pense pour google) :

Code: Tout sélectionner
header("HTTP/1.1 301 Moved Permanently");
header("Location: /index_$Langue.php");


Salut,

Je redeterre un vieux topic, mais en lisant ca, je n'ai pas compris. Pourquoi vaut-il mieux faire une redirection permanente quand on redirige suivant la langue du navigateur. Intuitivement j'aurais tendance à penser que c'est cela qu'il faut faire, mais j'ai du mal à m'expliquer quel est le raisonnement derrière ca. Si quelqu'un veux bien m'expliquer :wink:

Si je fais une page index.php qui redirige vers mon repertoire francais ou anglais selon le cas, est ce que ca va avoir une conséquence quelconque pour mon référencement (sachant qu'actuellement j'ai juste à la racine un .htaccess qui redirige vers le repertoire anglais qd la page d'accueil est demandée. Je veux remplacer ce htacess par un index.php qui detecte la langue)?

Merci de m'eclairer de vos lumières.

Fanfan92
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 45
Inscription: 16 Sep 2008

Message le Sam Nov 15, 2008 2:02

Alors, vaut-il mieux (pour google) faire un redirect permanent ou pas, lorsque l'on redirige suivant la langue du navigateur?

Pas d'avis? :(

Fanfan92
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 45
Inscription: 16 Sep 2008

Message le Mar Nov 18, 2008 9:16

Salut à tous,

Un petit up :oops:

J'aimerai avoir une confirmation que ca n'a pas d'impact sur le referencement avant de faire une page index qui detecte la langue du navigateur sur mon site.

Merci de votre aide.

michel.leonard
WRInaute discret
WRInaute discret
 
Messages: 184
Inscription: 1 Juin 2010

Re: Script PHP : affichage la langue en fonction du navigateur

Message le Dim Mar 04, 2012 16:49



Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation REFERENCEMENT naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités