Rev 2036 | 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'] = '\{\{[Cc]ontenu_local'.'(?:\s*'.'(?:'.'(var="[^"]*")|'.')'.')+'.'\s*\}\}';// +------------------------------------------------------------------------------------------------------+// | 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 langue par défaut$langue = $GLOBALS['_GEN_commun']['i18n'];if ($langue == '') {$langue = GEN_I18N_ID_DEFAUT;}trouverI18N($langue);$lang = $GLOBALS['_PAPYRUS_']['page']['langue_site'];//+----------------------------------------------------------------------------------------------------------------+// 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 traductionif (isset($GLOBALS['_CONTENU_LOCAL_']['TRANS'][$lang][$cle])&&(!empty($GLOBALS['_CONTENU_LOCAL_']['TRANS'][$lang][$cle]))){// La traduction extiste dans la langue courantereturn $GLOBALS['_CONTENU_LOCAL_']['TRANS'][$lang][$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éfiniereturn $GLOBALS['_CONTENU_LOCAL_']['TRANS'][GEN_I18N_ID_DEFAUT][$cle];}}// Si rien n'a été retourné précédemment, on retourne le nom de la clé.return $cle;}/*** 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/".$GLOBALS['_GEN_commun']['info_site']->gs_code_alpha;// 1. essayer d'ouvrir le dossier avec la langue couranteif (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");//Le fichier ini a été lu, définir les variables globalesforeach ($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 |// +------------------------------------------------------------------------------------------------------+/* +--Fin du code ----------------------------------------------------------------------------------------+*/?>