Un exemple de site multilingue

Squelette et base démo qui montrent une façon de réaliser un site multilingue.

Il y a différentes manières d’utiliser Spip pour gérer un site multilingue.

Cette petite base (un secteur en français et un en anglais, chacun contenant 4 articles dans 2 sous rubriques) montre juste une façon de réaliser un site simple et multilingue.

La page d’accueil offre un choix de langue.
Ensuite on peut passer à la rubrique ou l’article correspondant dans une autre langue à l’aide d’un menu déroulant.

Il s’agit d’une structure qui peut servir de point de départ pour ceux qui essaient d’utiliser Spip en multilingue pour la première fois.

Mode d’emploi

1) Installer un Spip 1.8.2, 1.8 ou 1.7.2 vierge [*].

2) Recopier les fichiers contenus dans SpipMultilingueExemple.zip par-dessus.

3) Dans l’espace privé, activer l’interface complète.

4) Aller à
.../ecrire/config-lang.php3
et changer le jeu de caractères du site à
Alphabet universel (utf-8)

5) Aller à
.../ecrire/config-multilang.php3
et choisir :
Activer le menu de langue sur les articles ? [Non]
Activer le menu de langue sur les rubriques ? [Oui]
et cliquer sur Valider

Ensuite :
... seulement pour les rubriques situées à la racine ? [Oui]
Gérer les liens de traduction ? [Oui]

6) Sur la page
.../ecrire/admin_tech.php3
cliquer sur « restaurer la base » et suivre les instructions.

Attention ! Le fichier à restaurer est :
dump172.xml.gz si vous utilisez Spip 1.7.2
dump18.xml.gz si vous utilisez Spip 1.8
dump182.xml.gz si vous utilisez Spip 1.8.2

7) Après avoir restauré la base les codes d’accès à l’espace privé sont :
Login : admin
Mot de passe : spipdemo

8) Visiter le site et aussi regarder le code des fichiers
accueil.html, rubrique.html, article.html

Notes

[*La structure simple de cette démo marche aussi bien avec Spip 1.7.2 qu’avec la version 1.8.x Mais si vous avez l’intention de construire un site multilingue plus avancé, je conseille l’utilisation de la version 1.8.x.

Discussion

11 discussions

  • 6

    Bravo pour cet exemple il est très parlant !

    Quelqu’un connait il un moyen simple de gérer l’ensemble du site en 2 langues, c’est à dire ne pas avoir à créer 2 rubriques racines fr et eng, puis dédoubler les rubriques pour finalement traduire les articles (comme dans l’exemple fourni par Paolo), mais en ayant cet double structure directement sur tout le site ? (les noms des rubrique étant gérés dans les fichiers de langue...)

    Je ne comprend pas vraiment ce que ça change de cliquer dans « activer le menu langue sur les articles » dans l’interface de gestion du multi-linguisme...

    MOSZKO

    • > Bravo pour cet exemple il est très parlant !

      Ton message m’a surpris ! Je ne m’attendais pas à ce que cet article soit si vite publié :)

      > ne pas avoir à créer 2 rubriques racines
      > fr et eng,

      Certains le font. Cherche un peu dans les archives de la liste spip-user et dans le wiki. Je ne l’ai jamais essayé.

      > ce que ça change de cliquer dans « activer le
      > menu langue sur les articles » dans
      > l’interface de gestion du multi-linguisme...

      Dans la base MySQL chaque article en fait porte sa langue (lang). Dans l’interface admin, on peut choisir soit de pouvoir/devoir désigner la langue à la création de chaque article, soit de faire hériter la langue depuis la rubrique qui contient l’article. (A mon avis c’est encore une raison de séparer les articles dans des secteurs par langues - cela simplifie l’affaire pour les rédacteurs.)

      Paolo

    • je souhaite créer un site multilingue (fr, eng, chin) mais j’aimerai beaucoup éviter une rubrique par langue. En fait, il me semble que trois sites différents seraient aussi bien voir mieux...qu’en pensez-vous ??

      pascal

      http://eco-hameau.infos.st

    • C’est la première fois que j’entends que quelqu’un envisage de faire trois sites pour ... éviter de créer trois rubriques.

      Mais peut-être vaut-il mieux adresser des questions de ce genre plutôt à la liste spip-user ? Car je n’ai de l’expérience que du genre de site expliqué dans la contrib ci-dessus.

    • Bonjour, j’ai été confronté exactement au même problème. Les rédacteurs voulaient 3 rubriques de niveau 0 (FRANCAIS, ANGLAIS, CHINOIS) pour simplifier l’administration. Ce fut du coup un peu plus complexe pour écrire des boucles SPIP cohérentes pour l’affichage des menus. Le résultat est visible ici : http://forum-china-europa.net . N’hésitez pas à me contacter si vous voulez le code des boucles de menu .

    • benolaos

      Je suis allé visiter ton site, et c’est très EXACTEMENT l’exemple même du résultat que je voudrais obtenir avec mon site (qui ne comprendra que 2 langues).

      Peux-tu, comme proposé, m’orienter pour rendre mon site bilingue ?

      En te remerciant par avance

      Benolaos

    • Benolaos,

      Pour faire un site multilingue, il existe plusieurs manières de faire. Aujourd´hui, je ne suis pas sûr de refaire la même chose !
      Avant toute chose, tu peux lire cet article http://www.guiderdoni.net/SPIP-et-le-multilinguisme.html et http://www.spip-contrib.net/Structures-de-site-multilingue

      Pour Chine Europe, nous devions obligatoirement créer des entrées par langues au niveau des rubriques de niveau 0 (a la racine). Ce qui a compliqué sérieusement les choses au niveau de la programmation. Pour un simple site bilingue français anglais, je ne conseille pas cette approche. Je conseille plutôt le plugin suivant : http://www.spip-contrib.net/Plugin-Multilang

      Si tu as vraiment besoin d un site comme le CHine Europe,utilise ma contribution http://www.spip-contrib.net/Balise-RUBRIQUE_PRINCIPALE

      Bon courage

    Répondre à ce message

  • Je voudrai avoir la possibilité d’avoir mon site en 3 langues :
    Français Anglais Japonnais
    Je suis avec le squelette multiflex 3, et normalement il y a la possibilité de mettre une bascule des langues via des boutons en haut à droite... Mais je n’arrive pas à trouver où je dois aller pour ajouter des langues supplémentaires ?
    http://www.spip-contrib.net/IMG/gif/multiflex_1colonne_titre_menu.gif

    Répondre à ce message

  • 2

    Bonjour j aimerai utiliser cet exemple de site multilingue pour la derniere version de spip, est ce realisable ??

    Sinon je compte telecharger la meme version utilise dans lexemple, mais jaimerai en plus disposer de flux rss pour chaque langue et non pas un seul flux, est ce possible ??

    • Oui, spip1.9 importe la plupart des anciens dump récents, même sous une version plus ancienne (testé avec des dump 1.8)

    • Pardon, je trouve ce message avec un peu de retard...

      Je pense que tout cela doit marcher aussi avec SPIP 1.9.x, oui. Peut-être apporter des petits changements de syntaxe aux squelettes.

      Un flux RSS par langue n’est pas un problème. Si tu fais une rubrique par langue, tu peux faire un flux par rubrique comme SPIP fait lui-même (voir la page .../ecrire/ ?exec=synchro)

      Paolo

    Répondre à ce message

  • Merci pour la contribution. J’ai la même problématique de site multilingue mais je n’ai encore pas trouvé de solution qui me convienne parfaitement. Je m’explique, j’aimerais bien :
    -  Avoir un secteur par langue (en fait juste « fr » et « eng ») car cela donne une vision globale du site dans les deux langues (et c’est plus simple à gérer pour les traducteurs) et parce que cela donne la possibilité d’afficher des liens de traduction entre rubriques
    -  Pouvoir associer des brêves au niveau de mes rubriques de premier niveau au sein de chaque langue.

    Comme SPIP ne fait pas la différence entre ces deux secteurs « de langue » et de vrais rubriques, je ne peux associer des brêves qu’à une langue (qui n’est pas une rubrique en tant que tel).

    Quelqu’un a-t-il une solution ?

    Merci d’avance.

    Répondre à ce message

  • 1

    Bonjour Paolo,

    Merci pour la contrib. C’est pour une question d’ordre générale.

    Je veux faire un site corporate FRANCAIS / ANGLAIS avec un catalogue d’articles ( article = texte + 1 ou 2 images JPEG) à partager entre les 2 parties.

    Cette solution avec 2 secteurs FR et ANG comme tu le propose peut’elle être adaptée ou bien faudra t’il oblogatoirement dupliquer le catalogue.

    Merci pour ta réponse.

    • Bonsoir,

      Si je comprends bien vous parlez du système que j’utilise pour taize.fr et que j’ai expliqué un peu ici. J’ai un secteur pour chaque langue plus un secteur dont les articles paraissent dans les menus de toutes les langues.

      Cela nécessite des boucles un peu compliquées. Mais une fois en place cela donne une opération facile.

      Je suis en train de préparer une démo un peu plus évoluée qui utilise ce technique. Peut-être pour présenter à la Féria ce samedi, ou bien peut-être à publier sur spip-contrib. Tu peux le voir ici.

      La mise en page n’est pas jolie.
      Certains articles (no 9, par exemple) sont partagés entre les langues. Je n’ai pas (encore) écrit de doc. Mais les squelettes sont bourrés de commentaires.

      Paolo

    Répondre à ce message

  • 3

    tout d’abord un grand merci à l’auteur de cet article qui m’a permis de comprendre un peu mieux comment fonctionner un site multilingue.
    On doit ademttre que la doc officiel sur les sites multilingues est plutot rare et superficiel..on vous parle des differents types de site multilingue, de la configuration de sites, des nouveaux tags mais rien sur comment les utiliser....
    c’est comprehensible etant donne toutes les variantes possibles de sites multilingues....
    dans mon cas je voulais realiser un site bilingue(fr et ita) symetrique ..

    Cet exemple fonctionne tres bien dans mon cas mais j’ai tjs un petit soucis :
    il y a t il moyen de lier les rubriques de deux langues differents autrement que part les mots clefs...dans cet exmeple nous sommes oblige d’associer le meme mot clef à une rub « fr » et à une rub « ita » pour que la correspondance fonctionne lorsque l’on change de langues...
    vous me direz il faut bien quelques choses en commnun pour lier les deux.
    Mais n’y a t il pas un moyen de lier deux rubriques avec le meme principes que les articles..c-a-d que lorsque vous rediger un article on vous propose de rediger le meme mais dans une langue differente ou vous pouvez inserer le numero d’article correpondant a cet article dans l’autre langue..

    Le faite de lier les rubriques par des mots clefs m’oblige a choisir des mots clefs tordues afin de ne pas les retrouver lors d’une recherche dans le site...
    exemple j’utiliser le mot clefs « racine » pour lier 2 rubriques et lorsque je cherche racine on me renvoie bien eveidemment les deux rubriques ds deux langues differentes..ce qui ne m’interesse pas..en faite c’est le double emploi des mots clefs qui me derange..
    Je pourrais aussi desactiver les mots clefs apres avoir lier deux rubriques pour ne pas retrouver ce mot clef dans la recherche mais c pas terrible parce qu’il faudra toutes les fois les reactiver pour lier à nouveaux deux rubriques...

    j’espere que j’ai ete assez claire,,c pas evident..je bosse sosu spip 1.8.2..

    • Bonjour,

      ...lier les rubriques par des mots clefs m’oblige a choisir des mots clefs tordues afin de ne pas les retrouver lors d’une recherche dans le site...

      Pour pallier à cette difficulté, tu verras que l’exemple utilise un groupe de mots-clés nommé « LiensRubriques ». De cette façon les mots-clés peuvent être groupés pour une utilisation précise. Voir http://www.spip.net/fr_article909.html.

      Les vrais liens de traduction pour les rubriques manquent à Spip. Selon la structure de ton site cet article peut t’intéresser : Trouver les « traductions » des rubriques.

      Paolo

    • merci paolo pour ces infos...
      j’avais bien repere la boucvle (mot=liensrubriques) dans le code. en faite je n’ai pas besoin de traduire les rubrique en utilisant les tags (:accueil :) puisque le site est complemtement symetrique au niveau des rubriques...ce qui me gene ce que quand une personne cherche par exemple (pour ce site) « racine », comme resultat il aura les deux rubriques de la racine puisque le mot clef racine les lie...ca ne m’interrse pas trop qu’une personne faisant une recherche dans une langue a une reponse ds les deux langues (dans le site la reponse sera francais et anglais)..peut etre il y a t il moyen de preciser la recherche par langue (je n’ai pas encore chercher..ca devrait une petie modif dans la boucle ou en passage par parametre de la langue)...
      de toutes manieres je crois que je vais abandonner le systeme de traduction des rubriques (en imposant de laisser les rub sans commentaire ou descritption) et ne laisser que la traduction des articles..bien plus facile a gerer par des utilisateurs neophites.(avec l’option ecrire l’article ds l’autre langue ou saisir le number de l’art correpondant)..

      sinon je serais forcer de trouver des mots clefs tordues pour lier les rubriques sans un peu ennuyant et pas tres propre non..qu’en penses tu ?

      Si je ne trompes pas les mots clefs sont utilise aussi bien pour lier les rubriques que pour paufiner une recherche..non ?

      je ne suis pas un pro de spip, d’ailleurs je me perds un peu des fois avec tous ces raccourcis (critere, parametre...). Je n’ai toujours ppas trouve de doc me decrivant tous les criteres de boucles et tous les parametres possibles, ainsi que la lsite des fonctions du style (supprimer_numero)etc...c’est un peu le chantier ou je ne suis pas capable de trouver ces docs..
      j’aurais preferer avoir tous le code directement (c-a-d pouvoir voir les requetes sql, les while du php (j’imagine qu’il y en avoir pour faire defiler le resutalt) pour les afficher..les passages de parametres au requete ..etc..), au lieu de chercher la doc toutes les fois que je tombes sur un critere de boucle inconnu...

      merci quand meme,

    • j’avais bien repere la boucvle (mot=liensrubriques)

      Non ! c’est : {type=LiensRubriques} ce qui est autre chose !

      Dans ta boucle de recherche, tu exclus tout simplement ce groupe de mots-clés. Pour avoir une aide comment faire cela, pourrais-tu peut-être t’adresser à la liste spip-user ? — Car ce n’est pas directement lié à cette contrib.

      Paolo

    Répondre à ce message

  • 1
    stvblngr

    Ô maître du multilinguisme, ;-)

    Je cherche simplement à savoir si c’est possible de mettre quelque chose dans le fichier .php3 d’un fichier que l’on a créé manuellement ( monfichier.html et monfichier.php3) afin de dire à SPIP dans quelle langue on est.

    Sinon, ça marche assez bien de faire des fichiers séparés ( moi en tous cas, je trouve ça parfois plus intéressant que article-xx.html), et le « changement de langue » est le seul problème.

    merci

    • ... ça marche assez bien de faire des fichiers séparés ( moi en tous cas, je trouve ça parfois plus intéressant que article-xx.html), et le « changement de langue » est le seul problème.

      Je confesse que je ne saisis absolument pas de quoi tu parles. Peut-être suis-je fatigué, ou tu tentes quelque chose que je n’ai jamais tenté... Je te propose de poser ta question sur la liste spip-user ou nous pouvons essayer à quelques uns de t’aider. Si possible, donner l’adresse de ton site et tes squelettes.

      Paolo

    Répondre à ce message

  • 1

    bonjour,

    je travaille en local avec spip 1.8 et à la restauration de la base après création du répertoire dans ./ecrire/data dont le nom m’a été fourni j’ai le message suivant Accès refusé.

    Comment l’installer ?

    Par avance merci

    • Désolé j’ai résolu mon pb. Devant travailler sur le port 81, l’installation ne fonctionnait pas. En repassant sur le port 80 c ok.

      A bientot

    Répondre à ce message

  • 1

    Bon, j’ai finalement fait une compilation de différentes contribs.
    Mais j’ai un souci sous FireFox ou Safari.

    En effet, ma reconnaissance de la langue du navigateur ne fonctionne pas sous ces 2 navigateurs, alors que cela fonctionne dans IE ???!!!
    (Warning : Cannot modify header information - headers already sent by (output started at /home/coterous/www/inc-public.php3(53) : eval()’d code:2) in /home/coterous/www/inc-public.php3(53) : eval()’d code on line 22 )

    Le code de ma page actualites (=sommaire) qui filtre la langue du navigateur est le suivant :

    <?php
    
    include_ecrire ('inc_lang.php3');
     
    if ($HTTP_SERVER_VARS['REQUEST_METHOD'] == 'GET') {
    
        $lg = regler_langue_navigateur();
        if (!$lg) {
            $lg = $GLOBALS['meta']['langue_site'];
        }
    
    } else {
    
        $var_lang = $_POST['def_lang'];
        gerer_menu_langues();
        $lg = $var_lang;
    }
    
    <BOUCLE_secteurs_langue(RUBRIQUES){racine}>
        if ($lg == "#LANG") {
            header("Location: #URL_RUBRIQUE");
            exit;
        };    
    </BOUCLE_secteurs_langue>
    ?>

    cela provient de la contrib de LAurent Laville

    Si quelqu’un a une idée ? je suis preneur.
    Mon site : www.cote-roussillon.com

    • je me réponds à moi-même : en fait, il y avait un souci d’interprétation de FireFox dans la page index.php :

      Il faut simplement supprimer la dernière ligne vide de vos codes php qui pose problème à FireFox !

    Répondre à ce message

  • 1

    Bravo pour cet contib que je vais essayer de mettre en place sur mon site.

    Néanmoins,une question : Est-il vraiment nécessaire de modifier le Jeu de caractères du site pour un site exclusivement en français, espagnol, anglais...? Car cela nécessite de reprendre intégralement tous les contenus déja saisis : certains caractères ne supportent pas le changement (le ç de français par exemple)

    Merci de ta réponse justifiant le changement de jeu de caractère

    • L’ISO-8859-1 doit suffire pour toi, je pense. La base que j’ai mise à disposition est en UTF-8 et c’est seulement pour cela qu’il faut configurer le programme à UTF-8. Bonne chance !

      Paolo

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom