SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 249 visiteurs en ce moment

Accueil > Multilinguisme > Structures de sites multilingues > Démo site multilingue avec articles « partagés »

Démo site multilingue avec articles « partagés »

8 mai 2007 – par paolo – 52 commentaires

7 votes

le 8 février 2009 : Le site démo et l’article ont été mis à jour pour SPIP 2.0.x

Pour les pressés : ce site possède un secteur par langue. Il y a, en plus, un secteur « partagé » qui contient des articles destinés à être visibles depuis les menus de toutes les langues du site. Les sous-rubriques thématiques sont reliées avec les sous-rubriques correspondantes des autres langues par des mots-clés. Visitez la démo en ligne et regardez le code source des squelettes.

D’abord un coup d’œil à la démo

La démo, qui n’est pas bien belle visuellement, se trouve ici : http://files.taize.fr/demos/multi2/

L’intérêt de cette démo par rapport à la contrib précédente consiste en la notion d’articles « partagés » par plusieurs langues.

La contrib précédente construit un site qui est, en fait, deux sites en parallèle : un site en français, l’autre en anglais. Les liens de traduction entre les articles constituent des passerelles pour passer d’une langue à l’autre. Mais quand le sélecteur de langue [1] est réglé sur « français », on ne voit que des articles en français, et quand le selecteur est sur « anglais », on ne voit que des articles en anglais.

Pour comparer cela avec la démo présente, allons à la page « Quelques images ». Notez : nous sommes à l’article 9. Maintenant en changeant le sélecteur de langues à « English » on arrive sur la page avec un URL presque identique : nous sommes toujours à l’article 9. L’URL a juste &lang=en en plus. Cela a suffit pour :

  • faire afficher « English » dans le sélecteur de langues ;
  • montrer le menu gauche en anglais ;
  • changer la langue du titre de l’article et de la légende de la première photo.

Pour une galerie de photos il serait fatiguant d’avoir à dupliquer l’article pour chaque langue du site comme il contient très peu de texte. C’est ce que j’appelle un article « partagé ».

Un article partagé est visible depuis le menu de chaque langue. Il peut y avoir divers motifs pour vouloir créer des articles partagés :

  • quand l’article est d’intérêt général et contient plus de documents joints (images, multimédia) que de texte ;
  • quand il est d’intérêt général mais d’un contenu qui change souvent, et on n’a pas les forces de maintenir plusieurs traductions de la page. Voilà un exemple.
  • quand il s’agit d’un article que l’on désire publier tout-de-suite et pour tous ceux qui visitent le site, sans avoir à attendre qu’il soit traduit dans les différentes langues.

Un exemple de ce dernier cas sur le site démo est l’article « Au sujet de ce site ». Cet article paraît dans chaque langue. Les traducteurs polonais et arabes n’ont pas encore traduit l’article, mais une traduction en anglais existe déjà. Dans le menu en anglais l’URL vers ...id_article15&lang=en a disparu pour laisser la place a la traduction ...?article16. Ce sont les boucles du squelette qui détectent automatiquement lorsqu’une traduction existe et ne montre plus l’URL de l’article partagé.

La page d’accueil du site offre le choix entre 4 langues. Par contre, ailleurs dans le site, le sélecteur de langues peut montrer un choix entre moins de langues, voire disparaître complètement, selon les traductions disponibles pour l’article en cours. « Translating SPIP », par exemple, existe seulement en anglais. Nous ne voulons pas en faire un article « partagé » car il a de l’intérêt seulement pour les anglophones. Donc il se trouve dans le menu en anglais et « basta ».

Comment ça marche

Pour fonctionner, les squelettes de ce site exigent une organisation particulière de l’espace privé ; cela veut dire surtout la séparation des langues par secteur.

Pour comprendre le fonctionnement il est conseillé de :

  1. regarder la structure des rubriques dans l’espace privé ; voir aussi les mots-clés, et comment les champs <multi> sont utilisés dans les articles du secteur « _partage ». Il est nécessaire donc d’installer la démo quelque part pour pouvoir regarder l’espace privé (voir « Pour installer le site démo » ci-dessous).
  2. lire les commentaires dans les squelettes [2]. Ils sont nombreux et constituent la partie la plus importante de cette contrib. Lire rubrique.html avant article.html : les mécanismes qui se répètent dans le deuxième squelette ne sont pas commentés une deuxième fois.
  3. remarquer que mes_options.php contient cette ligne :
    if (isset($_GET['lang'])) $forcer_lang = true;. Autrement dit, si l’URL qui appelle un article contient une variable lang, alors $forcer_lang est activée, sinon, par défaut, elle ne l’est pas [3].

Avantages et désavantages

Il y a différentes manières d’utiliser Spip pour gérer un site multilingue. Le système que montre cette démo ne sera pas utile pour tous les sites. Voici une listes des avantages et désavantages pour que vous puissiez décider si cette démo est d’intéret pour votre site [4] :

Désavantages
La navigation (menu) et le sélecteur de langues impliquent une structure assez rigide dans l’espace privé :

  • un secteur par langue, plus le secteur partagé ;
  • les « chapitres » (c’est-à-dire les rubriques juste en dessous des secteurs) devraient être les mêmes dans toutes les langues et être répétés aussi dans le secteur partagé ;
  • il n’est pas possible de faire des sous-rubriques en-dessous de ces chapitres [5] ;
  • les boucles dans les squelettes sont assez compliquées à écrire.

Avantages

  • En publiant un article l’équipe de rédaction a un choix simple : s’agit-il d’un article pour une langue seulement ou est-ce qu’on veut qu’il soit visible depuis les menus de toutes les langues ? Dans le premier cas, le rédacteur place l’article dans le secteur d’une langue, dans le deuxième cas il le met dans le secteur partagé. C’est tout, c’est automatique, les squelettes s’occupent du reste.
  • Dès qu’un traducteur publie une traduction d’un article partagé, dans le menu de la langue en question l’article partagé disparaît au profit de cette nouvelle traduction. Là aussi, les squelettes s’en occupent.

Pensez que dans un site avec beaucoup de lecteurs et beaucoup de rédacteurs, la facilité de trouver un article et d’écrire/traduire un article est le plus important. Il ne faut pas toujours privilégié la simplicité des boucles et se retrouver avec une gestion rédactionelle complexe qui déroutera rédacteurs et visiteurs.

Pour installer le site démo

  1. Installer un SPIP 2.0 (ou 1.9.x) vierge.
  2. Recopier les fichiers contenus dans demomulti2.zip (pour SPIP 2) par-dessus ; prendre l’autre zip pour SPIP 1.9.x.
  3. Sur la page
    .../ecrire/ ?exec=admin_tech
    cliquer sur "restaurer la base" et suivre les instructions pour restaurer le dump ...xml.gz.
  4. Après avoir restauré la base, les codes d’accès à l’espace privé sont :
    • Login : webadmin
    • Mot de passe : demo2009 (pour SPIP 1.9.x : demo2007)
  5. Regardez l’organisation des rubriques et les mots-clés. Cette organisation est exploitée par les boucles des squelettes.

Configuration manuelle (en cas de problème)
Avec les versions « modernes » de SPIP (en tout cas 1.9.2 et 2.0) les étapes suivantes ne sont pas nécessaires. A vérifier en cas de problème. Avant de restaurer la sauvegarde :

  1. Dans l’espace privé, activer l’interface complète.
    aller à .../ecrire/ ?exec=config_lang
    et changer le jeu de caractères du site à
    Alphabet universel (utf-8)
  2. Aller à
    .../ecrire/ ?exec=config_multilang
    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]

Notes

[1Le « sélecteur de langue » dans ces deux démos n’est pas la même chose que #MENU_LANG fourni par Spip. Le sélecteur est bâti avec des boucles. Cela implique plus de travail au départ pour écrire les squelettes, mais donne un contrôle plus fin sur les langues affichées et les URLs qui leur sont associés.

[2Cliquer sur le lien en bas à droite sur chaque page, « accéder au squelette de cette page ». Ensuite afficher la source de la page dans le navigateur pour voir le code de chaque squelette.

[3Cette variable permet de dire à SPIP d’ignorer la langue des boucles et d’utiliser seulement la langue du visiteur passée dans l’url. Le résultat est celui décrit ici.

[4Remarquez que les boucles utilisées ici sont très communes à tout type de gestion du multilinguisme avec SPIP, il reste donc bon de les étudier.

[5C’est en fait possible, voir par exemple les menus de taize.fr, mais les boucles deviennent encore plus compliquées.

Dernière modification de cette page le 9 août 2009

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 10 septembre 2010 à 01:25, par Tomek En réponse à : Démo site multilingue avec articles « partagés »

    Hello,

    Merci pour cet article qui m’a vraiment aidé à faire un site multilingue exactement comme je le souhaitais.
    J’ai cependant un petit problème concernant les feuilles de styles css... En cherchant un peu, j’ai trouvé une seule solution pour le style avec ce modèle multilingue, dans « prive », en modifiant « spip_admin.css »... Mais ça ne fonctionne que sous Safari...

    Quel css faut-il éditer pour modifier le style ???

    Merci beacoup !!!

    Répondre à ce message

  • Le 12 février 2010 à 15:49, par sarah En réponse à : mise à jour spip 2.0.10

    Bonjour,

    Il semblerait que cette démo ne soit pas utilisable avec la version 2.0.10. Une alternative est-elle possible ?

    Merci d’avance

    • Le 12 février 2010 à 16:20, par paolo En réponse à : mise à jour spip 2.0.10

      Il semblerait que cette démo ne soit pas utilisable avec la version 2.0.10

      Ah bon ? Qu’est-ce qui coince ? taize.fr tourne avec ce système (un peu modifié, il est vrai) et cela avec SPIP 2.0.10 très récente.

    Répondre à ce message

  • Le 9 janvier 2010 à 20:35, par jfredd En réponse à : Démo site multilingue avec articles « partagés »

    Bonjour,
    me revoici pour vous annoncer la naissance du site des guitares Loïc Le Pape, basé sur cette contrib (français/anglais). Merci donc à Paolo , son travail m’a grandement facilité la tâche.

    http://www.loiclepapesteelguitars.com

    Répondre à ce message

  • Le 28 octobre 2009 à 11:41, par jfredd En réponse à : Problème page mot

    Bonjour,

    je poste ici car j’ai adopté la structure proposée pour monter un site français/anglais pour un ami luthier et ça marche vraiment bien, sauf... que, pour une raison que je ne m’explique pas, lorsqu’on est sur un article (une guitare) affiché en anglais et qu’on clique sur un des mots-clefs (autres types de guitares), on se retrouve automatiquement sur la page mot avec l’affichage en français. Du coup lorsqu’on choisit un des articles listés sur la page mot on se retrouve obligatoirement en français.

    Je précise que ce sont des articles placés dans la rubrique partagée, peut-être cela a-t-il une incidence ?

    des suggestions ?

    Merci d’avance.

    EDIT : je me réponds et si ça peut aider d’autres personnes tant mieux.

    J’ai fini par remplacer dans mes squelettes toutes les occurrences de #URL_MOT
    par
    #URL_MOT&lang=#ENV{lang}

    Et ça marche. Bon il doit y avoir plus finaud mais l’élégance du code et moi ça a toujours fait deux (voire le code et moi ;-)

    Répondre à ce message

  • Le 10 août 2009 à 12:52, par ? En réponse à : Démo site multilingue avec articles « partagés »

    Salut a tous, ta solution et super pour traduire un site, est-il possible de mettre le lien repondre a cette article en bas a droite de l’article en question ? J’ai essayé mais ca donne en titre la rubrique . :/

    • Le 10 août 2009 à 14:06, par paolo En réponse à : Démo site multilingue avec articles « partagés »

      est-il possible de mettre le lien repondre a cette article en bas a droite de l’article

      Sûrement. Cela n’est pas du tout lié au squelette.

      Je te propose de poser la question sur la liste SPIP ou dans les forums de spip.net. Car je suis trop pris par ailleurs en ce moment, et d’ailleurs je n’ai jamais (encore) utilisé les forums de SPIP sur un site.

    • Le 12 octobre 2009 à 12:11, par ? En réponse à : Démo site multilingue avec articles « partagés »

      Je me repond a moi meme voici donc la solution toute simple si ca peux aider d’autre qui galere a trouver :

      [

      <:repondre_article :>

      ]

      Voili voilou ma petite contrib j’espere que ca vous mettra sur la voie pour d’autre impasse. :)

    Répondre à ce message

  • Le 13 août 2009 à 17:25, par sdnfr En réponse à : Démo site multilingue avec articles « partagés »

    Merci pour cet contrib très intéressante.
    J’essaie de l’adapter pour pouvoir mettre des sous-rubriques dans les chapitres mais je n’y arrive pas !
    Vous est il possible de donner le code pour que les sous rubriques des chapitres apparaissent dans le menu ?

    Répondre à ce message

  • Le 9 août 2009 à 11:01, par ? En réponse à : Démo site multilingue avec articles « partagés »

    Bonjour à tous et merci Paolo pour cette bonne solution multilingue !!

    Est-il possible d’utiliser cette formule, mais à partir d’un menu qui démarrerait au niveau des rubriques (Chapitres) et non des secteurs langues ?

    Je n’arrive pas à paramétrer le plugin Babbibel par exemple. Est-ce quelque chose à concevoir depuis le codage php du menu, ou dans l’écriture des boucles de Spip ?

    J’ai essayé de me tourner vers la solution de Thomas icimais encore sans succès.

    Merci pour l’aide,

    Serge

    Répondre à ce message

  • Le 25 décembre 2008 à 18:52, par madaj En réponse à : Démo site multilingue avec articles « partagés »

    Je viens de mettre un second spip mais cette fois en 1.9.2g d’après les archives... et là ça passe...
    Le fichier dump n’est apparement pas compatible avec la version 2.0.2...

    • Le 8 février 2009 à 16:04, par paolo En réponse à : Démo site multilingue avec articles « partagés »

      Le fichier dump n’est apparement pas compatible avec la version 2.0.2

      Je viens de mettre un fichier zip pour SPIP 2. (En fait je n’avais pas de problème pour restaurer le dump de 1.9 sur un SPIP 2.0.3).

      Un petit changement a été fait dans article.html pour la version SPIP 2, le changement de comportement du filtre parametre_url ayant fait apparaître un bug dans le squelette de la version 1.9.x

    Répondre à ce message

  • Le 25 décembre 2008 à 18:36, par madaj En réponse à : Démo site multilingue avec articles « partagés »

    J’ai installé spip sur un serveur local, j’ai copié les fichiers, par contre j’ai une série d’erreur à la restauration de la base, que faire ?

    SPIP 2.0.2 debug Mon site SPIP

    Erreur(s) dans le squelette

    1 Erreur SQL
    id_type AS id, titre FROM spip_types_documents WHERE extension=’jpg’ AND titre=’JPEG’
    Unknown column ’id_type’ in ’field list’
    AIDE

    2 Erreur SQL
    id_type AS id, titre FROM spip_types_documents WHERE extension=’png’ AND titre=’PNG’
    Unknown column ’id_type’ in ’field list’
    AIDE

    3 Erreur SQL
    id_type AS id, titre FROM spip_types_documents WHERE extension=’gif’ AND titre=’GIF’
    Unknown column ’id_type’ in ’field list’
    AIDE

    4 Erreur SQL
    id_type AS id, titre FROM spip_types_documents WHERE extension=’bmp’ AND titre=’BMP’
    Unknown column ’id_type’ in ’field list’
    AIDE

    5 Erreur SQL
    id_type AS id, titre FROM spip_types_documents WHERE extension=’psd’ AND titre=’Photoshop’
    Unknown column ’id_type’ in ’field list’
    AIDE

    A force de rafraichir... il me restaure bien la base, mais le compte webadmin/demo2007 n’existe pas...

    Répondre à ce message

  • Le 6 novembre 2008 à 09:26, par Monkole En réponse à : Démo site multilingue avec articles « partagés »

    Bonjour,

    j’ai un gros problème. cela fait à peine 2 mois que j’ai découvert spip et j’aimerai faire un site en 4 langues : Français, anglais, espagnol et italien.
    j’ai vu cette contrib et elle est bien. j’aimerai que l’on m’aide car je suis débutant : j’aimerai remplacer l’arabe par italien et le polonais par l’espagnol. quelqu’un peut il m’aider sur la procédure à faire.
    merci beaucoup d’avance pour votre aide.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Métas +

    3 décembre – 14 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

  • Adaptive Images

    15 novembre 2013 – 69 commentaires

    Un plugin pour permettre aux sites responsive d’adapter automatiquement les images de la page à l’écran de consultation. Adaptive Images, que l’on pourrait traduire par Images adaptatives, désigne la pratique qui vise à adapter les taille, (...)

  • Social tags

    8 septembre 2008 – 428 commentaires

    Le plugin Social Tags permet d’ajouter des icônes de partage de liens vers les sites tels que Digg, Facebook, Delicious.... Une fois le plugin installé et activé (voir doc.), le choix des sites se fait via un menu de configuration. Insertion (...)

  • Module de Paiement Stripe

    17 octobre – commentaires

    Stripe est un prestataire de paiement externe https://stripe.com/fr qui propose une API moderne et une interface de paiement extrêmement conviviale et efficace. Ce module permet les paiements à l’acte et les paiement récurrents. Configuration (...)

  • Métas

    8 août 2009 – 50 commentaires

    Ce petit plugin permet l’ajout, depuis l’espace privé, de metatags aux articles et rubriques de SPIP, ainsi que la mise en exergue de mots importants.

Ça spipe par là