Site multi-lang

cs_sloyvy Messages postés 6 Date d'inscription samedi 3 mai 2003 Statut Membre Dernière intervention 3 mars 2008 - 1 juil. 2003 à 14:04
clovismaj Messages postés 4 Date d'inscription mercredi 7 juin 2006 Statut Membre Dernière intervention 8 juin 2006 - 7 juin 2006 à 23:30
Bonjour,

Je cherche un script php permettant de mettre en place un site multilangue avec nombre de langue illimité,

Si vous avez des bonnes adresses a partager, merci,

1 réponse

clovismaj Messages postés 4 Date d'inscription mercredi 7 juin 2006 Statut Membre Dernière intervention 8 juin 2006
7 juin 2006 à 23:30
essai ceci:

. . .
//Votre code
. . .
 
// Définir ici l'adresse de base de votre site le serveur
define('HTML_ROOT_PATH',"/var/www/html/"); // doit se termine par /
 
// Définir ici les langues disponibles sur votre site
$Lang_List=array("FR","NL","DE","EN");
 
/*
les fichiers langues devront être placé dans les répertoires
/Languages/Lang_FR/ pour le francais,
/Languages/Lang_EN/ pour l'anglais,
  ...
*/
 
/******************************************************************************/
/* UBG-BUL - - Union Belge des Géomètres - Belgische Unie van Landmeters */
/* (c) UBG-BUL -- Tous droits réservés */
/******************************************************************************/
/* Conception et programation par Jacques Houbart */
/******************************************************************************/
/* Ce Script est sous licence LGPL, ni plus, ni moins */
/******************************************************************************/
 
 
//****************************************************************************
// Détermination de la langue de l'utilisateur en fonction de sa configuration
//****************************************************************************
 
if (isset($_GET['Language'])&&(@in_array($_GET['Language'],$Lang_List)))
{
define('LANGUAGE', $_GET['Language']);
}
elseif (isset($_SESSION["UserLanguage"]))
{
define('LANGUAGE', $_SESSION["UserLanguage"]);
}
 
 
else
{
$Accept_Lang=explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
reset($Accept_Lang);
while ( list($Index,$Language)=@each($Accept_Lang))
     {
     if (eregi( "^(.+);q=([0-9.]*)$", $Language , $Part))
{
$Accept_Lang[$Index]=$Part[2] . ';'.strtoupper($Part[1]);
     }
     else
     {
     $Accept_Lang[$Index]='1.0;'.strtoupper($Accept_Lang[$Index]);
     }
     }
    arsort($Accept_Lang); //tri par ordre de préférence
    reset($Accept_Lang);
    while (list(,$ALang)=@each($Accept_Lang) )
     {
     reset($Lang_List);
     while ( list(, $Language) = @each($Lang_List) )
     {
        if (strpos($ALang,$Language)!=0)
        {
define('LANGUAGE', $Language);
         break 2;    
         }
     }
    }
unset($Accept_Lang, $ALang,$Language);
}
 
 
if (!defined('LANGUAGE'))
{
//----------------------------------------------------------------------
// Détermination de la langue de l'utilisateur impossible
// ->> affichage d'une page pour sélectionner la langue
//--------------------------------------------------------------------------
$StartUrl=$_SERVER["REQUEST_URI"].(preg_match("/\?/",$_SERVER["REQUEST_URI"])?"&":"?");
 
?>
<html>

Ceci est votre page de sélection de la langue
Bon! 'est une versuin très simplifiée, mais c'est pour le principe qui compte
 
[<?=$StartUrl ?>Language=FR Bienvenue ]
                 
[<?=$StartUrl ?>Language=NL Welkom ]
                 
[<?=$StartUrl ?>Language=EN Welcome]
                 

</html>
<?
exit;
}
$_SESSION["UserLanguage"]=LANGUAGE;
define('HTML_LANG_PATH',HTML_ROOT_PATH . 'Languages/Lang_'. LANGUAGE .'/');
 
//****************************************************************************
 
/*
Voilà, à partir d'ici, la langue du site est définie
Pour charger un fichier propre à une langue, utiliser
*/
 
include(HTML_LANG_PATH."lang_main.php");
 
//Il faut évidement qu'un fichier lang_main.php soit disponible pour chaque langue dans le répertoire approprié
 
...
Le restant de votre page
...

Clovis
0
Rejoignez-nous