From 2fc14fe869fdd86b819230785087d5eb0283b188 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Tue, 24 Jun 2003 20:06:45 +0000 Subject: [PATCH] fichiers de lang modulaires --- ecrire/inc_lang.php3 | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/ecrire/inc_lang.php3 b/ecrire/inc_lang.php3 index c751a7d0f9..5ae9a8e0d4 100644 --- a/ecrire/inc_lang.php3 +++ b/ecrire/inc_lang.php3 @@ -9,8 +9,24 @@ define("_ECRIRE_INC_LANG", "1"); // // Charger un fichier langue // -function charger_langue($lang) { - include_ecrire ("lang/spip_$lang.php3"); +function charger_langue($lang, $module='spip') { + global $dir_ecrire; + + $fichier_lang = "lang/".$module."_".$lang.".php3"; + if (file_exists($dir_ecrire.$fichier_lang)) { + include_ecrire ($fichier_lang); + } else { + // si le fichier de langue du module n'existe pas, on se rabat sur + // le francais, qui *par definition* doit exister, et on copie le + // tableau 'fr' dans la var liee a la langue + include_ecrire ("lang/${module}_fr.php3"); + $GLOBALS["i18n__".$module.'_'.$lang] = $GLOBALS["i18n__".$module.'_'.'fr']; + } + + // surcharge perso + if (file_exists($dir_ecrire.'lang/perso.php3')) { + include_ecrire('lang/perso.php3'); + } } // @@ -65,8 +81,16 @@ function regler_langue_navigateur() { // function traduire_chaine($code, $args) { global $spip_lang; - $var = "i18n_$spip_lang"; - if (!$GLOBALS[$var]) charger_langue($spip_lang); + + if (ereg("^([a-z]+):(.*)$", $code, $regs)) { + $module = $regs[1]; + $code = $regs[2]; + $var = "i18n__".$module."_".$spip_lang; + } else { + $module = 'spip'; + $var = "i18n_".$spip_lang; + } + if (!$GLOBALS[$var]) charger_langue($spip_lang, $module); $text = $GLOBALS[$var][$code]; if (!is_array($args)) return $text; -- GitLab