Site multilingue avec "echo" et Référencement

Eléphanteau du PHP | 38 Messages

04 févr. 2013, 12:40

Bonjour,

J'ai fait un site multilingue.

Le fichier setlang.php qui est ensuite "require" dans chaque pages charge le fichier où est mis le texte avec le bon langage.
Ensuite chaque page utilise un "echo" pour afficher le contenu.

Mais je crains pour le référencement du site. Car je ne sais pas comment les robots vont gérer le contenu qui est, pratiquement dans son intégralité géré par setlang.php.

Quel langue vont ils exécuter ?
Vont ils pourvoir "lire" les texte qui passe tous par "echo" ?
<?php echo MON_TEXTE; ?>
Et vont ils pouvoir parcourir mon header où il y a tout la navigation qui est en "include" dans chaque page ?

Merci à vous

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

04 févr. 2013, 22:22

Salut,


Les robots ne vois que le html, pas le code php.

Donc ils verront ce que ton code affiche.

Ne sachant pas comment est fait ton système on ne peux pas t'aider plus ;)


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 38 Messages

05 févr. 2013, 15:00

Merci moogli,

Je vais détailler tout sa :

Lorsque le visiteur clique sur le lien correspondant à la langue qu'il souhaite, il est redirigé à l'index via : "../index.php?lang=fr" ou "../index.php?lang=en" ou "../index.php?lang=ger"

J'ai ensuite le fichier "setlang.php" qui gerre sa :
<?php
$lang_traduites = array(0 => 'fr', 1 => 'en', 2=> 'ger' );
$langue_defaut = $lang_traduites[0];

$lang_navig = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$lang_navig = strtolower(substr(rtrim($lang_navig[0]),0,1,2));

$lang =  !empty($_COOKIE['lang'])? $_COOKIE['lang'] : 0;
$lang =  !empty($_GET['lang'])? $_GET['lang'] : $lang;
$lang =  !empty($lang)? $lang : $lang_navig ;
$lang =  in_array($lang,$lang_traduites)? $lang : $langue_defaut;

if ((!empty($_GET['lang']) && in_array($_GET['lang'],$lang_traduites)) && (empty($_COOKIE['lang']) ||
    (isset($_COOKIE['lang']) && $_COOKIE['lang'] != $_GET['lang']))) setcookie('lang', $_GET['lang'], time() + 3600 * 24 * 365);


switch($lang)
           {
        case 'fr':
        include('lang/lang_fr.php');
        break;
        case 'ger':
        include('lang/lang_ger.php');
        break;
        case 'en':
        include('lang/lang_en.php');
        break; 
                   }

?>

Voici un aperçu d'un de mes fichier ou il y a les différentes langues : (lang_fr.php en l'occurrence)
<?php
define('PAGE_ACCUEIL',' Page d?Accueil');
define('ACTUALITES',' Actualit&#233;s');
define('EXPOSITIONS_PERMANENTES',' Expositions Permanentes');
define('EXPOSITIONS_TEMPORAIRES',' Expositions Temporaires');
define('JOSEPH_PYRZ',' Joseph Pyrz');
define('JOSEPH_KIREGEL',' Joseph Kriegel');
define('DIX_PAROLES',' Le chemin des dix paroles');
define('EXPOSITIONS_TEMPORAIRES2',' Expo Temp');
define('HISTORIQUE',' Historique');
define('BIOGRAPHIE_PYRZ',' Biographie de Joseph Pyrz');
define('AUTOUR_DU_CENTRE',' Autour du centre');
define('CONTACT',' Contact');
define('HORAIRES_ACCES',' Horaires et Acc&#232;s');
define('INFORMATIONS',' Informations compl&#233;mentaires');
define('ACHAT_D_OEUVRE',' Achat d?Oeuvres');
define('SET_DEUTSCH',' Deutsch version');
define('SET_ENGLISH',' English version');
define('SET_FRENCH',' Version Fran&#231;aise');
define('CONTACTFORM',' Contactez-nous depuis le site');
define('PRESSE',' Presse');
define('LEGAL',' Mentions L&#233;gales');
define('TITRE_1',' Titre TRE 1');
define('TXT_ACCUEIL_BLOCK2',' Il fait un soleil radieux !');
define('TXT_ACCUEIL_BLOCK3',' Faites du PHP !');
define('TXT_PYRZ_BLOCK1',' fransalice');
define('TXT_CONSEIL_BLOCK2',' edfefefenstallez Linux !');
define('TEST',' <p>dzadznefezijfze</p> <p>dTGTGTGTfezijfze</p>');
?>
Et ensuite je place tout sa dans mes pages avec :
<?php echo MON_TEXTE; ?>
Donc si je comprend bien sa devrais marcher, mais quelle langue va être prise par le bot ?

Merci,