Site bilingue, besoin de comprendre

Fermé
kalakrima - 3 avril 2012 à 13:05
smellems Messages postés 135 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 4 mai 2012 - 3 avril 2012 à 20:31
Bonjour,

je parcours le web depuis 3 jours, je suis novice et en ne trouvant pas une solution et explication à mon problème, j'ai décidé de demander sur le forum :) Je poserais une question bête, donc ne m'en voulez pas trop.

Alors, j'ai fait un site bilingue : FR et EN avec php. Cependant, j'ai lu des articles sur le référencement et je ne comprend pas comment obtenir ces fameux dossiers "virtuels" recommandés par google.

Actuellement, j'ai mon site qu'il soit en anglais ou français affiche : index.php
Je voudrais faire comme la plupart d'entre nous, donc afficher : monsite.fr/en/index.php ou monsite.fr/index.php

J'ai essayé de faire avec URL rewriting, mais j'obtiens à chaque fois une erreur 500. Je suis en local pour le moment sous MAMP.

Je vous laisse mes bouts de code que j'ai fait en suivant un tuto.

Alors ma page LANG.PHP :

<?php

 if(isset($HTTP_COOKIE_VARS['lang'])) {
 	     $lang = $HTTP_COOKIE_VARS['lang'];
 	 } else {
 	     // si aucune langue n'est déclarée on tente de reconnaitre la langue par défaut du navigateur
 	     $lang = substr($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'],0,2);
 	 }

	 //script d'origine

     if (isset($_POST['lang_select']))
     {
         if ($_POST['lang_select'] == 'fr')
         {
            $lang = 'fr';
            //include('lang/fr-lang.php');
         }
         elseif ($_POST['lang_select'] == 'en')
         {
            $lang = 'en';
            //include('lang/en-lang.php');
         }

     }

	 if ($lang=='fr') {           // si la langue est 'fr' (français) on inclut le fichier fr-lang.php
	     include('lang/fr-lang.php');
	 } elseif ($lang=='en') {      // si la langue est 'en' (anglais) on inclut le fichier en-lang.php
	     include('lang/en-lang.php');
	 }
	 //fin du script d'origine

	 //définition de la durée du cookie (1 an)
	 $expire = 365*24*3600;

	 //enregistrement du cookie au nom de lang
	 setcookie("lang", $lang, time() + $expire);

?>


Ma page EN-LANG.PHP

<?php
//Menu
define ('menu','Menu');
define ('Home','Home');
define ('Services','Services');
define ('Products','Products');
define ('how_it_works','How It Works?');
define ('about','About Us');
define ('contact','Contact');

//CONTENT
define('HomePage','Home');
define('ProductsPage','Products');
define ('how_it_works_TITLE','How It Works?');
?>



MA PAGE DE CHOIX DE LANGUE :

<form method=post name="lang" class="form_lang">
                <select name="lang_select" onchange="document.lang.submit();">
                  <option label="Français" value="fr" <?php echo ($_POST['lang_select'] == 'fr'?'selected':'');?>>Français</option>
                  <option label="English" value="en" <?php echo ($_POST['lang_select'] == 'en'?'selected':'');?>>English</option>
                </select>
</form>



Déjà je ne sais pas comment faire pour avoir des icônes ou lieu d'une liste déroulante, car c'est la seule solution que j'ai trouvé et qui fonctionne pour moi (peut être je ne me suis pas bien prise), ensuite pour l'URL c'est une catastrophe, je ne comprends pas comment appliquer cette méthode avec mon script actuel.

Si une âme généreuse peut m'éclairer sur ces points, je serais plus que reconnaissante! :)

Je vous remercie d'avance.

A voir également:

1 réponse

smellems Messages postés 135 Date d'inscription vendredi 28 avril 2006 Statut Membre Dernière intervention 4 mai 2012 46
3 avril 2012 à 20:31
Bonjour kalakrima,
les site multilingues que j'ai fait n'utilisent pas de URL rewriting. mes URL sont afficher comme suit:

index.php?l=fr
index.php?l=en

j'ai toujours trouvé que c'était plus simple de ne pas changer les url. Google et les autres saivent faire la différence entre les deux pages (la même page en fr et en)

tu peux avoir des liens (icones) vers l'autre langue puisque c'est un URL différent.

le CMS que j'ai créé est disponible sur SourceForge ici:

https://sourceforge.net/projects/stpiadmin/

j'espère que ça pourra t'aider..
0