Site multilingue facile

Site multilingue facile permet de mettre en place facilement un site multilingue avec une langue par secteur.

Introduction

Même si le multilinguisme est nativement intégré dans spip, réaliser un site multilingue n’est pas toujours évident. Ce plugin a pour objectif de faciliter cette tâche en permettant de mettre en place en quelques clics un site multilingue avec une langue par secteur. [1]

Principe

Le plugin rassemble plusieurs plugins déjà existants et apporte quelques modifications aux squelettes.

Installation

Le plugin s’installe comme n’importe quel plugin.

Il nécessite toutefois les plugins suivants :

Sous Spip >= 3 l’installation de ces plugins requis se fait automatiquement en installant le présent plugin.

Sous Spip 2 ou 2.1 il est recommandé d’installer auparavant le plugin Step pour installer « Site multilingue facile » et de forcer ainsi l’installation automatique de tous les plugins nécessaires.

Le plugin modifie également quelques squelettes (sommaire.html, rubrique.html et article.html) et quelques noisettes.

Une fois installés les plugins nécessaires, il vous suffit de déterminer les langues du site dans « Configuration »->« Mulilinguisme »->« Gestion des langues » et voilà votre site est multilingue ; vous pouvez maintenant commencer à rédiger vos contenus.

Squelettes

Le plugin surcharge les squelettes sommaire.html, article.html et rubrique.html afin de les adapter à la structure « une langue par secteur »[1].

Évidemment vous pouvez les surcharger à votre tour en copiant les fichier d’origine depuis le dossier squelettes-dist dans votre dossier squelettes, mais vous perdriez les adaptations spécifiques à la structure « langue par secteur »[1]. Vous pouvez également réutiliser les adaptations proposé par ce plugin.

Modifications des squelettes proposés par le plugin

Si vous voulez maintenir la redirection automatique vers le bon secteur de langue [1], veuillez ne pas surcharger le fichier sommaire.html, car il contient la balise #LANGUE_PREFEREE_SECTEUR_REDIRECTION du Plugin « Langue préférée par l’internaute » provoquant la redirection vers le secteur de la bonne langue.

Concernant les squelettes article.html et rubrique.html, si vous souhaitez les modifier, copiez les fichier correspondant à votre version dans votre dossier squelettes, puis renommez-le correctement :

Pour la version spip 2 et 2.1 copiez les fichiers « rubrique_spip2.html » et « article_spip2.html » dans votre dossier squelettes, puis renommez les en leur enlevant « _spip2 ».

Pour la version spip 3 et plus procédez de la même manière en prenant les fichiers contenant « _spip3 ».

Le logo
Ce qui suit est valable pour les versions de Spip inférieurs à 3.2. [2]

Les Balises #LOGO_objet comme par exemple #LOGO_ARTICLE permettent maintenant de chercher le logo de l’objet d’origine si l’objet traduit ne dispose pas de logo. Donc si l’article 2, traduction de l’article 1 n’ait pas de logo attaché, la Balise #LOGO_ARTICLE affichera le logo de l’article 1.

Cette fonctionnalité peut-être désactivé dans le panneau de configuration du plugin.

Le menu de langue

vous pouvez utiliser la noisette
<INCLURE{fond=inclure/menu_langues,env}/>
qui est inclue d’office si vous utilisez ce plugin dans Spip3 et +.

Pour Spip2 et 2.1 vous devriez copier le fichier inc-entete.html dans votre dossier squelettes et remplacer
#MENU_LANG par <INCLURE{fond=inclure/menu_langues,env}/>

Le menu de navigation

Si vous utilisez les squelettes par défaut ou ceux de Zspip, ce plugin inclut directement un menu de rubriques adapté à la structure langue par secteur [1].

Sinon vous pouvez insérer la noisette <INCLURE{fond=inclure/nav,env}/> à l’endroit ou vous voulez faire apparaitre le menu de navigation

Le plugin est compatible avec Zspip

Notes

[1Langue par secteur signifie que pour chaque langue, une rubrique est crée à la racine du site (rubrique secteur). Les rubriques d’une même langue seront alors des sous-rubriques de la rubrique secteur correspondante à la langue.

[2A partir de Spip 3.2 le logo original est ajouté automatiquement à la traduction, donc cette fonctionnalité n’est plus d’utilité.

Discussion

27 discussions

  • Avec SPIP 4.0 et site multilingue facile v3.0.0, lorsqu’un article traduit n’a pas de logo, le plugin ne va pas/plus chercher le logo de l’article de référence avec #LOGO_ARTICLE. Pareil pour les rubriques.

    Répondre à ce message

  • 1

    SPIP is an excellent engine, but if they do not implement multilingualism, how long has it become a standard of usability - article - tab of languages - transition to a translated article (how it has long been implemented everywhere - on the same WordPress). Or is it impossible in principle ? Thanks if someone answers.

    • Hi Limbo,
      I don’t know why you think that there I no multilingualism in spip when it is natively implemented for much longer than in WP.

      Present plugin only helps you setup a multilingual website using mainly native spip features and some plugins that are tweaking spips multilingual features.

      Can you explain more precisely what you think is lacking in spips multilingual approach ?
      Rainer

    Répondre à ce message

  • 6

    Bonjour, la traduction d’article et de rubrique fonctionne comme espéré mais lors de la création d’une traduction d’un article le logo de l’article original disparaît, il faut alors le rée-uploader..
    Une idée d’où peux venir le problème ?
    Merci.

    SPIP 3.2.1 - tout les plugin à jour.

    • Je n’ai pas encore rencontré ce phénomène. Si tu désactive tous le plugins non nécessaires, le problème persiste ?

    • Je viens de voir le problème. C’est la détection du logo de traduction qui cause le problème. Apparemment, et en tout cas en 3.2.1, quand on traduit un article, son logo est automatiquement ajouté à sa traduction.

      Je vais analyser quels versions de spip ont adopté ce fonctionnent, en attendant il te suffit de désactiver dans la config l’inclusion automatique du logo d’origine.

      Merci pour m’avoir communique ce bug.

    • Bonjour, en effet en désactivant l’option dans la config ca fonctionne et le logo d’origine est bien ajouté à la traduction. Merci.

    • C’est corrigé dans la version 1.0.12 (111641)

    • A noter tout de même que cette mise à jour résout le problème pour les nouveaux (et futurs) articles/rubriques mais n’affiche plus les logos pour les existants, qui étaient correctement affichés jusqu’ici.

    Répondre à ce message

  • 4
    dominique Robin

    bonjour, je teste le plugin avec 3 langues. Au niveau de la rubrique c’est bon mais au niveau de l’article je n’arrive pas à sélectionner une nouvelle langue que je dois modifier directement dans la table. Mon plus gros problème est que les articles traduits apparaissent dans le menu sur l’interface publique. J’ai donc 4 liens vers les articles traduits. Par contre j’affiche correctement l’article traduit en anglais et en français à l’aide la liste des langues.
    Mon site teste est : http://preuilly.preuillysurclaise.fr/?foret-de-tours-preuilly-detente&lang=fr
    J’ai peut être pas tout compris au niveau du paramétrage des différents plugins utilisés. Merci de votre aide.

    • Bonjour

      de l’article je n’arrive pas à sélectionner une nouvelle langue que je dois modifier directement dans la table.

      Je ne comprends pas. Pourqoui changer directement dans la table ? Ou est-ce que tu n’arrives pas à sélectionner une nouvelle langue ? Screenshot ?

      J’ai donc 4 liens vers les articles traduits.

      Peux-tu également mettre un screenshot ?

      Rainer

    • dominique Robin

      bonjour, suite à ton message j’ai compris pourquoi j’avais plusieurs articles. Tout simplement du fait que je ne rattachais pas l’article traduit en anglais à la rubrique traduite en anglais. Si je n’arrivais pas à sélectionner une nouvelle langue c’est que je voulais modifier la langue après avoir créé un nouvelle traduction. Maintenant je crois avoir compris et cela fonctionne sur le site test. Fort de mon succès j’ai créé des traductions sur le site principal preuillysurclaise.fr et là j’ai un nouveau problème car avec le même paramétrage des plugins ma traduction est bien liée à la rubrique anglaise mais j’ai deux boutons qui s’affichent au lieu de la liste déroulante du choix de la langue. Pour le site principal j’utilise le squelette soyezcreateurs sur le test le squelette spip de base 3.11. Je vais tenter de trouver mon erreur Merci de ton aide si tu as le temps de m’aiguiller

    • Bonjour Dominique

      Les squelettes de base de spip proposent un menu langue spécifique pour les articles dans le corps de l’article et un pour les autres page en haut de la page. Le présent plugin les fusionne.

      Comme tu utilise un autre squelette, j’imgine que le menu traduction article réapparait, il suffit de l’enlever dans le squelette article.

      Rainer

    • dominique Robin

      bonjour et merci, je vais suivre tes conseils car en effet il semble que les différents plugins installés se contraries.

    Répondre à ce message

  • Bonjour Rainer,

    Désolée pour ma réponse tardive mais j’ai un problème annexe qui m’a empêché de travailler sur le site (le disque dure du serveur est en train de lâcher... :-/ )
    Je réinstallerait tout la semaine prochaine et repartirai de 0.

    Merci pour tes réponses, je reviendrai t’embêter, où je l’espère te donner de bonnes nouvelles :D, dès que possible :)

    Répondre à ce message

  • 2

    Merci pour ta réponse Rainer,

    j’avais déjà essayé avec le $GLOBALS mais ça ne donnait rien (dans /config/mes_options.php)

    et concernant l’astuce, j’ai copié-collé le code dans mes_options.php et là j’ai une page blanche x-/ si je mets ?/lang=en j’ai toutes ma page en en mais le retour en fr laisse page blanche...

    Je n’ai auxune idée :’(

    merci pour ton aide.

    Répondre à ce message

  • 1

    Bonjour,

    Je n’ai pas utilisé les secteurs par langue (en mettant en dure / ?lang=en les noisettes se traduisaient tout de même ainsi que les articles).
    J’ai fais un test en créant les secteurs par lange (dossier racine en et fr) contenant les ss-rubriques et articles traduits et j’ai exactement le même problème.

    le site de test peut-être visible ici :
    test.sfv.leotxando.net
    htpasswd : id : spip
    mdp : SpiP0u

    Merci pour ton aide !

    • Bonjour,

      ce que je vois tu as du écraser le fichier sommaire.html, qui normalement renvoie vers la rubrique du secteur correspondant à la langue par défaut, ou choisit par le visiteur. le sommaire n’ayant pas de langue il faut lui l’indiquer via la variable lang.

      Tu pourrais mettre

       $GLOBALS['forcer_lang'] = true;

      dans ton fichier mes_options mais cela peut avoir dés effets non désires car no seulement il ajoute automatiquement la variable lang à l’url mais

      elle indique en même temps que les chaines de langue de l’interface s’affichent dans la langue du visiteur, et non dans la langue des articles ou rubriques.

      Extraits de http://programmer.spip.net/Forcer-la-langue-selon-le-visiteur

      dans ce même page sous « Autre utilisation du cookie » tu trouvera une astuce qui t’évitera d’utiliser le

       $GLOBALS['forcer_lang'] = true;

      Rainer

    Répondre à ce message

  • 1

    Bonjour,
    bravo pour ce plugin qui simplifie grandement les choses !

    J’ai un soucis au niveau du menu_lang : ce dernier me force l’affichage en français systématiquement, malgré le fait que j’ai mis mon navigateur en anglais.
    Par contre, si je mets / ?lang=en j’ai bien l’affichage du menu_lang qui me notifie que je suis en anglais, quand je clique sur français je reviens en fr mais l’inverse ne s’effectue pas :/

    comment faire le basculement de langue ? je n’arrive pas à me « déboguer » :D

    Merci !
    Je suis sous spip 3.1.0 avec multilingue 1.0.6 stable.

    Répondre à ce message

  • 1

    Bonjour à tous et merci aux dev !

    Depuis le passage à SPIP 3.1, j’ai un pb...
    Impossible de passer d’une langue à l’autre par le menu

    Mon site est : http://www.davduf.net
    Le lien qui est donné, par ex, pour passer à l ;’anglais est : http://www.davduf.net/spip.php?action=converser&hash=61ce3bd35953067339c63f1526d178297e568647&redirect=.%2F

    J’ignore complètement à quoi il se rapporte...

    Merci mille fois !

    Répondre à ce message

  • 5

    ce plugin est super mais il me fait planter le moteur de recherche en partie privée du site il me retourne une erreur SQL 1064

    le probleme semble proveni de :
    SELECT id_trad FROM spip_articles WHERE id_article=

    • Je ne reproduis pas ce problème. Quelle version de spip, du plugin. Quelle moteur de recherche celui dans la barre coloré ?

      As-tu fais des essais en désinstallant tous les autres plugins non nécessaires ?

    • dans multilingue_fonctions.php, en remplaçant :
      AND $id_trad=sql_getfetsel('id_trad',$table,$_id_objet.'='.$id)
      par :
      AND $id_trad=sql_getfetsel('id_trad',$table,$_id_objet.'='.intval($id))
      cette erreur a disparue.

    • Bonjour et merci pour ce d´pistage,

      C’est bizarre que cette erreur apparaisse, vue que $id ne devrait jamais être vide, pourrais-tu me donner le contexte de cette erreur. Quelle version spip avec quelles plugins (version php).

      Merci

      Rainer

    • Bonjour Rainer,

      Après enquête, l’erreur vient d’une utilisation certainement abusive de ma part de la balise #LOGO_ARTICLE_RUBRIQUE pour afficher de manière générique logo de l’article ou de la rubrique dans un entête de page.

      Sur la page rubrique, le logo de la rubrique est bien trouvé mais l’erreur apparaît.. Il y a peut être alors, dans l’environnement de cette page, un id_rubrique mais pas de id_article.

      Avec la modification, le logo est toujours bien affiché mais l’erreur disparaît. Ce n’est certainement pas une solution très propre mais peut être qu’elle servira malgré tout à d’autres..

      Seule la fonction « traduction de logo » du plugin est utilisée.
      Merci pour ce code très utile ! :)

      victor

    • Bonjour Victor,

      Merci pour tes retours. J’ai actualisé le code avec ta suggestion.

    Répondre à ce message

  • 2

    Bonjour, j’aimerais mettre le menu_langue en liste déroulante.

    J’ai fait des modifications avec les select options... dans le inclure/menu_langues.html mais aucun changement.

    Que devrais-je faire pour afficher une liste déroulante ?

    Merci

    • Apparemment mon deuxième message ne c’est pas envoyé.. J’ai trouver le fichier menu_langues_select.html donc pour la liste déroulante c’est bon, mais petite question.

      Comment choisir le texte correspondant ? Car je préférerais juste EN et FR.. Surtout qu’il me met English et français, sans maj.. ça fait moyen ^^

      Merci

    • Bonjour,

      dans « formulaires/inc-options-langues_multi.html » il faut remplacer
      [(#LANG|traduire_nom_langue)] par #LANG

      Rainer

    Répondre à ce message

  • 2

    Bonjour et merci pour ce plugin formidable.
    Auparavant, déjà utilisé avec succés en SPIP3, je me retrouve à l’utiliser avec ennuis sur un SPIP2.1 à jour…

    En effet au niveau du menu de langues, le choix proposé dans les autres langues n’intègrent pas dans l’url les autres rubriques mais au contraire indique tout le temps : redirect=RUBRIQUEENCOURS

    En effet ça indique en redirect que la rubrique en cours, mais non l’url appartenant aux langues.
    Du coup ça ne fais rien (à part si je rajoute dans le couteau suisse forcer langue, et là ça me change au moins le menu du site)

    Je ne sais pas si j’ai été assez clair… Vous me direz ;) Merci !

    • Bonjour,

      est-ce que vous avez bien un structure avec secteur par langue et chaque rubrique est traduite ?

      Pourriez vous me copier le lien que produit le menu ?

      Cordialement

      Rainer

    • Avec beaucoup de retard, merci j’avais fait une erreur bête…

    Répondre à ce message

  • 4
    Clément

    Bonjour,

    Je souhaite traduire un site sous spip et j’ai quelques problèmes ! J’ai téléchargé ce plugin et inclus la barre qui permet de choisir la langue ... puis j’ai traduit un article et une rubrique, mais quand je vais dans cette rubrique en version FR et que je clique sur la traduction, ça m’affiche seulement « lang=nl » dans l’url, mais la traduction n’apparait pas ! J’ai loupé quelque chose ? :)

    Merci beaucoup !

    • Est-ce que vous avez créé un site avec une langue par secteur ? Pourriez vouz mettre le lien de traduction ?

    • Clément

      Bonjour,

      Une langue par secteur ? Je ne sais même pas ce que c’est :/
      Voilà le lien : http://www.parapente-puy-mary.com/
      Le 3e

      du menu (que j’ai caché en css) est la traduction de http://www.parapente-puy-mary.com/-inscriptions-.html
      Mais quand on clique dans la barre de langue (que j’ai aussi cachée, elle est en bas du header, c’est la classe « traductions »), l’article reste en Français

      Merci pour votre réponse, en tout cas !

    • Bonjour,

      Pour la langue par secteur regardez ici.

      Il me semble que vous avez surchargez les squelettes rubriques, articles et sommaires. Donc le bon fonctionnement du menu ne peut pas être garantie. Veuillez lire ci-haut sous squelettes par rapport à ce sujet.

      En surchargeant le squelette sommaire.html, la redirection automatique vers le bon secteur de langue est désactivé. Pour les articles et rubriques : id_article et id_rubrique ne sont plus passé à la noisette inclure/menu_langues et le menu ne peut donc plus fonctionner correctement.

      Assurez que les variables nécessaires sont bien passées à la noisette.

      Cordialement
      Rainer

      Cordialement
      Rainer

    • le bon lien pour les secteurs par langue

    Répondre à ce message

  • 1
    HIEN Christian

    Bonjour et merci pour ce plugin formidable.
    J’ai installé le plugin et les plugins associés. qunad j’insere la noisette , mon menu de langue ne s’affiche pas !
    Quand je le remplace par #MENU_LANG il m’affiche seulement la langue en cours ! SVP aidez moi

    • Bonjour,

      est-ce que vous avez activez les langues de votre site sous : Configuration »->« Mulilinguisme »->« Gestion des langues ?

      Cordialement
      Rainer

    Répondre à ce message

  • 14

    Bonjour,
    Je souhaite réaliser un site multilingue.
    le site est actuellement en ligne en version statique : http://hydrofluidtechnologies.com/
    Je le passe en format dynamique, j’ai donc installé les différents plugins multilingue.
    J’ai créé une rubrique fr et une en, dans lesquelles on retrouve les rubriques et articles.
    Après avoir lu les différentes questions/reponses apportées sur le site, je suis un peu perdue !
    je ne sais pas où positionner mes boucles, comment utiliser les plugins, Quelqu’un peut m’aider à y voir plus clair ?
    Merci d’avance

    • Bonjour,
      pour la prise en main des boucles, squelettes voici la doc officiel

      Rainer

    • Bonjour,
      merci pour le lien.
      j’avais déjà réalisé le squelette de la version française. pas de problèmes
      je voudrais savoir si il faut mettre les boucles à chaque article ou si je dois refaire tout un squelette [en] ou bien si les boucles suffisent à appeler l’article ou la rubrique qui convient ?

    • c’est bon j’ai trouvé, ça fonctionne.
      par contre j’aimerais savoir comment faire pour que la traduction se fasse pour la page sur laquelle je suis , sans me faire revenir a l’accueil à chaque fois

    • tu veux dire que le menu de langue te renvoie chaque fois à l’accueil ? Quel menus utilise tu ? Essaie avec

    • je voulais dire <INCLURE{fond=inclure/menu_langues,env}></INCLURE>

    • sophie56

      j’ai mis ça :

      a href=« #URL_SITE_SPIP/ ?lang=fr »
      #

      a href=« #URL_SITE_SPIP/ ?lang=en »
      #

      mais j’imagine que c’est normal du coup que ça me fasse ça. j’ai pas utilisé d’inclure pour le menu langue non....

    • oui, tes liens pointent vers la page principale, si tu utilise l’inclure mentionné il te créera un menu (liens ou dropdown selon choix) pour toutes les pages du site (y compris les articles) et créera des cookies langues utilisé pour la détection de la langue du navigateur

    • sophie56

      ok je vais essayé ça. merci !

    • sophie56

      Génial, ça fonctionne, merci encore !

    • sophie56

      Par contre, une dernière question....
      je voudrais remplacer le nom de la langue par les drapeaux correspondant.
      comment faire ?
      j’ai essayé en ajoutant mon deavant (#LANG
      mais du coup j’avais 2 fois le mm drapeau...

    • ou via css en ajotant une amga background ou en copiant l’inclure inclure/menu_langues depuis le plugin dans ton squelettes en y ajoutant les images

    • sophie56

      dans le deuxième cas je les ajoute à quel endroit les images ? sinon j’ai voulu testé en ajoutant un logo à mes 2 rubriques.. .
      tjrs pareil je ne dois pas mettre la boucle au bon emplacement

    • en remplaçant [(#LANG|traduire_nom_langue)] par un truc comme <img src="[(#CHEMIN{images/drapeau_[(#LANG)].png})]"/> et tu mettras alors des images drapeau_fr.png, drapeau_en.png,... dans squelettes/images

    • sophie56

      PARFAIT ! merci

    Répondre à ce message

  • 7

    Bonjour, j’ai récemment installé votre plugin Site multilingue facile ainsi que tous les plugins nécessaires à celui-ci. J’ai également le plugin Menus (et donc zpip) installé. Je suis sous Spip 2.1.1.
    J’ai donc créé des doubles en anglais de mes rubriques et de mes articles, que j’ai ensuite liés avec les articles originaux en français.
    Ca marche super bien sur le menu, quand je clique sur un article j’ai la possibilité de voir la version anglaise et j’ai même le select pour choisir la langue.
    Le seul (et gros) problème c’est que le menu, lui ne s’adapte pas ! Il ne prend pas en compte le linkage des rubriques françaises et anglaises et donc même si tout le reste est en anglais, mon menu reste en français.
    J’ai fait ce que vous aviez dit concernant le menu à la fin de votre article, mais j’ai peur que ce ne soit pas valable avec le plugin Menus.

    Auriez-vous une piste afin de régler le problème ?

    merci d’avance.

    • Bonjour,

      si vous voulez simplement un menu des rubriques de votrre secteur de langue, vous n’avez pas besoin du plugin menu. Avec Zspip, il vous suffit de créer une noisette « barre_nav.html » dans squelettes/inclure/ avec le seul contenu

      <INCLURE{fond=inclure/menu_langues,env}></INCLURE>

      Cela qui inclut le menu de ce plugin

      Rainer

    • Ouah, ça fait plaisir de voir quelqu’un réagir aussi vite !

      J’ai créé la noisette et l’ai mise dans le dossier squelettes/inclure/, je vois bien avec skeleditor que spip la prend bien en compte ainsi que menu_langues du plugin, mais il ne m’affiche pas le menu, il ne l’affiche pas ou n’a pas pu le créer.
      Vous m’avez parlé de secteurs et cela m’intrigue, je n’ai pas de secteurs à l’intérieur desquels se trouvent mes rubriques, j’ai tout simplement 10 rubriques les unes à cotés des autres, 5 en français, 5 en anglais.

    • Cela explique que le menu ne montre rien, il est fait pour une structure ou chaque langue a son secteur.

      Cad, à la racine se trouve une rubrique pour chaque langue, puis dedans on mets les rubriques correspondantes.

      Dans votre cas ça serait une rubrique fr et sa traduction en (on peut donner un autre nom, mais avec des urls arborescence cela donne une url explicatif) et ’a l’intérieur on met maintenant les rubriques correspondantes.

    • Je viens donc de créer 2 rubriques, l’une appelée « fr » et l’autre « en » (provisoire), à l’intérieur desquelles j’ai placé mes sous-rubriques correspondantes.
      J’ai bien vérifié, tous les liens de traductions sont bons.
      Maintenant, j’ai l’affichage des rubriques sur la gauche (un espèce de menu juste au dessus de la barre de recherche), mais je n’ai toujours pas le menu horizontal principal en haut de la page.

    • Bonjour et pardon,

      je crois que j’étais fatigué vendredi passé.

      D’abord la noisette dois s’appeler « barre-nav.htm » et non « barre_nav.htm »

      Puis son contenu doit être

      <INCLURE{fond=inclure/nav,env}></INCLURE>

      je viens d’ailleurs de mettre cet inclure directement dans le plugin, pour l’inclure directement

      Rainer

    • Bonjour, j’avais effectivement remarqué pour le nom de la noisette et je l’avais donc corrigé moi-même.
      Avec le nouveau code de la noisette, cela marche parfaitement !

      Merci beaucoup pour votre aide et pour le temps passé sur mon cas. :)

    • Pas de problème, cela a contribué à amélioration de l’intégration dans Zspip

    Répondre à ce message

  • 2
    Dominique Lafond

    Bonjour,

    J’utilise le plugin Site multilingue facile (0.2.1 - test) et je le trouve très bien conçu.

    Pas de problème jusqu’ici dans son fonctionnement normal.
    Hier, suite à une fausse manip, j’ai voulu changer la langue d’un article et bleng : « une erreur technique a empéché l’enregistrement du champ lang » qui prend la valeur « http://www ».

    J’hésite à fourrer mon nez dans les sources, parce qu’il y a beaucoup de choses (donc, au passage, merci beaucoup pour ce travail...).
    Vous avez déjà vu ce problème ? une idée ?

    mon site : SPIP 3.0.7 installé ce WE ; autres plusgins couteau_suisse, crayons, jquery_menu_superfish, minibando-dev ; squelettes très simples (feuilles de style et quelques boucles standards) qui ne devraient pas poser problème...

    Bien cordialement,
    Dominique

    • Oui, il s’agit d’un ancien bug corrigé entre temps(70378)

      En fait la noisette « formulaires/inc-options-langues » est utilisée autant par le menu langue de l’espace publique que celui de l’espace privé. Si tu actualise le plugin cela devrait se corriger. Sinon regarde si tu n’as pas un « formulaires/menu_lang » dans ton dossier squelettes, si oui, remplace le par celui du plugin.

    • Dominique Lafond

      OK
      C’est fait (j’ai rechargé la dernière version du plugin) et ça fonctionne.
      Merci
      Dominique

    Répondre à ce message

  • 6

    Bonjour,
    merci pour ce plugin très précieux pour mon projet.
    j’ai un site avec 5 secteurs de langues.
    tout serait plus simple s’il était possible de faire apparaître facilement un article (ou une rubrique ?) dans la langue d’origine quand sa traduction n’est pas présente... mais comment faire ?

    Merci !
    Eric

    • Bonjour,

      quand je veux afficher la traduction d’un article et à defaut, son origine je fais une boucle du genre .

      <BOUCLE_article(ARTICLES) {id_article}>
      	<BOUCLE_trad(ARTICLES){traduction}{lang=#ENV{lang}}>
      	
      	</BOUCLE_trad>
      		<BOUCLE_trad_origine(ARTICLES){traduction}{origine_traduction}>
      	
      		</BOUCLE_trad_origine>	
      	<//B_trad>
      </BOUCLE_article>

      La première boucle cherche l’article en cours, puis on cherche une traduction de cet article correspondante à la langue du contexte, si inexistant, on affiche l’article d’origine.

      Tu peux utiliser la même logique pour afficher ou la traduction de la rubrique ou la rubrique originale, est-ce que cela répond à ta question ?

      Rainer

    • Merci pour la réactivité !
      je comprends la boucle, mais non, ça ne marche pas. peut-être parce que je suis dans un cas particulier : je n’ai qu’un article par rubrique (pour l’instant, mais dans un certain nombre de cas, ça n’évoluera pas). Donc j’ai un lien brisé : quand j’appelle la rubrique, Spip cherche a la dépasser pour afficher l’article unique, et ne trouve rien. ta boucle ne peut servir dans ce cas.
      mince...!

    • Donne moi l’exemple de ta boucle

    • je liste mes rubriques, simplement :

      <div class="menu menu_rubriques">
      <ul class="spip">
      <BOUCLE_rubriques(RUBRIQUES) {tout} {lang}{par num titre, titre}>
      <li>
      <a href="#URL_RUBRIQUE">#TITRE</a>
      </li>
      </BOUCLE_rubriques>
      </ul>
      </div>

      mais dans chaque rubrique je n’ai qu’un article en français, traduit en anglais mais pas en allemand par exemple.
      quand je sélectionne une rubrique dans ce menu,
      -  si je suis en lang=fr, tout va bien, l’article unique s’affiche – la page « plan de la rubrique » est ignorée.
      -  idem en lang=en, la traduction s’affiche.
      -  mais si je suis en lang=de, j’ai un lien brisé...

      comme la page « article », dans laquelle j’ai mis ta boucle avec

      <BOUCLE_trad(ARTICLES){traduction}{lang=#ENV{lang}}>
      <div class="cartouche">
      #MODELE{article_traductions}
      </div>
      [<div class="#EDIT{texte} texte surlignable">(#TEXTE|image_reduire{500,*})</div>]
      
      </BOUCLE_trad>               
       <BOUCLE_trad_origine(ARTICLES){traduction}{origine_traduction}>
      <div class="cartouche">
      #MODELE{article_traductions}
      </div>
      [<div class="#EDIT{texte} texte surlignable">(#TEXTE|image_reduire{500,*})</div>]
      </BOUCLE_trad_origine>        
              <//B_trad>

      n’est en fait jamais appelée, ça ne peut pas marcher... non ?

    • je regarderai ça plus tard, je n’ai pus le temps pour le moment

    • Et si tu enlève le critère lang de la boucle rubrique ?

       <BOUCLE_rubriques(RUBRIQUES) {tout}}{par num titre, titre}>
      <BOUCLE_article(ARTICLES) {id_rubrique}>
               <BOUCLE_trad(ARTICLES){traduction}{lang=#ENV{lang}}>
               
               </BOUCLE_trad>
                       <BOUCLE_trad_origine(ARTICLES){traduction}{origine_traduction}>
               
                       </BOUCLE_trad_origine>        
               <//B_trad>
       </BOUCLE_article>
       </BOUCLE_rubriques>

    Répondre à ce message

  • 5

    Bonjour,
    J’ai installé le squelette rubrique dans mon répertoire squelettes/contenu. Je souhaite ajouter des noisettes car j’ai besoin de réaliser des adaptations sans perdre les fonctionnalités du plugin.
    Ainsi pour le contenu du [(#REM) Articles de la rubrique ], je voudrais que ce soit ce code qui s’affiche à la place lorsque la rubrique est la 1 (version française) ou la 3 (version anglaise). J’ai placé cette boucle dans un fichier inc/rubriqueaccueil.

    <B_articles>
    <div class="liste articles">
    	#ANCRE_PAGINATION
    
    	<ul class="liste-items">
        		<BOUCLE_articlesedito(ARTICLES){titre_mot=edito} {!par date} {pagination 5}>
    		#INCLURE{fond=inclure/article-edito,id_article,id_trad}
    		</BOUCLE_articlesedito>
    		<BOUCLE_articles(ARTICLES){titre_mot=alaUne}{par date}  {pagination 5}>
    		#INCLURE{fond=inclure/article-resumeaccueil,id_article,id_trad}
    		</BOUCLE_articles>
    	</ul>
    	[<p class="pagination">(#PAGINATION)</p>]
    </div>
    </B_articles>

    Pour appeler la rubrique, j’ai ce code mais je ne sais pas où le placer dans le fichier squelettes/contenu/rubrique. :
    [(#ID_TRAD|=={1}|oui)<INCLURE{fond=inc/rubriqueaccueil}></INCLURE>]
    Je ne peux pas montrer d’exemple car je suis en local sous spip3. Avez-vous des pistes pour m’aider ?
    Merci.
    Hanabi.

    • Bonjour,

      Si tu veux utiliser par défaut le code qui affiche les articles et à défaut les rubriques et ta noisette pour les rubriques avec id_trad 1, met le code actuelle (ligne 24 à 63) dans un inclure « inc/rubriquedefaut » p.ex

      puis mais ceci à la place de l’ancien code

      [(#ID_TRAD|=={1}|oui)<INCLURE{fond=inc/rubriqueaccueil}></INCLURE>]
      [(#ID_TRAD|!={1}|oui)<INCLURE{fond=inc/rubriquedefaut,env}></INCLURE>]

      Est-ce que cela répond à ta question ?

    • Bonjour,
      Merci de la rapidité de ta réponse.

      Pour le code voici celui dans squelettes/contenu/rubrique.html

      [(#ID_TRAD|=={1}|oui)<INCLURE{fond=inc/rubriqueaccueil}></INCLURE>]
      [(#ID_TRAD|!={1}|oui)<INCLURE{fond=inc/rubriquedefaut,env}></INCLURE>]

      Les appels se font correctement. J’ai vérifié avec spip.php?rubriqueX&var_mode=inclure. Et dans les autres rubriques, c’est bien rubriquedefaut qui s’affiche avec les articles des rubriques. C’est parfait de ce côté là !

      Mais tout change lorsqu’on est dans le contexte de la rubrique 1. Pour la rubriqueaccueil, les articles ne s’affichent pas. Et si je remplace le contenu de la rubriqueaccueil par celui de la rubriquedefaut les articles ne s’affichent pas non plus. C’est comme si les boucles articles ne fonctionnaient pas ou n’étaient pas prises en compte..

    • etn si tu mets

      <INCLURE{fond=inc/rubriqueaccueil,id_rubrique,env}></INCLURE>

    • Cela ne fonctionne toujours pas. Je ne comprends pas. J’ai vidé le cache et de l’espace privé et du navigateur pour m’en assurer. J’ai vérifié les liens. Le fichier est bien appelé mais les boucles n’opèrent pas.

      J’ai même placé l’ensemble des fichiers dans le même répertoire squelettes/ inc sauf rubrique.html qui est toujours dans squelettes/contenu.

      Et le code est placé ainsi

      		[<div class="#EDIT{texte} texte">(#TEXTE)</div>]
      	
      			[(#REM) Articles de la rubrique ]
                  
      [(#ID_TRAD|=={1}|oui)<INCLURE{fond=inc/rubriqueaccueil,id_rubrique,env}></INCLURE>]
      [(#ID_TRAD|!={1}|oui)<INCLURE{fond=inc/rubriquedefaut,env}></INCLURE>]
      			
                  
                  [(#REM) Documents joints a la rubrique ]
    • Est-ce que tu as des articles dans les rubriques avec id_trad 1 ? car sinon tu sois mettre le critère {tout} dans la Boucle rubrique de squelettes/contenu/rubrique.html

    Répondre à ce message

  • 1

    Bonjour,

    J’ai installé tous les plugins sans problème. J’ai ensuite fait « visiter » pour voir si mon site n’avait pas changé d’aspect, et là :
    aaaaaahhhhhhhhhh ! toute ma charte graphique a disparue et je me suis retrouvé avec le graphisme basique de spip :(

    Seule solution désinstaller tous vos plugins. Heureusement j’ai pu revenir à mon site d’origine :)

    Ma question : comment instaler vos plugins sans impacter l’aspect graphique du site et sans surcharger les plugins Giseh ?

    Merci d’avance

    • Désintalle unqiement le plugin multilingue car c’est le seul qui surcharge des squelettes et il n’est pas nécessaire pour le bon fonctionnement des autres plugins. Puis tu peux adapter si nécessaire, ton squelettes avec les noisettes fournis par le plugin, regarde ci-haut sous « Squelettes »

    Répondre à ce message

  • 8

    Très bon plug ! Facile à installer.

    J’ai été visiter votre site et je serais curieuse de savoir comment vous avez procédé pour gérer vos événements sachant que le plug agenda ne permet pas d’associer plusieurs articles à un événement...

    1 article français = 1 événement en français
    1 article anglais = le même événémen mais en anglais

    J’avoue ne pas trop savoir ce qui serait le plus simple à mettre en place...

    Autre question, sachant que les articles traduits sont liés peut-on avoir un même bloc de commentaires (forum) côté français et anglais pour une intéraction internationale ?

    • Tu te réfères au site muziekpublique, j’imagine.
      D’abord agenda permet dans problème d’ajouter plusieurs événement à un seul article. Sur le site en question, afin de diminuer le travail, l’événement est encodé seulement pour l’article de référence.

      <BOUCLE_art(ARTICLES){id_article}>
      <BOUCLE_art_or(ARTICLES){traduction}{origine_traduction}>
        <BOUCLE_ev(EVENEMENTS){id_article}>
        </BOUCLE_ev>
      </BOUCLE_art_or
      </BOUCLE_art>
      >

      permet de récupérer l’événement rattaché à l’article de référence. De même les images et logos sont récupéres de l’article de référence, mais peuvent être surchargé.

      Oui tout à fait

      En faisant un tableau pour récupérer les id_articles des articles liées par traduction et on les utilisant pour la séléction de message tu devrais obtenir ce que tu souhaite. (modifier/surcharger : inclure/forum.html de squelettes_dist)

      #SET{id_article,#ARRAY}
      <BOUCLE_art(ARTICLES){id_article}>
      <BOUCLE_art_or(ARTICLES){traduction}>
        #SET{id_article, #GET{id_article}|array_merge{#ARRAY{#COMPTEUR_BOUCLE,#ID_ARTICLE}
      </BOUCLE_art_or
      </BOUCLE_art>
      
      <BOUCLE_comments(FORUMS?){id_article IN #GET{id_article}} {par date}>
      
      </BOUCLE_comments>

      Est-ce que cela répond à tes questions ?

    • C’est nickel ! Merci de ta réactivité :)

    • Ahhh si tout était simple :) Petit soucis pour le switch de langue.

      Côté BO
      Chaque rubrique française à la racine est liée à une rubrique en anglais (aussi à la racine). Dans les rubriques on peut switcher de la rubrique fr/en sans soucis. Mais !!! Il y a un mais, ces rubriques ont bien entendu un id différent.

      Côté FO
      Quand je demande depuis ma rubrique 1 de passer à la rubrique anglaise (avec le petit inclure menu_langues), a lieu de passer à la bonne rubrique anglaise, je reste sur ma rubrique en français. En effet, l’adresse m’indique spip.php ?rubrique1&lang=en alors je migre pas au bon endroit.

      Infos en plus : j’ai rajouté lang à mes fichiers rubrique.html...

      Où cela pêche t’il ?

    • « Côté BO
      Chaque rubrique française à la racine est liée à une rubrique en anglais (aussi à la racine). Dans les rubriques on peut switcher de la rubrique fr/en sans soucis. Mais !!! Il y a un mais, ces rubriques ont bien entendu un id différent. »

      C’est normal, chaque traduction d’une rubrique est une nouvelle rubrique

      « Côté FO
      Quand je demande depuis ma rubrique 1 de passer à la rubrique anglaise (avec le petit inclure menu_langues), a lieu de passer à la bonne rubrique anglaise, je reste sur ma rubrique en français. En effet, l’adresse m’indique spip.php ?rubrique1&lang=en alors je migre pas au bon endroit. »

      Est-ce que tu as bien passé l’id_rubrique dans l’inclure ? Si tu as pris les squelettes du plugin, c’est le cas, sinon vérifié bien que <INCLURE{fond=inclure/header,id_rubrique} ></INCLURE> passe bien la variable id_rubrique dans le squelette rubrique.html

    • Seulement chaque rubrique à la racine a un squelette différent, je suis obligée d’utiliser le rubrique=1.html par exemple afin de customise ma page.
      Je me suis peut-être aussi trop précipitée. Le plug utilise sûrement en FO le système natif de SPIP pour le contrôle des langues.

    • Cela ne devrait pas avoir d’influence, maisas-tu vérifié ce que j’ai mis plus haut ?

      Généralement je déconseille d’utiliser des squelettes distincts par rubrique ou articles. Ça devient très complexe à gérér suivant le cas.

      Je préfère gérér la plupart des adaptations via des inclure appelé selon le contexte, en utilisant la Balise #ID_TRAD
      [(#ID_TRAD|=={1}|oui)<INCLURE{fond=inc/noisette}></INCLURE>]

      Ainsi tu peux gérer la plupart de tes adaptations de puis un seul squelette rubrique.html, pareille pour les articles.

      Le système de traduction dans le FO et BO est le même, base dur l’id_trad de la rubrique et la variable lang

    • Oui c’est exact, ça marche à présent en ayant copié-collé le code du plug :) Par contre je n’ai pas trouvé la subtilité qui fait tout marcher :)

      Par contre le site que je réalise à titre personnel, est une vraie usine à gaz bourrée d’inclure :D Un p’tit challenge pour moi. D’abord je m’occupe de toute la partie technique, puis le squelette HTML5 puis enfin le CSS3 et de l’animation. Quand tout sera posé et que je serai satisfaite du résultat je pourrai le montrer dans l’herbier !

      Il n’y a en fait que 3 grosses rubriques principales avec un squelette propre.

    • le menu langue produit ces liens en cherchant d’abord s’il on est en présence d’un article(présence de l’id_article) si oui il produit les liens des articles traduites

      sinon il teste si c’est une rubrique (présence de l’id_rubrique) si oui il produit les liens des rubriques traduites

      sinon il crée les liens de traduction en cherchant les langues du site et en rajoutant la variable lang à l’url actuel [(SELF|parametre_url{lang,#ENV{lang}})]

      Ce qui était ton cas, j’imagine

    Répondre à ce message

  • 1

    Est-ce sarka-spip compatible ? car ce sera une bonne chose.
    William

    • Je ne sais pas comment fonctionne Sarkaspip et je n’ai rien fait de spécifique pour ce squelette. Si quelqu’un qui s’y connait a le temps et l’envie ça pourrait se regarder. Moi je n’aurais pas le temps maintenant, désolé

      RAiner

    Répondre à ce message

  • 1

    Bonjour,

    Où est-il possible de voir des exemples de réalisation sous Spip 3.0 ?
    Ça serait très pratique pour se faire une idée pour ceux qui comme moi débutent.

    Merci par avance.

    Répondre à ce message

  • 2

    Pour info : le fichier menu_langues.html renvoie un HTML mal balisé : tags non fermés, etc.

    • Je ne constate pas d’erreur html lié à ce fichier, tu peux détailler les erreurs ?

    • J’avais des balises non fermées, un mélange de A et SPAN qui faisaient planté l’affichage de ma page. Au final j’ai fait mon fichier custom comme tu le proposes c’était bcp mieux ;-)

    Répondre à ce message

  • 1

    On le telechrge comment ? je ne vois pas le lien de telechargement... Merci.

    Répondre à ce message

  • 4

    Bonjour,

    Est ce que c’est Z-compatible ?

    nat33

    • Oui et non, les modifications des menus de langue et rubrique sans sans doute possible d’intégrer facilement en adaptant les squelettes z, il faut donc pour le moment adapter ces squelettes, je ferai bientôt une adaptation pour z qui n’aurai plus besoin de faire ces manipulations.

    • je viens d’adapter le plugin pour le rendre compatible avec z, comme je ne connais pas bien z, dis moi si il y a des incohérences

    • Bonjour,

      Je viens de relever une anomalie en l’état le plugin empêche la prise en compte des compositions sur la rubrique.

      J’ai repris le fichier rubrique.html de z et la composition est prise en compte normalement.

      l’anomalie est observée avec z + composition en spip 2.1

      A toutes fins utiles, je remarque que dans le fichier rubrique.html du plugin l’inclure n’est pas positionné dans une boucle rubrique, comme c’est le cas dans celui de Z.

      En tout cas merci pour ce plugin.

      Nat33

    • Bonjour,

      je viens de corriger les fichiers rubrique.html et article.html afin de mettre des boucles autour des noisettes, ce qui évidemment était nécessaire, merci. Cependant je ne sais pas si cela arrange ton problème

      Rainer

    Répondre à ce message

  • Merci Rainer,

    Je teste et je reviens vers toi

    nat33

    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