Bonjour et joyeux noël à tous.
Sur mon site perso, j'ai régulièrement des articles avec des blocs de texte dans plusieurs langues. Typiquement un résumé en français et sa version en anglais. La langue par défaut est le français.
Je souhaite donc pouvoir indiquer que tel paragraphe est dans une autre langue.
Une des manières d'indiquer qu'une partie du texte est dans une autre langue consiste à utiliser une balise <multi> avec une seule langue. Exemple de texte avec SPIP 2.1.5.
{{{Intertitre en français}}}
Premier paragraphe du texte en français: essai typo avec deux points!
Second paragraphe du texte en français.
<multi>[en]{{{Title in English}}}
First paragraph in English: test typo!
Second paragraph in English.</multi>
J'obtiens alors le code HTML suivant :
<h3 class="h3 spip">Intertitre en français</h3>
<p>Premier paragraphe du texte en français : essai typo avec deux points !</p>
<p>Second paragraphe du texte en français.</p>
<p><span lang="en"></span></p>
<h3 class="h3 spip">Title in English</h3>
<p>
<span lang="en">
</span>
<span lang="en">First paragraph in English: test typo!
</span>
<span lang="en">
</span>
<span lang="en">Second paragraph in English.</span></p>
Plusieurs remarques :
1/ Le traitement typographique tient bien compte du changement de langue (voir les deux points et le point d'exclamation). Merci SPIP. Génial.
2/ Le changement de langue est indiqué en utilisant des <span> avec un attribut de langue. Cela est réalisé pour chaque ligne : du coup ça produit des lignes vides. Par ailleurs, les balises <p> ne sont pas correctement produites et mes deux paragraphes sont fondus en un seul.
3/ L'intertitre n'est pas traité et n'est donc pas indiqué comme étant en anglais.
Les points 2 et 3 sont-ils à considérer comme des bugs ?
Par contre, la technique avec <multi> fonctionne bien pour signaler juste un mot dans une autre langue. Exemple :
Texte en français avec un mot en <multi>[en]English</multi> pour tester.
produit correctement
<p>Texte en français avec un mot en<span lang="en">English</span> pour tester.</p>
La question est de savoir s'il est possible/envisageable de faire évoluer le traitement des balises <multi> par SPIP pour pouvoir gérer également paragraphes et intertitres (autrement dit ajouter l'attribut langue sur ces balises et ajouter un span que le cas échéant) ?
L'utilisation des blocs <multi> est-elle inappropriée pour signaler un changement de langue dans un texte. Auquel cas, faudrait-il prévoir un autre raccourci ?
Si trop complexe à corriger dans la version actuelle de SPIP, un tel traitement peut-il être réalisé dans textwheel (qui doit intégrer une prochaine version de SPIP si j'ai bien compris) ?
Bien cordialement à tous et encore joyeuses fêtes.
Joseph
