[plugin] MyMultiLingue

StéphaneStéphane Member, Former PluXml Project Manager
Le principe de ce plugin est d'avoir coté administration la possibilité de rédiger des articles en plusieurs langues et de pouvoir coté visiteur les lire en fonction de la langue de son choix.


Le choix des langues à gérer se fait à partir de l'écran de configuration du plugin et d'une liste à cocher.
Pour chaque langue sélectionnée un drapeau est affiché en haut à droite de l'administration.
En cliquant sur un drapeau on bascule d'une langue à une autre permettant ainsi d'avoir une gestion complètement séparée :
- des articles et leurs tags ainsi que leurs commentaires
- des catégories
- des pages statiques


Coté visiteur, éditez par exemple le fichier sidebar.php de votre thème et ajoutez la ligne suivante:
<?php eval($plxShow->callHook('MyMultiLingue')) ?>

Les drapeaux de langues gérées seront affichés. En cliquant sur un drapeau le thème basculera vers la langue choisie et les articles de cette langue seront affichés.

Sont gérés également par langue:
- les urls
- les flux rss
- un sitemap par langue

Ce plugin fait suite à cette discussion

Téléchargement du plugin ici

Historique
version 0.8.1 (10/04/2017)
BUG tableau PLX_MYMULTILINGUE non géré avec php 5.x+
BUG Suppression fichier plugin update impossible (droit fichier)

version 0.8 (27/03/2017)
[+] Compatibilité PluXml 5.6
[+] Gestion des dépendances entre articles rédigés dans des langues différentes
[+] Gestion des dépendances entre les pages statiques rédigées dans des langues différentes
[+] Amélioration de la gestion des liens lors de la bascule des langues
[+] Langue occitane (contribution Quentin)
[+] Langue affichée dans les urls sauf pour la langue par défaut
[+] Message d'information pour activer la réécriture d'url à l'activation du plugin
[+] (ajout) Configuration plugin > Utiliser un thème différent pour chaque langue
[+] (ajout) Configuration plugin > Préserver l'affichage de l'interface d'administration avec la langue du profil utilisateur connecté
[-] (suppr) Configuration plugin > Bascule sur l'article, catégorie ou page statique avec le même identifiant lors du changement de langue.
[-] (suppr) cookie plxMyMultiLingue pour la sauvegarde de la langue du site visité
BUG Pas d'affichage des drapeaux coté visiteurs si PluXml installé dans un dossier
BUG Warning à la création d'une page statique si paramètre "Page d'accueil" non renseigné

version 0.7.4 (09/11/2016)
BUG Mauvais chemin vers le dossier des articles sur l'écran: Administration > Configuration avancée

version 0.7.3 (25/10/2016)
Mise à jour traduction occitane (contribution Quent-in)
BUG Non prise en compte de langue dans les liens Voir les pages statiques à partir de l'administration

version 0.7.2 (29/02/2016)
BUG langue du thème non chargée si appel à partir d'un lien sans passer par les drapeaux

version 0.7.1 (04/02/2016)
BUG mauvaise redirection apres envoi d'un commentaire
BUG mauvaise redirection à partir de la liste déroulante de sélection de la langue.

version 0.7 (25/01/2016)
[+] Affichage des langues sous forme de liste déroulante (paramétrage à partir de l'écran de configuration du plugin)
BUG Non prise en compte de langue dans le sitemap

version 0.6 (28/05/2015)
[+] Compatibilité PluXml 5.4
[+] Ajout drapeau occitan
[+] Ajout en automatique dans la partie <head> balise du type: <link rel="alternate" hreflang="en" href=”http://monsite.com/en/"; />
[+] Ajout de la langue dans le lien de la page d'accueil dans la liste des pages statiques (fct: plxShow::staticList)
[-] Suppression gestion dossier Documents
BUG Warning sur langue occitan non déclarée
BUG Mauvaise page statique d'accueil en focntion de la langue sélectionnée

version 0.5 (30/04/2014)
[+] Choix affichage drapeaux ou libellés
[+] Gestion du titre, de la description, des metas description et keywords du site en fonction de la langue
[+] Bascule sur l'article, catégorie ou page statique avec le même identifiant lors du changement de langue.
[+] Traductions du plugin: de, es, it, nl, pl, pt, po, ru
[+] Conversion des images des drapeaux au format png (taille globale des fichiers réduites de 161Ko à 8.5Ko)
BUG Mauvais liens des pages statiques

version 0.4.2 (09/09/2013)
BUG: Langues non prises en compte dans le sitemap

version 0.4.1 (13/06/2013)
[+] Compatibilité PluXml 5.2

version 0.4 (09/02/2013)
+ Paramétrage de l'ordre d'affichage des drapeaux
BUG Mauvaise gestion du cookie pour la sélection de la langue coté visiteur

/!\ Pour la gestion des langues dans les flux rss et le sitemap, remplacer les fichiers /core/lib/class.plx.feed.php et /sitemap.php par ceux fournis dans le dossier /plugins/plxMyMultiLingue/changes/
ou effectuez manuellement les modifications des fichiers à partir des consignes listées dans le fichier /plugins/plxMyMultiLingue/changes/readme.txt

Ces modifications seront officielles pour la version future de PluXml (> 5.1.7)

version 0.3 (09/02/2013)
+ Gestion de la langue dans les urls pour éviter le duplicate content
+ Gestion de la langue dans les flux rss (requiert les modifications dans le fichier class.plx.feed.php)
+ Gestion de la langue dans le sitemap (requiert les modifications dans le fichier sitemap.php)
+ Un sitemap différent par langue
+ sitemapindex pour indiquer aux moteurs l'url des sitemaps pour chaque langue
BUG Administration: Mauvais affichage des chemins des dossiers sur l'écran Paramètres > Configuration avancées
BUG Administration: mauvais affichage des drapeaux si aucune langue sélectionnée
BUG Validation xhtml

version 0.2 (06/02/2013)
+ Sélection des langues à utiliser à partir de l'écran de configuration du plugin
+ Affichage des langues sous forme de drapeaux
+ Chargement de la langue du thème coté visiteur en fonction de la langue sélectionnée sous forme de drapeau

version 0.1 (15/12/2012)

Consultant PluXml

Ancien responsable du projet (2010 à 2018)

«1345678

Réponses

  • Je ne sais pas si c'est prévu ou si c'est déjà possible, mais ce serait bien de pouvoir donner une ordre aux langues.

    Présentement, j'ai mis français et anglais, mais je voudrais que ce soit le drapeau français qui soit placé en premier.

    En tout cas, le plugin fonctionne très bien jusqu'à présent.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Ok je me note ça :)

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • zakar!zakar! Member
    février 2013 modifié
    Bonjour Stéphane,

    Comme dit dans un autre sujet pour éviter le 'duplicate content' sous le même domaine, je te propose d'ajouter la gestion de l'url du site en fonction de langue sélectionnée.


    L'url pourrait être un Sous domaine pour que ce soit encore plus optimale.


    En faisant ça plus la modification du sitemap (ne pas oublier l'url du site suivant la langue dedans !) que tu propose en feature, je pense que la tu auras la meilleur solution qu'aucun cms ne propose actuellement même en plugin !!!
    Ou alors me dire lequel :D
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour zakar!
    Peux-tu me donner des exemples d'url qu'il faudrait avoir stp ?

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Hello,


    monsite.com/fr/article1
    monsite.com/en/article1
    ...
    en sous domaine ça devient :
    fr.monsite.com
    en.monsite.com
    mas je ne sais pas si la config' de l'hébergeur le permette ...
  • StéphaneStéphane Member, Former PluXml Project Manager
    Je préfère gérer monsite.com/fr/article1 car tout le monde n'a pas un hébergeur qui permet d'avoir des sous domaines.

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Comme Danielsan propose en effet sauf l'article.
    monsite.com/fr/
    monsitemonsite.com/en/
    monsitemonsite.com/de/
    
    ou
    fr.monsite.com
    en.monsitemonsite.com
    de.monsitemonsite.com
    
    Mais si ce paramètre est souple, il pourrait contenir une url qui conviens au 2 cas, donc un simple input text.
  • Stéphane a écrit:
    Je préfère gérer monsite.com/fr/article1 car tout le monde n'a pas un hébergeur qui permet d'avoir des sous domaines.
    effectivement
  • J'avais tenté une approche pour le faire avec ma version. Mon code est trop pourri ? :p
  • Bonjour à tous,

    Il y a un message d'erreur lors de la création d'une page statique :
    ==> "Erreur pendant l'enregistrement des données ../../data/configuration/fr/statiques.xml"

    Effectivement, quand je vais voir dans le dossier de configuration, le dossier langue n'est pas crée.

    J'ai regardé dans le plugin, et je pense qu'il s'agit d'un oubli puisque les dossiers langues dans /statiques/, /commentaires/ et /articles/ sont bien créés.
  • Attention Stéphane, ta balise <li> n'est pas fermée dans le HTML généré en front-end.
  • StéphaneStéphane Member, Former PluXml Project Manager
    @NaBiSs: Merci je vais corriger tout ça
    @Jerry Wham: Je t'avoue que je n'ai pas regardé ton code. J'essayerai de jetter un oeil

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Salut,
    j'ai pas encore essayé mais si ca permet d'avoir un pluxml multilingue je dis BRAVO à Stephane!
    Merci de tenir toujours à jour ce chouette CMS/blog.
    Je m'en sers dés que j'ai l'occasion et le trouve bien adapté et super léger
    bravo
    a+
  • StéphaneStéphane Member, Former PluXml Project Manager
    @Dany3d: Merci

    Je lance une mise à jour ce week avec la prise en compte de la langue dans les urls (ex: monsite.com/fr/xxxx), dans les flux rss, pas mal de correction de bugs.


    Pour le sitemap j'ai besoin de vos avis. Comment faire la distinction de la langue pour le sitemap ? Mon souci n'est pas au niveau des urls dans le sitemap (ça techniquement je sais faire), mais comment dire à un google par exemple qu'il y a un sitemap pour la partie du site en francais, un autre pour la partie du site en anglais, etc...
    Est-ce que sur le principe on peut avoir un fichier genre sitemap-fr.php, sitemap-en.php ? Est-ce que les moteurs sauront lister ce genre de fichiers ? Merci pour vos lumières.

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Je ne suis pas spécialiste du SEO, mais je suis tombé sur cette article qui répond à ce cas :

    la-cremerie.com
  • StéphaneStéphane Member, Former PluXml Project Manager
    Merci NaBiSs pour le lien. Je pense y avoir trouvé la réponse
    ...le mieux est de déclarer un seul sitemap dans GWT dans lequel les pages de chaque langue sont indiquées.
    Donc plus qu'à faire apparaitre dans sitemap.php de PluXml toutes les pages pour chaque langue
    Me reste donc à voir maintenant comment le résultat du sitemap doit etre structuré (structure xml)

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Tu ne fait rien de spécial, un seul sitemap suffit, les moteurs de recherches comprendront tout seul que ces dispo en plusieurs langue grâce aux url.
  • StéphaneStéphane Member, Former PluXml Project Manager
    zakar! a écrit:
    Tu ne fait rien de spécial, un seul sitemap suffit, les moteurs de recherches comprendront tout seul que ces dispo en plusieurs langue grâce aux url.

    Dans le cas de pluxml, le fichier sitemap.php actuel va toujours renvoyer le contenu du site configuré avec la langue par défaut (jamais avec les autres langues). Faut faire quoi alors ?

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • zakar!zakar! Member
    février 2013 modifié
    Ben modifier l'url par défaut par celle de l'url en config de ton plugin s'il est activé.

    Faudrait checker soit si c'est un sous domaine (fr.) ou par dossier (/fr).

    Donc à la limite pour éviter d'avoir un champ url sur ton plugin, proposer par un select soit de type /fr ou .fr comme ça tu place juste le type devant ou derrière l'url en config général.
  • StéphaneStéphane Member, Former PluXml Project Manager
    @zakar!: si j'ai bien compris, il faut plusieurs urls en fonction des langues:
    http://monsite.com/fr/sitemap.php
    http://monsite.com/en/sitemap.php
    et chaque sitemap respectif renvoie le contenu correspondant à la langue placée dans l'url.
    j'ai bon ?

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • StéphaneStéphane Member, Former PluXml Project Manager
    sauf que pour un site où on a http://monsite.com/index.php?xxxx,
    http://monsite.com/fr/sitemap.php ne sera pas accessible car ça sous entend qu'il y a de la réécriture d'url pour avoir http://monsite.com/fr/

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • StéphaneStéphane Member, Former PluXml Project Manager
    à la limite on peut avoir http://monsite.com/index.php?fr/sitemap et http://monsite.com/index.php?en/sitemap
    Mais là est que les moteurs vont savoir que c'est un sitemap ?


    EDIT: désolé pour les 3 posts à la suite, mais je réfléchis en meme temps que j'écris...

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Tu as tout compris, un sitemap par langue, tu peux fournir autant de sitemap du moment qu'il ne dépasse pas les 10Mo (on peux compresser au pire).
  • StéphaneStéphane Member, Former PluXml Project Manager
    Donc en gérant ce genre d'url http://monsite.com/index.php?fr/sitemap et http://monsite.com/index.php?en/sitemap ça devrait le faire.
    Et pour être béton on peut compléter avec un fichier sitemapindex pour spécifier quelles urls utiliser
    http://support.google.com/webmasters/bin/answer.py?hl=fr&answer=71453&topic=8476&ctx=topic
    Après j'ai l'impression que les moteurs sont suffisamment intélligents pour analyser le contenu et se débrouiller tout seul



    EDIT:mais même pas certain qu'un sitemapindex soit obligatoire

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • zakar!zakar! Member
    février 2013 modifié
    Yep bien vu pour le sitemap index, tu as bien compris le truc, après les moteurs savent lire (qui sont intélligents ces bestiaux :D)

    Sinon pour ce type d'url http://monsite.com/index.php?en/sitemap y a moyen de faire plus simple
    http://monsite.com/index.php/en/sitemap

    A savoir aussi que si tu fais un seul sitemap, cela peux poser le problème de la taille de ce fichier à la longue.
    C'est bien pour un cms mais pour un blog...
  • Edite de ma réponse précédante
  • StéphaneStéphane Member, Former PluXml Project Manager
    Je suis aussi d'avis de faire un sitemap différent pour chaque langue.
    Pour le format d'url je pense plutôt partir sur http://monsite.com/index.php?fr/sitemap car tout pluxml fonctionne déjà avec des urls du genre http://monsite.com/index.php? + quelque chose.

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Si les moteurs de recherche le tolère, c'est clair que d'avoir 1 sitemap par langue reste plus simple et plus clair, même pour nous humain :) .
  • @Stéphane : tu ne veux pas jeter un coup d'oeil à mon plugin ? Si tu ne t'inspire pas du code (ce que je peux comprendre), regarde au moins quel est le rendu final... Cela répondrait à pas mal de tes questions.
  • StéphaneStéphane Member, Former PluXml Project Manager
    version 0.3 (09/02/2013)
    + Gestion de la langue dans les urls pour éviter le duplicate content
    + Gestion de la langue dans les flux rss (requiert les modifications dans le fichier class.plx.feed.php)
    + Gestion de la langue dans le sitemap (requiert les modifications dans le fichier sitemap.php)
    + Un sitemap différent par langue
    + sitemapindex pour indiquer aux moteurs l'url des sitemaps pour chaque langue
    BUG Administration: Mauvais affichage des chemins des dossiers sur l'écran Paramètres > Configuration avancées
    BUG Administration: mauvais affichage des drapeaux si aucune langue sélectionnée
    BUG Validation xhtml


    /!\ Pour la gestion des langues dans les flux rss et le sitemap, remplacer les fichiers /core/lib/class.plx.feed.php et /sitemap.php par ceux fournis dans le dossier /plugins/plxMyMultiLingue/changes/
    ou effectuez manuellement les modifications des fichiers à partir des consignes listées dans le fichier /plugins/plxMyMultiLingue/changes/readme.txt



    Ces modifications seront officielles pour la version future de PluXml (> 5.1.7)


    Merci d'avance aux personnes qui feront des tests et signaleront des problèmes ou des idées d'améliorations.
    Cette version reste une version en cours de développement.

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

Connectez-vous ou Inscrivez-vous pour répondre.