J’ai un problème avec mon spip 4.4.13. J’essaie d’internationaliser un squelette qui s’applique aux articles d’un ensemble de rubriques spécifiques. Ces articles peuvent être en langue française ou anglaise. Dans le squelette j’ai deux chaines de caractères qui nécessitent de changer en fonction de la langue.
J’ai mis dans mes fichiers squelettes/lang/local_fr.php et local_en.php une nouvelle valeur « whatdoyoudo » avec en français « Que faites-vous ? » et en anglais « What will you do? »
Dans mon squelette j’appelle cette chaîne de langue via <p><:whatdoyoudo:></p> situé dans la boucle principale(ARTICLES).
Quand je visite la version française de la page qui utilise ce squelette je vois bien « Que faites-vous ? » qui s’affiche.
Mais quand je visite la version anglaise, je vois aussi « Que faites-vous ? » Comme si la traduction anglaise n’était pas prise en compte…
Même comportement si j’utilise un <multi> dans mon squelette à la place.
Le seul moyen de faire passer le texte en version anglaise est de rajouter un ?lang=en à la fin de mon URL anglaise.
L’article traduit en anglais est bien a) dans un secteur racine avec la bonne langue associée,
b) avec lui-même la bonne langue associée.
Je note aussi que quand j’appelle ma page anglaise directement depuis le mode privé de mon navigateur, Spip me fait une redirection 302 vers la même page suivie de ?lang=fr … je cherche d’où vient cette redirection dans les logs. J’ai les plug-ins « Traduction entre rubriques », « Menu de langues avec liens » et « Langue préférée »…
Alors je fais des essais sur mon localhost… il n’est pas accessible en ligne ! Mais je vais bien arriver à comprendre ce qui se passe il faut que je trouve quel script php avait le pid 12764…
Alors c’est amusant mais je ne trouve plus, dans l’interface d’administration, où régler le niveau de langue. C’est ni dans « langue principale du site » ni dans « multilinguisme ». Normalement on doit pouvoir faire ça d’après l’article ci-dessus :
Configurer l’espace privé
Pour gérer plus facilement le site, on peut choisir dans la configuration du site avec quelle précision s’effectuera le réglage des langues, ce qui permet de masquer l’interface là où elle n’est pas nécessaire et de limiter les risques d’erreurs [1]. SPIP propose trois niveaux d’interface différents pour choisir les langues affectées aux articles (et brèves, etc.) ; par ordre croissant de complexité :
Par secteur (rubrique de premier niveau) : à chaque secteur du site correspond une langue modifiable par les administrateurs, qui concerne toutes ses sous-rubriques ainsi que les articles et les brèves qui y sont publiés ; ce réglage devrait satisfaire les besoins de la plupart des sites multilingues tout en conservant une structure et une interface simples.
Par rubrique : de manière plus fine, avec ce réglage, on peut changer la langue pour chacune des rubriques du site, pas seulement celles de premier niveau.
Par article : la langue peut être modifiée au niveau de chaque article ; ce choix est compatible avec les précédents (on peut par exemple choisir la langue par rubrique mais appliquer des exceptions de-ci de-là à certains articles) et permet toutes les finesses imaginables, mais attention à ne pas produire un site à la structure incompréhensible…
Et il me semble que quand j’ai créé mon site (c’était en Spip 4.1) j’avais accès à cette configuration. Mais maintenant impossible de retrouver ça dans l’interface d’administration ?
Sur mon site actuel la gestion des langues buggue un peu, quand je crée un article en anglais dans mon secteur anglais, souvent la langue est mise par défaut en français (mais pas systématiquement) et je dois la remettre en anglais manuellement ensuite. Si ça se trouve c’est lié…