Fichiers de langue et globales en SPIP 5

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);
}

tu as une fonction lire_fichier_langue() qui retourne le tableau d’items de manière unifiée, que le fichier soit dans l’ancien format avec une globale ou dans le nouveau avec un return

Ok, je vais essayer mais ça veut dire que Langonet en spip 5 ça va être du sport ;-).
Et donc pour les plugins qu’on basculera en spip 5 il faudra faire ce changement donc en supprimant les globales ?
Et pour Traduire il faudra aussi qu’il s’adapte pour créer l’un ou l’autre des formats ?

Si mes souvenirs sont bons @marcimat a déjà adapté le code pour ça (mais je n’en retrouve pas la trace).

Alors oui, trad.spip.net le prend en compte : dès que la langue source bascule sur un formalisme, il va recréer les fichiers de langues de traduction dans le format équivalent. Cf #2 - Gérer les fichiers de langue nouvelle génération - trad-lang - SPIP on GIT