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: , ,