Script PHP : affichage la langue en fonction du navigateur

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

hska
Nouveau WRInaute
 
Messages: 22
Inscription: Ven Nov 19, 2004 15:20

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 passionné
WRInaute passionné
 
Messages: 919
Inscription: Mar Avr 06, 2004 12:09

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 passionné
WRInaute passionné
 
Messages: 622
Inscription: Dim Déc 14, 2003 21:05

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 impliqué
WRInaute impliqué
 
Messages: 307
Inscription: Mer Juil 07, 2004 14:05

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 passionné
WRInaute passionné
 
Messages: 919
Inscription: Mar Avr 06, 2004 12:09

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 passionné
WRInaute passionné
 
Messages: 919
Inscription: Mar Avr 06, 2004 12:09

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
 
Messages: 22
Inscription: Ven Nov 19, 2004 15:20

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: Sam Déc 18, 2004 9:24

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 accro
WRInaute accro
 
Messages: 1062
Inscription: Sam Sep 06, 2003 16:23

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
 
Messages: 3
Inscription: Lun Déc 24, 2007 11:51

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
 
Messages: 43
Inscription: Mar Sep 16, 2008 9:38

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
 
Messages: 43
Inscription: Mar Sep 16, 2008 9:38

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
 
Messages: 43
Inscription: Mar Sep 16, 2008 9:38

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.


Formation recommandée sur ce thème :

Formation Référencement 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