La fonction changer_langue() fournie par SPIP teste si la langue
demandée existe, et ne la change que dans ce cas.

Mais pour ce test, la fonction force la fusion des langues réellement
choisies avec la liste de TOUTES les langues (d'ailleurs je pige pas
trop pourquoi : les langues choisies sont bien incluses dans la liste
complète non ?).
https://core.spip.net/projects/spip/repository/entry/spip/ecrire/inc/lang.php#L38

Mais du coup, impossible de l'utiliser quand on veut uniquement changer
pour une langue réellement utilisée, à moins de soi-même faire des tests
en amont, ce qui n'a pas de sens puisque c'est le but de cette fonction.

Par exemple Real3t a été obligé de dupliquer totalement des fonctions
pour le plugin Autolang :
https://zone.spip.net/trac/spip-zone/changeset/104770/spip-zone/_plugins_/autolang#file0

Que pensez-vous d'ajouter un argument à la fonction afin de choisir sur
quoi on fait le test (toutes les langues par défaut ou seulement celles
choisies, voir aussi une liste donnée explicitement) ?

Un truc du genre :
> function changer_langue($lang, $langues_ok='tout'|'choisies'|array)

À reporter dans utiliser_langue_visiteur() qui l'utilise :
> function utiliser_langue_visiteur($langues_ok='tout'|'choisies'|array)

-- 
RastaPopoulos

_______________________________________________
liste: https://listes.rezo.net/mailman/listinfo/spip-dev
doc: http://www.spip.net/
dev: http://trac.rezo.net/trac/spip/
irc://irc.freenode.net/spip

Répondre à