passer la langue dans l'url; un boucle pour la liste de rubriques dans la langue passée...

Toujours lost in translation… avec le multilinguisme!

Et ça fait un bon mois là… j’essaie mais sans succès.
Bien, la situation:

http://europebrusselsinternational.eu/sommaire.php3
Le sommaire me donne ce que je veux

http://europebrusselsinternational.eu/rubrique.php3?id_rubrique=12?lang=nl
Les pages de rubriques spécifiques à chaque langue-secteur idem.
Le problème est p-ê dans l’appel des liens vers les sous-rubriques de chaque secteur. Comment garder la langue dans l’url suivante?

http://europebrusselsinternational.eu/rubrique.php3?id_rubrique=26
Voilà le bazard :-/
J’utilise évidement rubrique.html ici.

Ma boucle de menu:
<BOUCLE_r1(RUBRIQUES){lang}{par titre}{0,6}>

  • <a href=« #URL_RUBRIQUE » [title=« (#DESCRIPTIF|textebrut|entites_html) »]>[(#TITRE|supprimer_numero)]
  • </BOUCLE_r1>

    Ma boucle de contenu:
    <BOUCLE_rubrique(RUBRIQUES){lang}{id_rubrique}>… blablabla …</BOUCLE_rubrique>

    http://europebrusselsinternational.eu/rubrique.php3?id_rubrique=26&lang=nl
    Si je tape manuellement la langue dans lurl, j’ai ce qu’il me faut en matière de contenu. Mais pas de menus. pourquoi?
    Comment garder cette url au travers de mes pages?

    et
    $forcer_lang = « true »;
    est bien en place

    Merci d’avance, je guète vos réponses!

    Liévin

    Après un (long) coup de fil, quelques éléments pour esquisser la résolution du problème...

    Liévin Chemin - Web Age wrote:

    http://europebrusselsinternational.eu/rubrique.php3?id_rubrique=12?lang=nl
    Les pages de rubriques spécifiques à chaque langue-secteur idem.
    Le problème est p-ê dans l'appel des liens vers les sous-rubriques de chaque secteur. Comment garder la langue dans l'url suivante?

    En résumé (les boucles exemple sont pour un squelette de rubriques):

    1. Le site en question est organisé en secteurs linguistiques, ce qui implique que le contexte de chaque squelette peut donner la langue. En conséquence, il est inutile de passer la langue dans l'URL. Par contre, il est nécessaire de placer une boucle englobante qui permette d'activer le contexte en SPIP. C'erst ce contexte qui permettra de sélectionner le secteur et donc la langue...

    <BOUCLE_contexte(RUBRIQUES){id_rubrique}>
    ***ICI tout le squelette***
    </BOUCLE_contexte>

    2. Typiquement, pour ce qui concerne le menu, il faut passer par une boucle du type

    <BOUCLE_secteur_linguistique(RUBRIQUES){id_secteur}{id_parent=0}>
    <ul>
    <BOUCLE_menu(RUBRIQUES){id_parent}><li>#TITRE...</li></BOUCLE_menu>
    </ul>
    </BOUCLE_secteur_linguistique>

    http://europebrusselsinternational.eu/rubrique.php3?id_rubrique=26

    Doit donc être suffisant pour donner le contexte linguistique

    <http://europebrusselsinternational.eu/rubrique.php3?id_rubrique=26&lang=nl&gt;

        Ma boucle de menu: <BOUCLE_r1(RUBRIQUES){lang}{par titre}{0,6}><li><a
        href="#URL_RUBRIQUE"
        [title="(#DESCRIPTIF|textebrut|entites_html)"]>[(#TITRE|supprimer_numero)]</a></li></BOUCLE_r1>

    Est donc à proscrire: si la langue active lors de la visite du site est fr, le paramètre passé en url rend la sélection impossible (deux valeurs distinctes). Il vaut mieux appeler le menu par son contexte spip (voir 2. ci-dessus)

             Ma boucle de contenu:
        <BOUCLE_rubrique(RUBRIQUES){lang}{id_rubrique}>... blablabla
        ...</BOUCLE_rubrique>

    Idem. Le paramètre {lang} est inutile.

    Voilà, voilà.

    --
    Suske

    D'abord, un tout grand merci à Suske.
    L'avantage avec les webdesigners belges, c'est qu'on peut les gratifier à
    gands coups de bière! (Quand tu veux, Jeffke!)
    En effet, ça roule pour mon site maintenant.

    Dans le prolongement, j'avais un p'tit doute: mes balises <multi>. Tu me
    conseilles donc de les effacer et de générer mes chaînes de langue, ce que
    j'ai fait pour le commentaire "vous êtes ici" placé devant ma hiérarchie de
    navigation.

    Ca ne marchait pas du tout, j'ai essayé deux trois trucs en me souvenant de
    ce que tu m'avais dit.

    Et puis voyant que malgré tout mes chaînes s'affichaient tjrs en Français,
    je me suis rappellé le " $forcer_lang = "true"; " posé dans mes_options.php3
    En annullant cette option, visiblement réservée à une méthode plus fine que
    le ML par secteur pour lequel nous avons opté, je l'ai retiré et maintenant
    mes chaînes de langues s'affichent dans la langue du contexte, donc la
    langue du secteur qui contient cet article/rubrique.

    Finalement ce n'était pas si sorcier, mais faut dire que ta magie blanche a
    éclairci les ténèbres polyglottes où j'étais plongé.

    Merci encore.

    Petit rappel de ma suggestion, il faudrait dans la doc officielle, donner un
    tableau logique déterminant la meilleure approche choisir pour un site
    multilingue (selon les cas), et surtout donner des exemples clairs des
    boucles utiles et de la structure de page nécessaire.
    Bref, étoffer un peu pour les spipeurs moins expérimentés comme moi, ou
    encore mieux, créer un/des tutos appliqués aux cas de figures les plus
    classiques.

    Sur ce, bon mois d'Août à tous!
    Liévin

    -----Original Message-----
    From: Suske [mailto:suske@brubel.net]
    Sent: mercredi 2 août 2006 13:08
    To: spip@rezo.net
    Subject: Re: [Spip]passer la langue dans l'url; un boucle pour la liste de
    rubriques dans la langue passée...

    Après un (long) coup de fil, quelques éléments pour esquisser la résolution
    du problème...

    Liévin Chemin - Web Age wrote:

    http://europebrusselsinternational.eu/rubrique.php3?id_rubrique=12?lan
    g=nl Les pages de rubriques spécifiques à chaque langue-secteur idem.
    Le problème est p-ê dans l'appel des liens vers les sous-rubriques de
    chaque secteur. Comment garder la langue dans l'url suivante?

    En résumé (les boucles exemple sont pour un squelette de rubriques):

    1. Le site en question est organisé en secteurs linguistiques, ce qui
    implique que le contexte de chaque squelette peut donner la langue. En
    conséquence, il est inutile de passer la langue dans l'URL. Par contre, il
    est nécessaire de placer une boucle englobante qui permette d'activer le
    contexte en SPIP. C'erst ce contexte qui permettra de sélectionner le
    secteur et donc la langue...

    <BOUCLE_contexte(RUBRIQUES){id_rubrique}>
    ***ICI tout le squelette***
    </BOUCLE_contexte>

    2. Typiquement, pour ce qui concerne le menu, il faut passer par une boucle
    du type

    <BOUCLE_secteur_linguistique(RUBRIQUES){id_secteur}{id_parent=0}>
    <ul>
    <BOUCLE_menu(RUBRIQUES){id_parent}><li>#TITRE...</li></BOUCLE_menu>
    </ul>
    </BOUCLE_secteur_linguistique>

    http://europebrusselsinternational.eu/rubrique.php3?id_rubrique=26

    Doit donc être suffisant pour donner le contexte linguistique

    <http://europebrusselsinternational.eu/rubrique.php3?id_rubrique=26&la
    ng=nl>

        Ma boucle de menu:
        <BOUCLE_r1(RUBRIQUES){lang}{par titre}{0,6}><li><a
        href="#URL_RUBRIQUE"
        
    [title="(#DESCRIPTIF|textebrut|entites_html)"]>[(#TITRE|supprimer_nume
    ro)]</a></li></BOUCLE_r1>

    Est donc à proscrire: si la langue active lors de la visite du site est fr,
    le paramètre passé en url rend la sélection impossible (deux valeurs
    distinctes). Il vaut mieux appeler le menu par son contexte spip (voir 2.
    ci-dessus)

        Ma boucle de contenu:
        <BOUCLE_rubrique(RUBRIQUES){lang}{id_rubrique}>... blablabla
        ...</BOUCLE_rubrique>

    Idem. Le paramètre {lang} est inutile.

    Voilà, voilà.

    --
    Suske