X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Finc%2Ftraduire.php;fp=www%2Fecrire%2Finc%2Ftraduire.php;h=14ab6ce61d19d30812e1e6b915d9ea6a3f9beb30;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/ecrire/inc/traduire.php b/www/ecrire/inc/traduire.php new file mode 100644 index 0000000..14ab6ce --- /dev/null +++ b/www/ecrire/inc/traduire.php @@ -0,0 +1,146 @@ + + 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; +} +?>