Besoin d'aide pour internationalisation menu de rubriques dont les <multi> sont définies

Salut,
Ça fait un bail que je m’étais pas plongé là-dedans alors je vous raconte pas comme j’ai galéré sur cette question. La doc trop succincte, les explications sur Contrib étant toutes des cas particuliers, la page wiki peu compréhensible par moi, je me vois poussé à faire appel à vos science et votre correction. Comme d’hab il y une asso qudrilingue éplorée qui attend derrière, un coup de pouce rapide m’aiderait vraiment.

Le multilinguisme choisi est celui par l’article. Un arbre unique de rubriques contient tous les articles qui vont s’afficher dans leur langue en priorité, puis les articles de m^me rubrique inexistants dans la langue en cours s’afficheront dans leur langue;

Mes rubriques auront toutes des balises pour les titrer dans les 4 langues du site.
J’arrive à appeler des liens vers les traductions des articles et les langues s’affichent pour les fichiers de langue (ex: lundi = lunedi) selon la langue de l’article.

Mais quand je suis par exemple en italien, le menu n’est pas affiché dans cette langue : il n’y a rien d’affiché, juste la div vide. Dn sla langue principale (Fr) le menu s’affiche pourtant Je pense évidement que c’est dans la boucle que je foire.

Mon code est une copie simplifiée de « Menu dépliant tout en spip (sans php ni javascript) » proposé dans cet article: codes présent dans mes squelettes:

dans mon squelette article.html


<BOUCLE_article_menu(ARTICLES){id_article}>
<INCLURE{fond=menu}{id_rubrique}{id_article}{lang}>
</BOUCLE_article_menu>
<BOUCLE_rubrique_menu(RUBRIQUES){id_rubrique}>
<INCLURE{fond=menu}{id_rubrique}{lang}>
</BOUCLE_rubrique_menu>
<INCLURE{fond=menu}{lang}>
<//B_rubrique_menu>
<//B_article_menu>

include « menu.html »

<B_rubriquea>


    <BOUCLE_rubriquea(RUBRIQUES){racine}{par num titre}{id_secteur != 21}{lang}>
  • <a href=« #URL_RUBRIQUE » class=« lien#EXPOSER » [title=« (#DESCRIPTIF|textebrut|entites_html) »]> [(#TITRE|supprimer_numero)]




  • <B_ss_rubriquea>

      <BOUCLE_ss_rubriquea(RUBRIQUES){id_parent}{par num titre}{lang}>
    • <a href=« #URL_RUBRIQUE » class=« lien#EXPOSER » [title=« (#DESCRIPTIF|textebrut|entites_html) »]> [(#TITRE|supprimer_numero)]




    • <BOUCLE_n(boucle_ss_rubriquea)></BOUCLE_n>

      </BOUCLE_ss_rubriquea>

    </B_ss_rubriquea>


    </BOUCLE_rubriquea>

</B_rubriquea>

Alors, pourquoi que ça traduit pas?

Ce que j’ai tenté:

  • forcer_lanue=true dans mesoption.php

  • plein de trucs pour essayer de faire traduire ce menu qui pourtant a des bien écrits puisque l’interface privée est capable de traduire mes titre si on passe une autre langue.
    Je comprends à peu près rien:

  • (au multilinguisme )

  • à comment on fait pour « passer la langue dans l’url » (berk avec la langue en plus! ) comme je l’ai lu souvent;

  • aux explications non pratiques.
    Merci pour votre aide. Un correction de mon code ou des conseils pratiques sur mon cas me dépanneraient vraiment.

Belle nuit,
Liévin

Liévin Chemin wrote:

Salut,
Ça fait un bail que je m'étais pas plongé là-dedans alors je vous
raconte pas comme j'ai galéré sur cette question. La doc trop succincte,
les explications sur Contrib étant toutes des cas particuliers, la page
wiki peu compréhensible par moi, je me vois poussé à faire appel à vos
science et votre correction. Comme d'hab il y une asso qudrilingue
éplorée qui attend derrière, un coup de pouce rapide m'aiderait vraiment.

Le multilinguisme choisi est celui par l'article. Un arbre unique de
rubriques contient tous les articles qui vont s'afficher dans leur
langue en priorité, puis les articles de m^me rubrique inexistants dans
la langue en cours s'afficheront dans leur langue;

Mes rubriques auront toutes des balises <multi> pour les titrer dans les
4 langues du site.
J'arrive à appeler des liens vers les traductions des articles et les
langues s'affichent pour les fichiers de langue (ex: lundi = lunedi)
selon la langue de l'article.

Mais quand je suis par exemple en italien, le menu n'est pas affiché
dans cette langue : il n'y a rien d'affiché, juste la div vide. Dn sla
langue principale (Fr) le menu s'affiche pourtant Je pense évidement que
c'est dans la boucle que je foire.

Mon code est une copie simplifiée de "/Menu dépliant tout en spip (sans
php ni javascript)/" proposé dans cet article:
Menu dépliant tout en spip (sans php ni javascript) - SPIP-Contrib

codes présent dans mes squelettes:

            *dans mon squelette article.html*

            <div id="navmenu">
            <BOUCLE_article_menu(ARTICLES){id_article}>
                   <INCLURE{fond=menu}{id_rubrique}{id_article}{lang}>
                   </BOUCLE_article_menu>
                            <BOUCLE_rubrique_menu(RUBRIQUES){id_rubrique}>
                            <INCLURE{fond=menu}{id_rubrique}{lang}>
                            </BOUCLE_rubrique_menu>
                            <INCLURE{fond=menu}{lang}>
                            <//B_rubrique_menu>
                     <//B_article_menu>
            </div>

            *include "menu.html"*

            <B_rubriquea>
            <ul class="racine">
            <BOUCLE_rubriquea(RUBRIQUES){racine}{par num
            titre}{id_secteur != 21}{lang}>
            <li><a href="#URL_RUBRIQUE" class="lien#EXPOSER"
            [title="(#DESCRIPTIF|textebrut|entites_html)"]>
            [(#TITRE|supprimer_numero)]</a></li>
                <div id="[(#EXPOSER|affiche,cache)]">
                 <!--<B_articleb>
                            <ul class="article">
                    <BOUCLE_articleb(ARTICLES){id_rubrique}{par num
                    titre}>
                            <li><a href="#URL_ARTICLE"
            class="lien#EXPOSER"
            [title="(#DESCRIPTIF|textebrut|entites_html)"]>
            [(#TITRE|supprimer_numero)]</a></li>
                    </BOUCLE_articleb>
                            </ul>
                    </B_articleb> -->
                   
                    <B_ss_rubriquea>
                    <ul class="rubrique">
                    <BOUCLE_ss_rubriquea(RUBRIQUES){id_parent}{par num
            titre}{lang}>
                    <li><a href="#URL_RUBRIQUE" class="lien#EXPOSER"
            [title="(#DESCRIPTIF|textebrut|entites_html)"]>
            [(#TITRE|supprimer_numero)]</a></li>
                        <div id="[(#EXPOSER|affiche,cache)]">
                            <!--<B_articlea>
                            <ul class="article">
                            <BOUCLE_articlea(ARTICLES){id_rubrique}{par
            num titre}>
                            <li><a href="#URL_ARTICLE"
            class="lien#EXPOSER"
            [title="(#DESCRIPTIF|textebrut|entites_html)"]>
            [(#TITRE|supprimer_numero)]</a></li>
                            </BOUCLE_articlea>
                            </ul>
                            </B_articlea> -->
                           
                            <BOUCLE_n(boucle_ss_rubriquea)></BOUCLE_n>
                         </div>
                    </BOUCLE_ss_rubriquea>
                    </ul>
                    </B_ss_rubriquea>
                  </div>
                 
            </BOUCLE_rubriquea>
            </ul>
            </B_rubriquea>

        Alors, pourquoi que ça traduit pas?

Ce que j'ai tenté:*
*

    * forcer_lanue=true dans mesoption.php
    * plein de trucs pour essayer de faire traduire ce menu qui pourtant
      a des <multi> bien écrits puisque l'interface privée est capable
      de traduire mes titre si on passe une autre langue.

Je comprends à peu près rien:

    * (au multilinguisme :cry: )
    * à comment on fait pour "passer la langue dans l'url" (berk avec la
      langue en plus! >:o ) comme je l'ai lu souvent;
    * aux explications non pratiques.

Merci pour votre aide. Un correction de mon code ou des conseils
pratiques sur mon cas me dépanneraient vraiment.

Belle nuit,
Liévin
*
*

Héhé, salut Liévin :slight_smile:

{lang_select=non} dans les boucles RUBRIQUES. Les rubriques ont une langue
par défaut: celle (la principale) du site. Si tu appelle depuis une boucle
articles avec seulement {lang}, ça correspond pas, sauf dans le cas du
français, langue principale de ton site... Donc tu dois mettre
{lang_select=non} sur la boucle RUBRIQUES. La langue du contexte peut alors
être sélectionnée et tes multi s'afficheront.

Par exemple, sur un squelette article, tu appelles le menu avec

<INCLURE{fond=inc-menu-type}{lang=#LANG}{id_rubrique}>

Puis dans le menu tu mets

<BOUCLE_rubencours(RUBRIQUES) {id_rubrique}{lang_select=non}>

En résumé, tu passe {lang=#LANG} dans tes paramètres d'UrL vers les
squelettes de rubriques et tu mets {lang_select=non} sur tes boucles
RUBRIQUES.

Et laisse tomber forcer langue=true dans ce cas-ci, amha.

Bon il est tard... Je peux réessayer demain si tu préfères...

--
Suske