Mammouth du PHP |
601 Messages
31 déc. 2006, 22:20
Les deux fonctions
// recuperation des langues dispo
// retourne 1 table contenant les noms
function available_lang() {
global $chemin_bo, $lang_bo;
$lang_dispo=array();
// les répertoires indésirable
$badrep=array(".","..");
if ($dirLang=opendir($lang_bo)) {
$i=0;
while($repLang=readdir($dirLang)) {
$cheminRepLang=$lang_bo.$repLang;
if(is_dir($cheminRepLang) && !in_array($repLang, $badrep)) {
$lang_dispo[$i]=$repLang;
$i++;
}
}
}
else {
print die("Impossible de lire le répèrtoire");
}
return $lang_dispo;
}
// choix de la langues.
// met en place le fichier default_lang.php
// ce dernier contiendra la constante MY_lang précisant la langue à utiliser
function set_default_lang($choix_lang="") {
global $chemin_bo;
$lang_def=$chemin_bo."/lang/default_lang.php";
if(!file_exists($lang_def)) {
// default_lang.php n'existe pas et on recupère les langues disponnible
$lang_dispo=available_lang();
if(count($lang_dispo)>0) {
// écriture du contenu pour le fichier default_lang.php
$contenu="<?php\n";
$contenu.="define (\"MY_LANG\",\"$lang_dispo[0]\");\n";
$contenu.="?>\n";
$fp=fopen($lang_def, "w");
if(!$fp)
die ("Impossible");
fwrite($fp, $contenu);
fclose($fp);
}
else {
die ("Il n'y a aucun répertoire de langue");
}
}
else {
if($choix_lang!="") {
$contenu="<?php\n";
$contenu.="define (\"MY_LANG\", \"$choix_lang\");\n";
$contenu.="?>\n";
$fp=fopen($lang_def, "w");
if (!$fp)
die ("Impossible de créer le contenu");
fwrite($fp, $contenu);
fclose($fp);
}
}
}
Fichier pour le choix des langues
<?
// fichier pour le choix de la langue
while(!@include("$chemin_bo/lang/default_lang.php")) {
set_default_lang();
}
include ("$chemin_bo/lang/".MY_LANG."/lang.php");
?>
fichier config.php
<?
// Affichage de l'entete
// definition des chemins et adresse utile
$IP=(isset($_SERVER['SERVER_ADDR'])? $_SERVER['SERVER_ADDR']:getenv($_SERVER['SERVER_ADDR']));
// adresse du dossier multilingue
$serverback="$IP/courant-alternatif.com/ftp/www/assoc_sivit/";
//chemindu dosier multilingue
// DOCUMENT_ROOT c'est le chemin racine du server
$chemin_bo=$_SERVER["DOCUMENT_ROOT"]."/courant-alternatif.com/ftp/www/assoc_sivit";
// chemin du répertoire lang
$lang_bo=$chemin_bo."/lang/";
// inclusion fonction et congig_lang.php
require ("$chemin_bo/fonction.php");
include ("$chemin_bo/config_lang.php");
?>
Le fichier default_lang.php qui se trouve dans un repertoire lang
<?php
define ("MY_LANG", "french");
?>