if (strpos($ori,':')) { list($modules,$code) = explode(':',$ori,2); $modules = explode('/', $modules); } else { $modules = array('spip', 'ecrire'); $code = $ori; } $text = ''; // parcourir tous les modules jusqu'a ce qu'on trouve foreach ($modules as $module) { $var = "i18n_".$module."_".$lang; if (empty($GLOBALS[$var])) { charger_langue($lang, $module); // surcharge perso -- on cherche (lang/)local_xx.php ... if ($f = chercher_module_lang('local', $lang)) surcharger_langue($f); // ... puis (lang/)local.php if ($f = chercher_module_lang('local')) surcharger_langue($f); } if (isset($GLOBALS[$var][$code])) { $text = $GLOBALS[$var][$code]; break; } } // Retour aux sources si la chaine est absente dans la langue cible ; // on essaie d'abord la langue du site, puis a defaut la langue fr if (!strlen($text) AND $lang !== 'fr') { if ($lang !== $GLOBALS['meta']['langue_site']) $text = inc_traduire_dist($ori, $GLOBALS['meta']['langue_site']); else $text = inc_traduire_dist($ori, 'fr'); } // Supprimer la mention ou if (substr($text,0,1) === '<') $text = str_replace(array('', ''), array(), $text); // Si on n'est pas en utf-8, la chaine peut l'etre... // le cas echeant on la convertit en entites html &#xxx; if ($GLOBALS['meta']['charset'] !== 'utf-8' AND preg_match(',[\x7f-\xff],S', $text)) { include_spip('inc/charsets'); $text = charset2unicode($text,'utf-8'); } $deja_vu[$lang][$ori] = $text; return $text; } ?>