La gestion multtilingue de Spip 1.7 ne semble pas prendre en compte
la "traduction de rubriques". Je pense que cela vient du fait suivant:
Pour les articles, une traduction est un article en soit, avec seulement
un tag de langue et un lien de correspondance vers l'article de base.
Faire la même chose avec les rubriques reviendrait à créer des rubriques
vides (juste pour la traduction) et elles n'apparaitraient donc pas (car
pas d'articles dedant). Bref, pas simple à gérer. Ou alors, on fait une
traduction simple des champs (et cést pas une "vrai" rubrique). On verra
avec la version 1.8.
En attendant, je propose une autre idée pour gérer un même site dans
plusieurs langues.
L'idée de base est que l'on a un site et on veux pouvoir présenter LE MEME
SITE (mêmes rubriques, mêmes articles) dans 2 langues (ou plus).
Plutôt que de doubler les rubriques, articles etc... et de gérer ensuite
des correspondances tordues puis des critères d'affichage en fonction de
la langue, je proposerai bien de créer un filtre dans
mes_fonctions.php3 comme suit:
function choixlangue($texte, $langue){
switch ($langue) {
case "fr": $texte = Extraction de tout ce qui
se trouve entre <lang_fr> et </lang_fr>
Si on trouve qqchose, alors break;
sinon, rien (et on continue).
case "en": $texte = Extraction de tout ce qui
se trouve entre <lang_en> et </lang_en>,
Si on trouve qqchose, alors break;
sinon, rien (et on continue).
default : $texte = Extraction de tout ce qui
se trouve entre <lang_languepardefautdusite> et
</lang_languepardefautdusite> et si rien,
retourne ce qui n'est entre aucune balise de
langue
}
}
Dans les squelettes, pour tout affichage de texte, titre, etc... on
applique le filtre choixlangue avec la langue déterminée par l'utilisateur
(on peut aussi utiliser une variable globale de session ou un gateau sec).
Ca fait vraiment une modif minimale dans les squelettes et après c'est
complètement transparent.
En ajout de contenu, il suffit de baliser dans le même article les
passages dans chaque langue par des <lang_fr> ceci est le texte francais
de mon article </lang_fr> <lang_en> and this is the english
part. </lang_en>
Interêt:
1) On a simultanément les textes dans les différentes langues dans
le même article, c'est plus facile pour la traduction/maj etc... en ligne.
2) Le moteur de recherche renvoie un seul article (et pas autant qu'il y a
de langues).
3) On gagne de la place et on est sur de ne pas se planter sur les
associations entre articles de différentes langues.
4) Si on déplace un article, une rubrique, etc... sa traduction suit
automatiquement.
Limitations:
1) Comment gérer la présentation typographique en fonction de la langue
(mais bon, entre francais et anglais par exemple est-ce si différent et
important) ?
2) Les rédacteurs doivent penser à spécifier leurs langues (une balise de
plus à leur faire apprendre).
3) Le moteur de recherche peut sortir un article présentant le mot dans la
mauvaise langue.
F.