Carnet Wiki

UnPeuPlusDeMultilinguisme

Coucou,

je viens d’entrer dans la CVS un nouveau mécanisme de multilinguisme, qui
permet d’en glisser partout où il n’y en a pas à l’heure actuelle, et surtout
où il serait très lourd d’en ajouter à la façon des articles - notamment
dans les fiches auteur ou dans les mots-clés (pour les rubriques, ça se
discute, mais voyez plutôt...).

L’idée est la suivante : lorsqu’un texte quelconque est « nettoyé » pour être
affiché, il est d’abord filtré, partout dans SPIP, par un script qui
recherche tous les « blocs multis », et qui récupère dans chacun de ces blocs
la chaîne correspondant à la langue courante (langue du contexte, dans
l’espace public, langue de l’interface, dans l’espace privé).

Un « bloc multi », c’est simplement un morceau de texte encadré par
<multi>...</multi> ; ce bloc peut contenir des séparateurs de langue sous la
forme [xx]. Le plus simple est de donner des exemples :


Sur une seule ligne (titre d’un mot-clé) :

<multi>[en]Iraq [fr]Irak</multi>

Descriptif d’un mot-clé :

<multi>
[en]
Get Paid to Work Online
_ How People Make Real Money
_ Sign up now and start making money

[fr]
quand on dit non au chef,
_ quand on se met ensemble en grève,
_ ou quand on vole un moment au patron 

</multi>

Plusieurs blocs multi dans un seul texte :

<multi>
[en] The code is:
[fr] Le code est:
</multi>
shazzam!
<multi>
ok?
[en] yes?
[de] ja?
[fr] oui?
</multi>

Si la langue courante n’est pas prévue par le bloc multi, c’est le premier
élément du bloc qui s’affichera. Dans le dernier cas, par exemple, si on
appelle la page en espagnol, ce sera « The code is : shazzam ! ok ? » ; si on
l’appelle en anglais on obtiendra « The code is : shazzam ! yes ? »

Dans l’espace privé, les blocs multis sont signalés par un petit micro
orange qui flotte à côté d’eux. Le « title » de l’image, qui se met en
« info-bulle » sur la plupart des navigateurs, indique les langues dans
lesquelles ce bloc est défini, avec un court extrait du contenu dans chaque
langue.

Enfin, chaque bloc multi « à traduire » est analysé puis passé à une fonction
spécifique, qui pour l’instant est assez idiote : elle se contente de
renvoyer le texte dans la langue demandée, ou la première version rencontrée
si celui-ci n’est pas disponible. C’est à cet endroit-là qu’on peut imaginer
des choses du style consulter un dictionnaire en ligne. Le seul problème
pour tester le concept c’est de trouver un dictionnaire libre, facile
d’accès à partir de php (web service, par exemple).

— Fil


Blocs multi et les titres numérotés

Lorsqu’on utilise les blocs multi pour indiquer le titre d’une page, la numérotation des pages (pour utilisation avec le filtre |supprimer_numero) doit se faire à l’extérieur des balises multi.

Mauvaise utilisation :

<multi>[fr]1. Accueil [en]1. Home</multi>

Bonne utilisation :

1. <multi>[fr]Accueil [en]Home</multi>

- Mise à jour :18 novembre 2007 à 16h21min