27,7 → 27,13 |
// | ENTETE du PROGRAMME | |
// +------------------------------------------------------------------------------------------------------+ |
$GLOBALS['_GEN_commun']['info_applette_nom_fonction'] = 'afficherContenuLocal'; |
$GLOBALS['_GEN_commun']['info_applette_balise'] = '(?:<!-- '.$GLOBALS['_GEN_commun']['balise_prefixe'].'(CONTENU_LOCAL_?(?:([A-Za-z0-9_]+))) -->)'; |
$GLOBALS['_GEN_commun']['info_applette_balise'] = '\{\{[Cc]ontenu_local'. |
'(?:\s*'. |
'(?:'. |
'(var="[^"]*")|'. |
')'. |
')+'. |
'\s*\}\}'; |
|
// +------------------------------------------------------------------------------------------------------+ |
// | CORPS du PROGRAMME | |
50,29 → 56,41 |
|
function afficherContenuLocal($tab_applette_arguments, $_GEN_commun) |
{ |
//Gestion de la valeur par défaut |
//Gestion de la langue par défaut |
$langue = $GLOBALS['_GEN_commun']['i18n']; |
|
if ($langue == '') { |
$langue = 'en'; |
$langue = GEN_I18N_ID_DEFAUT; |
} |
|
trouverI18N($langue); |
|
$lang = $GLOBALS['_PAPYRUS_']['page']['langue_site']; |
$cle = $tab_applette_arguments[2]; |
|
if (isset($tab_applette_arguments[2])) |
//+----------------------------------------------------------------------------------------------------------------+ |
// Gestion des arguments |
$balise = $tab_applette_arguments[0]; |
$tab_arguments = $tab_applette_arguments; |
unset($tab_arguments[0]); |
foreach($tab_arguments as $argument) { |
if ($argument != '') { |
$tab_parametres = explode('=', $argument, 2); |
$options[$tab_parametres[0]] = trim($tab_parametres[1], '"'); |
} |
} |
|
$cle = $options["var"]; |
if (isset($cle)) |
{ |
// Si l'argument a bien été passé, on cherche la traduction |
|
if (isset($GLOBALS['_PAPYRUS_']['PAP_LANG'][$lang][$cle])&&(!empty($GLOBALS['_PAPYRUS_']['PAP_LANG'][$lang][$cle]))) |
// Si l'argument a bien été passé, on cherche la traduction |
if (isset($GLOBALS['_CONTENU_LOCAL_']['TRANS'][$lang][$cle])&&(!empty($GLOBALS['_CONTENU_LOCAL_']['TRANS'][$lang][$cle]))) |
{ |
// La traduction extiste dans la langue courante |
|
return $GLOBALS['_PAPYRUS_']['PAP_LANG'][$lang][$cle]; |
return $GLOBALS['_CONTENU_LOCAL_']['TRANS'][$lang][$cle]; |
} |
elseif (isset($GLOBALS['_PAPYRUS_']['PAP_LANG'][GEN_I18N_ID_DEFAUT][$cle])&&(!empty($GLOBALS['_PAPYRUS_']['PAP_LANG'][GEN_I18N_ID_DEFAUT][$cle]))){ |
elseif (isset($GLOBALS['_CONTENU_LOCAL_']['TRANS'][GEN_I18N_ID_DEFAUT][$cle])&&(!empty($GLOBALS['_CONTENU_LOCAL_']['TRANS'][GEN_I18N_ID_DEFAUT][$cle]))){ |
// La traduction dans la langue par défaut est définie |
return $GLOBALS['_PAPYRUS_']['PAP_LANG'][GEN_I18N_ID_DEFAUT][$cle]; |
return $GLOBALS['_CONTENU_LOCAL_']['TRANS'][GEN_I18N_ID_DEFAUT][$cle]; |
|
} |
|
85,36 → 103,38 |
|
|
/** |
* GREG : définition de la fonction pour charger les fichiers de langue (.ini) |
* Grégoire : |
* |
* Fonction trouverI18N : |
* Si le fichier n'a pas déjà été chargé dans la variable $GLOBALS, |
* on cherche un fichier i18n.ini dans le site courant et la langue courante |
* Enregistre dans les variables $GLOBALS |
* @param string la langue a charger |
* */ |
|
function trouverI18N($langue) { |
//Définir le dossier ou se trouvent les sites |
$dir = PAP_CHEMIN_RACINE."sites/"; |
$dossierSites = opendir($dir); |
$dir = PAP_CHEMIN_RACINE."sites/".$GLOBALS['_GEN_commun']['info_site']->gs_code_alpha; |
|
//Parcourir l'arborescence |
while ($f = readdir($dossierSites)) |
{ |
// 1. essayer d'ouvrir le dossier avec la langue courante |
if (file_exists($dir."/".$langue."/i18n.ini")) { |
|
//Vérifier si le fichier a été chargé |
if (!isset($GLOBALS['_CONTENU_LOCAL_']['LOADED_FILES'][$dir."/".$langue."/i18n.ini"])) { |
|
$ini_array = parse_ini_file($dir."/".$langue."/i18n.ini"); |
|
if (($f != ".")&&($f != "..")&&($f != ".svn")) { |
if (is_dir($dir.$f)) { |
//C'est un dossier, on trouve le fichier de langues. |
if (file_exists($dir.$f."/".$langue."/i18n.ini")) { |
$ini_array = parse_ini_file($dir.$f."/".$langue."/i18n.ini"); |
|
//Le fichier ini a été lu, définir les variables globales |
foreach ($ini_array as $key => $valeur) |
{ |
$GLOBALS['_PAPYRUS_']['PAP_LANG'][$langue][$key] = $valeur; |
} |
} |
} |
//Le fichier ini a été lu, définir les variables globales |
foreach ($ini_array as $key => $valeur) |
{ |
$GLOBALS['_CONTENU_LOCAL_']['TRANS'][$langue][$key] = $valeur; |
} |
|
$GLOBALS['_CONTENU_LOCAL_']['LOADED_FILES'][$dir."/".$langue."/i18n.ini"] = true; |
|
} |
} |
|
} |
// +------------------------------------------------------------------------------------------------------+ |
// | PIED du PROGRAMME | |