[SPIP Zone] Une idée de plugin pour le multilinguisme dans SPIP

Pour contourner l’absence de traduction des rubriques :

  • On a pas forcément 1 secteur par langue.
  • On peut baser sa structure multilingue sur les articles et non sur les rubriques etc…
  • Et si on a quand même 1 secteur par langue, on peut avoir un tronc commun (cf Taize)

On peut mettre les [en]My first article [fr] Mon premier article dans le champ titre d’une rubrique.
On ne peut pas, en revanche, pas mettre les fichiers de langues dans le champ titre.

Il y a bien eu une tentative par vhwh (cf contrib ) http://www.spip-contrib.net/Traduire-les-champs-des-rubriques

Mais comme le faisait remarquer Paolo, avec le système des chaînes de langues, les titres (qui se trouvent maintenant dans les fichiers local_xx.php) ne sont pas indexés par le moteur de recherche SPIP, ce qui reste quand même problématique.

Les multi ca va bien quand on a deux ou trois langues.

Mais les trucs comme l’article train de paolo

[en]By train[ar]بالقطار[de]Mit der Bahn[cs]Vlakem[es]En tren[et]Rongiga[fi]Junalla[fr]Horaires de train[hr]Vlakom[hu]Vonattal[id]Dengan kereta[it]Con il treno[ja]電車で[ko]기차편[lt]Traukiniu[lv]Ar vilcienu[nl]Met de trein[no]Med tog[pl]Pociągiem[pt]De comboio[ro]Cu trenul[ru]Поездом[sk]Vlakom do/z Taizé[sl]Z vlakom[sv]Med tåg[zh]乘火車而至

C’est pas forcément très viable pour un rédacteur.

cf http://www.taize.fr/en_article163.html?lang=fr

je reprend donc l’idée émise par Paolo en 2005

Donc je serais plutôt pour avoir une façon plus simple pour entrer un champ « multi » dans un titre. Par ex. une boîte de dialogue qui présente une ligne par langue, étiquetée avec la langue, pour que les rédacteurs ne doivent plus s'occuper des balises multi et [en], [fr], etc.

Ma question donc :

Est-ce que ca intéresse quelqu’un ?

Est-ce qu’on peut faire ca en plugin ? et si oui comment :wink:

Alexandra

Salut,

je forward à Paolo parce que je sais pas si tu es sur la liste spip-zone.

On 10/7/07, Alexandra Guiderdoni <alexandra.guiderdoni@gmail.com> wrote:

On ne peut pas, en revanche, pas mettre les fichiers de langues dans le
champ titre.

Ok, ça c'est pas si compliqué, si tu sais que le champ sera toujours
le nom d'une chaine traduite, tu peux faire:
[(#TITRE|_T)]
ça traduira la chaine dans la langue spip actuelle. évidemment, c'est
toujours compliqué de savoir si c'est celle du cookie, de la boucle ou
de l'url...

pour avoir plus de controle, tu peux refaire ton propre _T pour lui
passer un paramètre de langue:
function traduire_balise($texte, $lang, $args=array()) {

    static $traduire=false ;

     if (!$traduire)
        $traduire = charger_fonction('traduire', 'inc');
    $text = $traduire($texte,$lang);

    if (!$text)
        // pour les chaines non traduites
        $text = str_replace('_', ' ',
             (($n = strpos($texte,':')) === false ? $texte :
                substr($texte, $n+1)));

    while (list($name, $value) = @each($args))
        $text = str_replace ("@$name@", $value, $text);
    return $text;

}

et tu peux alors faire:
[(#TITRE|traduire_balise{#LANG})]
etc...
(filtre à mettre dans un fichier _fonctions valable pour le
squelette... ou pourquoi pas en faire un ptt plugin).

<quote Paolo>
Donc je serais plutôt pour avoir une façon plus simple pour entrer un champ
« multi » dans un titre. Par ex. une boîte de dialogue qui présente une
ligne par langue, étiquetée avec la langue, pour que les rédacteurs ne
doivent plus s'occuper des balises multi et [en], [fr], etc.
</quote>

un truc dans le genre:

d'après l'auteur, ça a du mal avec bcp bcp de langues, mais il
faudrait tester au lieu de réinventer la roue :stuck_out_tongue:

Pierre

Oui mais si j’ai bien compris la traduction d’une chaine de langue qui vient d’un fichier de langue n’est pas indexé par le moteur de recherche SPIP.
J’ai bon, ou avec ta méthode ca pourrait marcher ?

Ok, ça c’est pas si compliqué, si tu sais que le champ sera toujours
le nom d’une chaine traduite, tu peux faire:
[(#TITRE|_T)]
ça traduira la chaine dans la langue spip actuelle. évidemment, c’est
toujours compliqué de savoir si c’est celle du cookie, de la boucle ou
de l’url…

un truc dans le genre:
http://www.spip-contrib.net/Barre-typographique-multilingue,16

Ah je vais regarder ca. Merci Pierre

d’après l’auteur, ça a du mal avec bcp bcp de langues, mais il
faudrait tester au lieu de réinventer la roue :stuck_out_tongue:

Pierre

Alexandra

On 10/7/07, Alexandra Guiderdoni <alexandra.guiderdoni@gmail.com> wrote:

Oui mais si j'ai bien compris la traduction d'une chaine de langue qui vient
d'un fichier de langue n'est pas indexé par le moteur de recherche SPIP.
J'ai bon, ou avec ta méthode ca pourrait marcher ?

A priori, si j'ai bien suivit, dans la 1.9.3, il y a plus d'indexation
en soit, mais juste une requette qui demande les champs "semblables"
(sql like) au mot qu'on cherche. Du coup, ça sera probablement pas
trouvé...

dans les versions précédente (ou avec le plugin indexation pour la
1.9.3), je n'en ai aucune idée, mais à priori, non, ça ne le sera
pas... sauf si on ajoute un extracteur spécial... je suppose que c'est
implèmentable (mais qui s'y colle)...

Pierre

--
Pierre Andrews
Ph.D. Student, The University of York
Ing.info.dipl. EPFL
pierre.andrews@a3.epfl.ch
http://www.cs.york.ac.uk/~pandrews

Alexandra Guiderdoni wrote:

Pour contourner l'absence de traduction des rubriques :

Bonsoir Alexandra,

En mai (http://thread.gmane.org/gmane.comp.web.spip.devel/40971/) j'ai évoqué l'idée d'ajouter un champs id_trad sur la table spip_rubriques. D'après des tests il semble qu'alors le critère {traduction} marche sans rien faire d'autre.

Comme Fil disait, à ce moment-là, il faut "juste" faire l'interface pour régler les liens dans l'espace privé... (et là j'attends l'aide de quelqu'un plus qualifié !)

une façon plus simple pour entrer un champ « multi » dans un titre.

> ...

Est-ce qu'on peut faire ca en plugin ? et si oui comment :wink:

Oui, c'est bien

Arnault y a travaillé récemment.

Cette solution ne touche pas à l'indexation, car le <multi> est toujours dans lie titre. C'est juste un outil pour entrer les textes.

Je lui ai expliqué pourquoi, pour l'instant, le plugin ne mínteŕesse pas.... c'est que j'ai actuellement 31 langues sur le site (avec l'abanais, le hindi, le thailandais et l'ukrainien en préparation). Et le plugin demande qu'en indique à l'avance les langues, aussi bien que j'aurais 30+ onglets sur le titre de chaque article y inclus ceux (la majorité) qui n'ont même pas besoin de champs <multi>. Ce sera vraiment trop lourd.

* Paolo tapuscrivait, le 07/10/2007 20:03:

Alexandra Guiderdoni wrote:

Pour contourner l'absence de traduction des rubriques :

Bonsoir Alexandra,

En mai (http://thread.gmane.org/gmane.comp.web.spip.devel/40971/) j'ai évoqué l'idée d'ajouter un champs id_trad sur la table spip_rubriques. D'après des tests il semble qu'alors le critère {traduction} marche sans rien faire d'autre.

Comme Fil disait, à ce moment-là, il faut "juste" faire l'interface pour régler les liens dans l'espace privé... (et là j'attends l'aide de quelqu'un plus qualifié !)

une façon plus simple pour entrer un champ « multi » dans un titre.

> ...

Est-ce qu'on peut faire ca en plugin ? et si oui comment :wink:

Oui, c'est bien
Barre typographique multilingue - SPIP-Contrib
Arnault y a travaillé récemment.

Cette solution ne touche pas à l'indexation, car le <multi> est toujours dans lie titre. C'est juste un outil pour entrer les textes.

Je lui ai expliqué pourquoi, pour l'instant, le plugin ne mínteŕesse pas.... c'est que j'ai actuellement 31 langues sur le site (avec l'abanais, le hindi, le thailandais et l'ukrainien en préparation). Et le plugin demande qu'en indique à l'avance les langues, aussi bien que j'aurais 30+ onglets sur le titre de chaque article y inclus ceux (la majorité) qui n'ont même pas besoin de champs <multi>. Ce sera vraiment trop lourd.

Qu'est-ce qui empêche ce plugin d'aller chercher dynamiquement la liste des langues explicitement déclarées comme utilisées dans ecrire/?exec=config_multilang
C'est stocké dans spip_meta : langues_multilingue ; une chaine de caractères : code langue séparé par des virgules (ex : fr,de,en).

--
RealET