Rev 2035 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*** Description :** @package Applette* @subpackage Contenu_Local// Auteur principal :* @author Grégoire <gregoire@tela-botanica.org>// Autres auteurs :* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>* @version $$Id$$* @copyright 1999-2009 Tela Botanica (accueil@tela-botanica.org)*//** Applette : contenu_local** Cherche une traduction au contenu donné en paramètre.* Les traductions doivent être placées dans un fichier i18n.ini dans le répertoire langue du site (ex: sites/mon_site/fr/i18n.ini)* Affiche le contenu dans la locale en cours. Sinon, trouve le contenu de la locale par défaut.* Si aucune traduction n'est présente, affiche le nom de la variable (GEN_I18N_ID_DEFAUT)**/// +------------------------------------------------------------------------------------------------------+// | 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_]+))) -->)';// +------------------------------------------------------------------------------------------------------+// | CORPS du PROGRAMME |// +------------------------------------------------------------------------------------------------------+// +------------------------------------------------------------------------------------------------------+// | LISTE de FONCTIONS |// +------------------------------------------------------------------------------------------------------+/*** Fonction afficherContenuLocal() - retourne la traduction d'une variable donnée** Retourne la traduction d'une variable donnée. Si la traduction n'est pas trouvée dans la* langue en cours, retourne la valeur de la langue par défaut.* Si elle n'est pas définie, retourne le nom de la variable.** @param string nom de la variable a chercher dans les fichiers de configuration ($GLOBALS)*/function afficherContenuLocal($tab_applette_arguments, $_GEN_commun){//Gestion de la valeur par défaut$langue = $GLOBALS['_GEN_commun']['i18n'];if ($langue == '') {$langue = 'en';}trouverI18N($langue);$lang = $GLOBALS['_PAPYRUS_']['page']['langue_site'];$cle = $tab_applette_arguments[2];if (isset($tab_applette_arguments[2])){// Si l'argument a bien été passé, on cherche la traductionif (isset($GLOBALS['_PAPYRUS_']['PAP_LANG'][$lang][$cle])&&(!empty($GLOBALS['_PAPYRUS_']['PAP_LANG'][$lang][$cle]))){// La traduction extiste dans la langue courantereturn $GLOBALS['_PAPYRUS_']['PAP_LANG'][$lang][$cle];}elseif (isset($GLOBALS['_PAPYRUS_']['PAP_LANG'][GEN_I18N_ID_DEFAUT][$cle])&&(!empty($GLOBALS['_PAPYRUS_']['PAP_LANG'][GEN_I18N_ID_DEFAUT][$cle]))){// La traduction dans la langue par défaut est définiereturn $GLOBALS['_PAPYRUS_']['PAP_LANG'][GEN_I18N_ID_DEFAUT][$cle];}}// Si rien n'a été retourné précédemment, on retourne le nom de la clé.return $cle;}/*** GREG : définition de la fonction pour charger les fichiers de langue (.ini)* 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);//Parcourir l'arborescencewhile ($f = readdir($dossierSites)){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 globalesforeach ($ini_array as $key => $valeur){$GLOBALS['_PAPYRUS_']['PAP_LANG'][$langue][$key] = $valeur;}}}}}}// +------------------------------------------------------------------------------------------------------+// | PIED du PROGRAMME |// +------------------------------------------------------------------------------------------------------+/* +--Fin du code ----------------------------------------------------------------------------------------+*/?>