Ca marche ! Je vais essayer.
Sur mon site j’ai trois secteurs :
- un secteur « Accueil » pour la version française (défini sur langue fr)
- en miroir, un secteur « Root » pour la version anglaise (défini sur langue en)
- un nouveau secteur « Aventure » pour mon nouveau bricolage (défini sur langue fr)
Les deux premiers secteurs sont 100% des miroirs, et j’utilise les paramètres suivants dans Multilinguisme :
- Rubriques:
- activer le menu de langues : OUI
- seulement pour les rubriques situées à la racine ? : OUI
- Rubriques : gérer les liens de traduction : OUI
- Articles :
- activer le menu de langues : NON
- gérer les liens de traduction : OUI
- Gestion des langues : français [fr] et English [en].
J’utilise aussi les plug-ins suivants :
- Langue préférée (pas de config)
- Menu de langues avec liens :
- Masquer la langue courante : OUI
- Afficher la langue principale du site en premier : OUI
- Lorsqu’aucune traduction n’est trouvée, rediriger vers l’accueil de la langue choisie
- Traduction entre rubriques (pas de config)
Dans mes squelettes personnalisés, j’ai un fichier sommaire.html qui contient l’unique ligne suivante :
#LANGUE_PREFEREE_SECTEUR_REDIRECTION
Et sinon c’est les squelettes de base Spip que j’ai modifiés avec un coup de CSS, rien de bien méchant.
Maintenant pour Aventure, disons que je veux faire un labyrinthe (je pense que c’est la meilleure façon de décrire mon idée). Ce sont des pages qui pointent vers d’autres pages qui pointent vers d’autres pages etc. Chaque page est représentée par un article, et les liens entre les articles sont manuellement saisis en fin de chaque article. Or, quand on crée un lien Spip, on pointe vers un numéro d’article (ex. [->art42]).
Admettons que j’utilise le mode « une langue / un secteur » pour les articles traduits, j’aurais à présent 2 numéros d’article, un pour la version française et un pour la version anglaise. Par conséquent, je devrais recréer mes liens sur chaque traduction, en essayant de les retrouver dans l’admin (en étant bien organisé je pourrais me dire que le numéro de l’article traduit est toujours égal au numéro de l’article original +1, c’est vrai).
Pour limiter le risque de me planter lors de l’ajout de nouveaux contenus, il me semblait judicieux de ne pas utiliser le mode « miroir » mais d’avoir un unique article avec un contenu bilingue via balise , suivi de la liste des liens vers les autres articles d’intérêt.
Donc en quelque sorte, le secteur « Aventure » est bilingue français/anglais et chaque article contenu dans ce secteur est lui-même bilingue.
Je me suis aperçu qu’en passant en paramètre d’URL ?lang=xx , j’arrivais à faire afficher non seulement l’article dans la langue française ou anglaise sans autre modification à apporter à mon squelette, mais aussi les titres des liens dans la langue demandée, donc j’était super content. Hélas, comme la langue des articles est officiellement en français, l’URL de chaque lien renvoie vers la version française par défaut si je ne transmets pas ?lang=xx à chacun des liens sortants. D’où la bidouille avec le regexp…