problème référencement et language
Bonjour à tous,
je viens de terminer un site multi-langues. j'utilise une fonction pour parser la variable $_SERVER["HTTP_ACCEPT_LANGUAGE"] qui me renvoie la langue de l'utilisateur. Tout fonctionne très bien avec toutes les langues et sur tous les navigateurs. Sauf que au niveau des crawlers (robots) tel que google, cette fonction me renvoie un tableau vide. Du coup, mes pages référencées sont en erreur.
Je ne connais pas bien les techniques de crawling employées par les moteurs de recherche... Quelqu'un pour une solution?
Voici la fonction que j'utilise
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
function get_pref_language_array($str_http_languages)
{
$langs = explode(',',$str_http_languages);
$qcandidat = 0;
$nblang = count($langs);
for ($i=0; $i<$nblang; $i++)
{
for ($j=0; $j<count($langs); $j++)
{
$lang = trim($langs[$j]); // Supprime les espaces avant et après $lang
// Lang est de la forme langue;q=valeur
if (!strstr($lang, ';') && $qcandidat != 1)
{
// Si la chaine ne contient pas de valeur de préférence q
$candidat = $lang;
$qcandidat = 1;
$indicecandidat = $j;
}
else
{
// On récupère l'indice q
$q = ereg_replace('.*;q=(.*)', '\\1', $lang);
if ($q > $qcandidat)
{
$candidat = ereg_replace('(.*);.*', '\\1', $lang); ;
$qcandidat = $q;
$indicecandidat = $j;
}
}
}
$resultat[$i] = $candidat;
$qcandidat=0;
// On supprime la valeur du tableau
unset($langs[$indicecandidat]);
$langs = array_values($langs);
}
return $resultat;
} |
Et voici mon appel de fonction
Code:
1 2 3
|
$lang = get_pref_language_array($_SERVER["HTTP_ACCEPT_LANGUAGE"]);
$_SESSION["lang_user"]=strtolower(substr($lang[0],0,2)); |
Merci de votre aide.
Et Joyeuses fêtes à tous