août 13 2008

Site multilingue

Catégorie : PHPJulien - 19:47

Bonjour,

Suite à l’article de mon ami Didier de php-experts.org sur le système permettant l’utilisation d’un site multilingue, je poste le mien aussi :p

Pour l’utiliser, c’est très simple, il vous suffit d’utiliser en plus les sessions.

Voici le fichier du système de langue “lang.inc.php“:

  1. <?php
  2.  
  3. function getLang()
  4. {
  5.   $langAllowed = array(‘fr’, ‘en’, ‘es’);
  6.   if(isset($_GET[‘lang’]) && !empty($_GET[‘lang’]) && in_array($_GET[‘lang’], $langAllowed)):
  7.     $_SESSION[‘lang’] = $_GET[‘lang’];
  8.     $lang = $_SESSION[‘lang’];
  9.   elseif(empty($_SESSION[‘lang’])):
  10.     $browserLanguage = explode(‘,’, $_SERVER[‘HTTP_ACCEPT_LANGUAGE’]);
  11.     $_SESSION[‘lang’] = substr($browserLanguage[0], 0, 2);
  12.     $lang = $_SESSION[‘lang’];
  13.   else:
  14.     $lang = $_SESSION[‘lang’];
  15.   endif;
  16.   return $lang;
  17. }
  18. ?>

Voici un fichier d’exemple “exemple.php“:

  1. <?php
  2. require_once(‘lang.inc.php’);
  3. print("<b>Le site est en:</b> ");
  4. switch(getLang())
  5. {
  6.   case‘fr’:
  7.     print("Fran&ccedil;ais");
  8.   break;
  9.   case‘es’:
  10.     print("Espagnol");
  11.   break;
  12.   case‘en’:
  13.     print("Anglais");
  14.   break;
  15. }
  16. <b>Passer le site en:</b> ");
  17. print("<a href=\"?lang=fr\">Fran&ccedil;ais</a> - ");
  18. print("<a href=\"?lang=es\">Espagnol</a> - ");
  19. print("<a href=\"?lang=en\">Anglais</a> - ");
  20. print("<a href=\"?lang=\">V&eacute;rifier</a>");
  21. ?>

En espèrent que cette portion de code aura répondu à vos attentes ;)

DÉMONSTRATION

Source disponible sur le Wiki.

EDIT: Ajout de la vérification de la langue suite au commentaire de Savageman.

Tags: , ,

4 Réponses de “Site multilingue”

  1. Savageman says:

    Salut,

    Pas mal du tout ! J’aurais juste vérifié en plus que la langue passé en $_GET est autorisée, car on peut mettre n’importe quoi…

    @+

  2. Julien says:

    Bonjour,

    J’ai modifié la source suite à ton commentaire pertinent ;)

    Merci !

    Cordialement

  3. karin says:

    Bonjour, Je ne suis pas du tout calée en informatique et j’ai un peu de mal à saisir les informations. Voilà je souhaite avoir accès à un site (http//:shop.guess.com) et à chaque fois je suis redirigée sur le site multilingue (www.guess.com) comment avoir accès au premier site et y rester? par avance merci au spécialiste

  4. alexia says:

    Bonjour,
    je voulais savoir s’il y avait un autre moyen d’accéder à un site multilingue non disponible en français (shop.guess.com qui nous redirige vers sa page d’accueille) car je ne maîtrise absolument pas cette partie de l’informatique.

Laisser un commentaire