Comment google interprète-t-il le code php défnissant un texte par rapport a un browser...

WRInaute discret
Je m'explique...
Mon site kaaxan est assez bien référencé en français et en espagnol, mais je rame en anglais et je n'arrive pas a progresser...
Comme si google n'arrivait pas a lire la premiere page.
Or, la langue se définit avec un code php, selon le browser du client... Comment fait google pour choisir une langue ? Mon code provoquerait-il un "non-langue"?
Code:
// Dans le cas ou je reçoive la langue par request (ce qui n'est pas le cas de google)
if (isset($_GET["language"])) $langstr = $_GET["language"];
elseif (isset($_POST["language"])) $langstr = $_POST["language"];
elseif (isset($_GET["lang"])) $langstr = $_GET["lang"];
elseif (isset($_POST["lang"])) $langstr = $_POST["lang"];
elseif (isset($_COOKIE["kaaxan"])) { //DAns le cas ou c'est un ancien visiteur(pas le cas de google non plus)
	$parmsarr = explode("|",$_COOKIE["kaaxan"]);
	$langstr = $parmsarr["langstr"];
}
// si ma variable n'est pas définie (comme pour un moteur google)
if (empty($langstr)) {
	class Language {
	var $langstr = "en";
	function Language($langstr) {
		if ($langstr=='') $langstr = $this->getBrowserLanguage();
		if ($langstr=="fr"||$langstr=="be"||$langstr=="bj"||$langstr=="bf"||$langstr=="bi"||$langstr=="cm"||$langstr=="cn"
		||$langstr=="cv"||$langstr=="km"||$langstr=="cg"||$langstr=="cd"||$langstr=="ci"||$langstr=="dj"||$langstr=="ga"
		||$langstr=="gp"||$langstr=="gf"||$langstr=="gw"||$langstr=="pf"||$langstr=="tf"||$langstr=="gy"||$langstr=="ht"
		||$langstr=="pf"||$langstr=="tf"||$langstr=="gy"||$langstr=="ht"||$langstr=="re"||$langstr=="lu"||$langstr=="mg"
	||$langstr=="ml"||$langstr=="ma"||$langstr=="mq"||$langstr=="mc"||$langstr=="mz"||$langstr=="ne"||$langstr=="rw"
		||$langstr=="sn"||$langstr=="sc"||$langstr=="pm"||$langstr=="ch"||$langstr=="tg"||$langstr=="tn"||$langstr=="vu"
			||$langstr=="tz") $langstr = "fr";
		elseif ($langstr=="de"||$langstr=="au") $langstr = "de";
		elseif ($langstr=="es"||$langstr=="mx"||$langstr=="ar"||$langstr=="bo"||$langstr=="cl"||$langstr=="co"
              ||$langstr=="cr"||$langstr=="cu"||$langstr=="ec"||$langstr=="gq"||$langstr=="gt"||$langstr=="hn"||$langstr=="ni"||
               $langstr=="pa"||$langstr=="pe"||$langstr=="pr"||$langstr=="do"||$langstr=="uy"||$langstr=="ve"||$langstr=="sv") 
               $langstr = "es";
		else $langstr = "en";
		$this->langstr = $langstr;
	}
	function getBrowserLanguage() {
		$langtxt = $_SERVER["HTTP_ACCEPT_LANGUAGE"];
		$lang = strtolower(substr($langtxt,0,2));	// needed for firefox!!!!!!!
		$langstr = $lang;
		$this->langstr = $langstr;
		return $langstr;
	}
}
	$language = new Language("");
	$langstr = $language->langstr;
}

Aurais-je dans ces quelques lignes la raison de mon désarroi ?!?

Merci de votre aide
Sophie
 
WRInaute passionné
GG n'interprète rien du tout puisque ce code s'execute sur ton serveur, et lui ne reçoit que ce que tu emmets.

Maintenant, tu as vérifié que HTTP_ACCEPT_LANGUAGE contient quelquechose? Parceque sinon, tu ne retournes rien...
Car tu ne traites pas le cas $langstr=="" ni le cas $langstr="".
 
WRInaute discret
Merci !!

Donc en rajoutant la 4e ligne dans ce code, je me couvre:

Code:
	function getBrowserLanguage() {
		$langtxt = $_SERVER["HTTP_ACCEPT_LANGUAGE"];
		$lang = strtolower(substr($langtxt,0,2));	// needed for firefox!!!!!!!
		if ($langtxt=""||$langtxt=="") $langstr="en";
		$langstr = $lang;
		$this->langstr = $langstr;
		return $langstr;
	}

Mais quand même, pour ma gouverne, HTTP_ACCEPT_LANGUAGE renvoie bien une information que l'utilisateur envoie depuis son browser ?
"Elle précise en fait quelle est la langue acceptée par le navigateur qui s' est connecté au serveur." MAIS QUE RENVOIE LE NAVIGATEUR DU GOOGLEBOT?

Merciiiiiii
 
WRInaute accro
Le Googlebot n'a pas de langue, il prend donc la langue que tu as définie par défaut, et suit les autres langues via les liens internes
 
Discussions similaires
Haut