Hello,
J’ai du rater un épisode mais Langonet ne fonctionne plus en SPIP 5, ou du moins la fonction de recherche d’un item de langue par son raccourci ou par son texte.
En fait, le problème vient du fait que les fichiers de langue de spip ne sont plus des tableaux de globales, ce que les fonctions de chargement des modules de Langonet s’attendent à recevoir.
Est-ce que quelqu’un peut m’indiquer comment on charge un fichier de langue aujourd’hui dans cette version de spip si on utilise plus les globales et les include ?
Pour info le chargement dans Langonet :
function charger_module_langue($module, $langue, $ou_langue) {
$traductions = array();
$fichier_langue = (substr($ou_langue, 0, 3) != '../' ? _DIR_RACINE : '') . $ou_langue . $module . '_' . $langue . '.php';
// Si les traductions correspondant à l'index de langue sont déjà chargées on les sauvegarde pour
// les restaurer en fin de traitement. En effet, si l'index en cours de traitement est
// déjà chargé, on ne peut pas présumer du fichier de langue source car il est possible d'avoir un même
// module dans plusieurs plugins.
$idx_lang = "i18n_" . $module . "_" . $langue;
$traductions_backup = array();
if (isset($GLOBALS[$idx_lang])) {
$traductions_backup = $GLOBALS[$idx_lang];
unset($GLOBALS[$idx_lang]);
}
// On charge le fichier de langue si il existe dans l'arborescence $ou_langue
// Ensuite on le stocke dans un tableau qui sera passé à la fonction de création du fichier de langue
if (file_exists($fichier_langue)) {
// chargement du fichier de langue
$GLOBALS['idx_lang'] = $idx_lang;
include($fichier_langue);
// Sauvegarde
$traductions = $GLOBALS[$idx_lang];
// Suppression des index globaux ajoutés
unset($GLOBALS[$idx_lang]);
unset($GLOBALS['idx_lang']);
}
// On rétablit le module backupé si besoin
if ($traductions_backup) {
$GLOBALS[$idx_lang] = $traductions_backup;
}
return array($traductions, $fichier_langue);
}