• Save
Bilinguisme et word_press_plugins_et_astuces
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Bilinguisme et word_press_plugins_et_astuces

  • 3,477 views
Uploaded on

Présentation sur le bilinguisme sous wordpress donnée dans le cadre du Wordcamp Montréal 2010.

Présentation sur le bilinguisme sous wordpress donnée dans le cadre du Wordcamp Montréal 2010.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,477
On Slideshare
3,244
From Embeds
233
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
2

Embeds 233

http://onfaitduweb.com 233

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Bilinguisme et WordPress : plugins et astuces Par Yannick Carrière   http://twitter.com/yannickCarriere http://twitter.com/quiboweb http://www.quiboweb.com
  • 2. Distinguer les type de contenu
    • Statique
    •  
      • Prévisible
      • Balisage HTML connu.
      • L'édition s'effectue directement dans les fichiers.
    • Dynamique
      • Imprévisible
      • Balisage HTML inconnu
      • L'édition s'effectue via l'interface d'administration.
  • 3. i18n et l10n
    • i18n = I(nternationalisatio)n
      • Système selon lequel une application permet, au niveau de sa conception, de supporter plusieurs langues.
    • l10n = l(ocalisatio)n
      • Ressources qui permettront à une application internationalisée de changer la langue, mais aussi les informations relatives comme les formats de dates, les formats d'argent etc...
  • 4. i18n et Wordpress
    • Utilise les outils et les librairies de gettext, un projet opensource, qui vise à faciliter l'internationalisation d'applications pour les programmeurs, les traducteurs et les utilisateurs avec un minimum d'impact sur le code source.
    •  
    • Comprendre son fonctionnement  
      • au chargement de la page, la langue d'affichage est déterminée, que ce soit via un plugin ou un paramètre du fichier de configuration (la constante WPLANG)
      • WordPress charge les fichiers de la langue correspondante (langue.mo ou domain-langue.mo).
      • pour tout le contenu passant par les fonctions i18,  la traduction s'affiche s'il y a lieu, sinon WordPress prend le texte par défaut.
  • 5. Les types de fonctions PHP i18n
      • Traduction directe
        • On passe une chaîne de caractère à la fonction et elle nous renvoie la traduction si elle existe, ou la chaîne passée.
    •  
      • Exemple d'utilisation
    •  
    •  
    •  
      • Fonctions similaires
        • esc_attr__(); ou esc_attr_e(); retourne ou affiche la traduction ou la chaîne passée, mais en s'assurant que le résultat pourra être affiché comme attribut html sans causer de problèmes, comme avec les " par exemple.
  • 6. Les types de fonctions PHP i18n
      •   Fonctions similaires (suite)
        • esc_html__(); ou esc_html_e(); retourne ou affiche la traduction ou la chaîne passée, mais en s'assurant que le résultat pourra être affiché comme contenu html en transformant les balises en entité HTML.
    •  
      •   Exemple
    •  
  • 7. Les types de fonctions PHP i18n
      • Traduction par contexte
        • Parfois, un mot peut avoir plusieurs significations dépendamment du contexte dans lequel on le retrouve, donc la fonction permet l'adaptation de la traduction à ce contexte.
    •  
    •  
      • Exemple d'utilisation 
    •  
  • 8. Les types de fonctions PHP i18n
      • Traduction avec notions de pluralité
        • Traduction directe où la chaîne de caractère peut impliquer une ou des notions de pluralité. On l'utilise surtout quand on a un nombre variable qui fait partie d'une phrase.
    •  
    •  
      • Exemple d'utilisation 
  • 9. Localisation et Wordpress
    • Une fois le contenu habillé par ces fonctions utiles, on peut procéder à la localisation.
    •  
    • Comprendre le fonctionnement
      • Une application devra analyser tous nos fichiers de thème et plugins afin d'y extraire tous les textes contenus dans les fonctions i18n. 
      • L'application en question créera un fichier qui nous permettra d'entrer les traductions de tous ces contenus statiques. Il faut créer un fichier par langue.
      • Chaque phrase originale sera couplée avec sa ou ses futures traductions, ce qui permettra à Wordpress de reconnaître la traduction pour une phrase donnée.
  • 10. Localisation et Wordpress
    • L'étape suivante consiste à traduire et mentionner à Wordpress que notre thème ou plugin est internationalisé. Les explications pour y parvenir dépassent un peu le cadre de cette présentation, mais je vous invite à lire cette page qui donne des indices et astuces pour y parvenir.
    • http://codex.wordpress.org/I18n_for_WordPress_Developers
  • 11. Contextes de traduction
    • - 1 pour 1 - Les pages ou les billets ont toujours des correspondances dans l'autre langue
    • - Site semi-bilingue, où par exemple toutes les pages du site sont bilingues, mais où le blogue demeure unilingue
    •  
    • - Site communautaire, où le contenu généré n'a pas automatiquement de correspondance dans l'autre langue
  • 12. Considérations à évaluer
      • Type de traduction (humaine, automatique)
      • Ergonomie de l'interface
      • Référencement naturel
      • Recherche sur le site
      • Fils rss
      • Commentaires
      • Performance
      • Stockage des données
      • Les coûts de sortie (désinstallation)
      • Domaine avec des sous-dossiers, sous-domaines, domaines différents ?
  • 13. Global translator [ http://wordpress.org/extend/plugins/global-translator/ ]
    • Type de traduction
      • Automatique
      •  
    • Ergonomie de l'interface
      •   Non applicable
    • Référencement
      • Rajoute a l'url de base le code de la langue.
      • Code 503, quand le service est temporairement non-disponible et indique de revenir dans 3600 secondes.
      • Le titre du post dans l'url n'est pas traduit.
      •  
    • Recherche sur le site
      • Ne recherche pas dans le contenu traduit.
  • 14. Global translator [ http://wordpress.org/extend/plugins/global-translator/ ]
    • Flux rss
      • Non traduits.
    • Commentaires
      • Possibilité de traduction, fait partie des options de configuration.
      •  
    • Performance
      • Plutôt performant puisque la traduction se fait à l'externe la première fois et est mise en cache par la suite. 
      • Pas beaucoup de traitement.
      • Une traduction effectuée au 5 minutes minimum pour éviter d'être bannis par les engins de traduction.
      • Redirection sur un site d'engin de traduction quand une page à déja été traduite dans les 5 dernières minutes
    •  
    • Stockage des données
      • Système de cache pour les contenus traduits.
  • 15. Global translator [ http://wordpress.org/extend/plugins/global-translator/ ]
    • Coûts de sortie
      • Ne s'applique pas vraiment car il s'agit de traduction automatique. Aucun impact à la désinstallation.
      •  
    • Type d'utilisation
        • Site avec traduction 1 pour 1
        • Site semi-bilingue (exclusion avec des classes ou de id)
        • Sous un même domaine.
  • 16. Global translator [ http://wordpress.org/extend/plugins/global-translator/ ]
    • Avantages
    •  
      • Choix de 4 engins de traduction google translate, prompt, altavista babelfish et freeTranslator
      • Possibilité d'exclure des posts et des pages pour la traduction en listant leur IDs et on peut aussi mentionner un sélecteur jquery qui empêchera la traduction du contenu d'une ou plusieurs balises.
      • Peut aider à augmenter le traffic sur son site.
    • Inconvénients
    •  
      • On sort beaucoup du site pour être redirigé vers des engins qui traduiront la page à cause du délai de traduction.
      • Si on arrive directement d'un engin de recherche sur le site et que l'on tombe sur une traduction, rien ne nous indique que cela a été traduit par un engin ce qui peut mal paraître.
      • Traductions douteuses sans possibilités d'édition
      • Ne fonctionne pas avec un site local (localhost/)
  • 17.  
  • 18. Google ajax translation [ http://wordpress.org/extend/plugins/google-ajax-translation/ ]
    • Type de traduction
      • Automatique
      •  
    • Ergonomie de l'interface
      • Non applicable
    • Référencement
      • N'ajoute rien au référencement puisque se passe via ajax et que les traductions ne sont pas accessibles via un url.
      •  
    • Recherche sur le site
      • Ne recherche pas dans le contenu traduit.
  • 19. Google ajax translation [ http://wordpress.org/extend/plugins/google-ajax-translation/ ]
    • Flux rss
      • Non traduits.
    • Commentaires
      • Possibilité de traduction, option via page de configuration.
      •  
    • Performance
      • Aucun souci de performance au niveau du chargement, puisque tout se fait via ajax. Par contre, il peut y avoir un délai pour afficher la traduction après avoir cliqué puisque non seulement c'est un appel ajax, mais il y a aussi un appel à google translate en plus.
    •  
    • Stockage des données
      • Ne s'applique pas.
  • 20. Google ajax translation [ http://wordpress.org/extend/plugins/google-ajax-translation/ ]
    • Coûts de sortie
      • Ne s'applique pas vraiment car il s'agit de traduction automatique. Il faudra néanmoins re-traduire le contenu si on change de plugin et que la traduction ne se fait plus automatiquement.
    • Type d'utilisation
        • Site avec traduction 1 pour 1
        • Site semi-bilingue (exclusion avec des classes ou de id)
        • Sous un même domaine.
  • 21. Google ajax translation [ http://wordpress.org/extend/plugins/google-ajax-translation/ ]
    • Avantages
    •  
      • Possibilité d'exclure des posts et des pages pour la traduction en listant leur IDs et on peut aussi mentionner un sélecteur jquery qui empêchera le contenu d'une balise précise. 
      • On est informé que la traduction se fait via un engin externe, donc on peut s'attendre à des erreurs.
    • Inconvénients  
    •  
      • Le plugin traduit seulement le contenu qui provient de the loop, donc rien dans le menu, les pages etc... 
      • Traductions douteuses sans possibilités d'édition.
      • À mon avis, le bouton aurait besoin d'un revamping
  • 22. Liens pour changer la langue
  • 23. Traduction
  • 24. qTranslate [ http://wordpress.org/extend/plugins/qtranslate/ ]
    • Type de traduction
      • Manuelle
      •  
    • Ergonomie de l'interface
      • Directement dans l'ajout ou modification de post. Pour le titre, autant de champ que de langues sont ajoutés, pour le contenu, des onglets séparent les différentes langues.
    • Référencement
      • - Ajout du code de la langue come préfixe à l'url
      • - Titre du post dans l'url non traduit.
      •  
  • 25. qTranslate [ http://wordpress.org/extend/plugins/qtranslate/ ]
    • Recherche sur le site
      • Elle est supportée pour le contenu traduit. Par contre, les résultats retombent toujours dans la langue de base. Il faut donc retourner dans la langue de notre choix.
    • Flux rss
      • Ils sont traduits.
    • Commentaires
      • Non traduits.
      •  
    • Performance
      • Il m'a l'air assez efficace car le plus gros se passe du coté admin. Tout ce qu'il faut faire à l'affichage c'est de séparer les langues et afficher la bonne version. Il n'y a pas de requêtes dans une autre table non plus.
      •  
  • 26. qTranslate [ http://wordpress.org/extend/plugins/qtranslate/ ]
    • Stockage des données
      • Contrairement à ses homologues, aucune table n'est créée pour le stockage des différentes versions. En fait, il insère des commentaires html qui servent de délimiteurs pour chaque langue dans lequel le texte est traduit.
    •  
    •  
    • Coûts de sortie
      • La désinstallation de ce plugin peut faire mal puisqu'il sauvegarde à même la table des posts. Ainsi, en désinstallant, tous les posts, pages, catégories et tags contiennent toutes les traductions dans le même champ. Il peut devenir hardu, pour un client par exemple, de tout repasser par les contenus pour les modifier ou de payer quelqu'un pour faire le travail.
  • 27. qTranslate [ http://wordpress.org/extend/plugins/qtranslate/ ]
    • Type d'utilisation
        • Site avec traduction 1 pour 1
        • Site semi-bilingue
        • Sous un même domaine ou avec sous-domaines.
  • 28. qTranslate [ http://wordpress.org/extend/plugins/qtranslate/ ]
    • Avantages
    •  
      • Charge le bon fichier .mo selon la langue choisie directement sur le repository de wordpress et ce sans avoir à le télécharger.
      • Traduction des catégories et des tags.
      • On peut faire appel à un site externe (click4translate) en se créant un compte sur leur site. On peut ensuite envoyer des pages et les prix sont en fonctions des langues, de la longueur et du sujet (technique ou non)
    • Inconvénients  
    •  
      • Impossible de traduire le contenu dynamique des autres plugins.
  • 29. Interface
  • 30. Désinstallation
  • 31. WPML Multilingual CMS [ http://wordpress.org/extend/plugins/sitepress-multilingual-cms/ ]
    • Type de traduction
      • Manuelle avec possibilité de payer pour un service de traduction.
      •  
    • Ergonomie de l'interface
        • À l'ajout ou l'édition, on peut décider la langue du billet et c'est une traduction de quel billet via une liste déroulante.
        • Les catégories et les tags sont aussi gérés de la même façon.
        • On peut attitrer une langue ou définir des traductions.
    • Référencement
      • Le code de la langue est ajouté comme préfixe à l'url de base. 
      • le titre du post est dans la langue selectionné.
      • Utilisation avec même domaine, sous-domaine ou domaine différent.
      •  
  • 32. WPML Multilingual CMS [ http://wordpress.org/extend/plugins/sitepress-multilingual-cms/ ]
    • Recherche sur le site
      • Elle est supportée, mais on recherche toujours dans la langue que l'on a sélectionnée.
    • Flux rss
      • Ils sont traduits.
    • Commentaires
      • Non traduits.
      •  
    • Performance
      • Plutôt efficace, il reste le plus possible dans l'esprit de wordpress au niveau du fonctionnement. Par contre, on dirait qu'il vient interférer au niveau des fonctions i18n de wordpress, j'ai eu des problèmes avec les titres de widgets.
      •  
  • 33. WPML Multilingual CMS [ http://wordpress.org/extend/plugins/sitepress-multilingual-cms/ ]
    • Stockage des données
      • Tout est dans la base de donnée. Que ce soit au niveau des données différentes pour chaque langues, aux relations et associations des langues pour chaque item.
    •  
    •  
    • Coûts de sortie
      • La désinstallation de ce plugin peut se faire très bien, puisqu'il n'y a rien à effacer. Par contre on se retrouve avec tous les posts visibles sans association de langue ou de traduction. Malgré que cela peut être long, on peut aussi mettre en brouillon toutes les traductions avant de désinstaller.
  • 34. WPML Multilingual CMS [ http://wordpress.org/extend/plugins/sitepress-multilingual-cms/ ]
    • Type d'utilisation
        • Site avec traduction 1 pour 1
        • Site semi-bilingue
        • Site bilingue sans liaison de contenu.
        • Sous un même domaine, sous-domaines et même domaines différents.
  • 35. WPML Multilingual CMS [ http://wordpress.org/extend/plugins/sitepress-multilingual-cms/ ]
    • Avantages
    •  
      • Installation sous forme de setup et configuration assez simple.
      • On peut faire appel à un site externe (ICanLocalize) en se créant un compte sur leur site. On peut ensuite envoyer des pages ou posts via l'interface d'administration et une fois que la traduction est prête, vous les posts sont ajoutés et prêt à être publiés. Coûte entre 7 et 14 cent le mot.
      • les liens de langue sont simples et esthétiques
    • Inconvénients  
    •  
      • Impossible de traduire le contenu dynamique des autres plugins.
      • Titre des widgets ne se traduisent pas.
  • 36. Installation
  • 37. Traduction professionnelle
  • 38. Liens des langues Édition de billets
  • 39. Transposh Translation Filter [ http://wordpress.org/extend/plugins/transposh-translation-filter-for-wordpress/ ]
    • Type de traduction
      • Semi automatique.
      •  
    • Ergonomie de l'interface
      • Se passe directement sur la page, du côté public.
      • Traduction par phrases.
    •  
    • Référencement
      • Le code de la langue est ajouté comme préfixe à l'url de base. 
      • le titre du post dans l'url est traduit, mais c'est expérimental. Il laisse les accents, les lettres majuscules et la ponctuation. Au moins, on est averti en activant l'option...
      •  
  • 40. Transposh Translation Filter [ http://wordpress.org/extend/plugins/transposh-translation-filter-for-wordpress/ ]
    • Recherche sur le site
      • Elle est supportée, mais on recherche toujours dans la langue que l'on a sélectionnée.
    • Flux rss
      • Ils sont traduits.
    • Commentaires
      • Ils sont traduits.
      •  
    • Performance
      • Semble plutôt efficace quand on teste avec peu de contenu, mais étant donné que toutes les traductions des phrases ou mots sont stockés dans la base de données et remplacés quand on demande une page traduite, je me demande ce que cela peut donner quand il y a beaucoup d'entrées.
      •  
  • 41. Transposh Translation Filter [ http://wordpress.org/extend/plugins/transposh-translation-filter-for-wordpress/ ]
    • Stockage des données
      • C'est le même principe que le gettext de wordpress, mais tout est stocké dans la bd.
    •  
    •  
    • Coûts de sortie
      • La désinstallation de ce plugin n'a aucune incidence sur le contenu, mais il est plutôt impossible d'en extraire les traductions de manière cohérente.
      •  
    • Type d'utilisation
        • Site avec traduction 1 pour 1
        • Sous un même domaine.
    •  
  • 42. Transposh Translation Filter [ http://wordpress.org/extend/plugins/transposh-translation-filter-for-wordpress/ ]
    • Avantages
    •  
      • Traduction du coté publique d'absolument tout le texte affiché, même les plugins.
      • Permission par roôle pour les traductions.
      • Possibilité de traduire tous les contenus automatiquement d'avance via un bouton.
      • Possibilité de cache pour accélérer la performance avec le plugin APC cache
      • Possibilité de backup sur google appengine pour traduction par un humain, mais il faut demander une clé pour la restauration du contenu.
    • Inconvénients  
    •  
      • Pas d'interface pour tout traduire les phrases sur une même page
      • Rajoute un icone avec un lien vers le site du plugin. Rien qu'un petit display:none peut pas régler, mais bon, je préfère avoir le choix de donner crédit ou non.
      • Traduction phrases par phrases dans un popup javascript .
  • 43. Édition et traduction douteuse
  • 44. Multisites
    • Type de traduction
      • Manuelle
      •  
    • Ergonomie de l'interface
      • On reste toujours dans l'interface de Wordpress sans ajouts supplémentaires!
      • Toutefois, pas de liens natifs pour permettre de basculer entre les langues et les traductions. Ceci doit être rajouté via le code.
    •  
    • Référencement
      • Le code de la langue est ajouté comme préfixe à l'url de base. 
      • le titre du post dans l'url est traduit.
      • possibilité de sous-domaines
      •  
  • 45. Multisites
    • Recherche sur le site
      • Propre à chaque site. Toutefois, il existe des plugins de recherche globale, qui incluent tous les sites. Ce peut être intéressant dans ce cas-ci.
    • Flux rss
      • Ils sont propres à chaque sites.
    • Commentaires
      • Ils sont propres à chaque sites ils apparaîtront tel quel.
      •  
    • Performance
      • Aussi performant qu'un site wordpress peut l'être. Aussi, si on décide de pouvoir relier des posts ou des pages via le code, je ne crois pas que cela puisse jouer sur la performance.
      •  
  • 46. Multisites
    • Stockage des données
      • La seule chose qui peut différer d'une installation wordpress standard, c'est l'ajout d'une table de relation.
    •  
    •  
    • Coûts de sortie
      • Pas vraiment applicable puisqu'il s'agit de l2 sites distincts. On peut juste le désactiver en attendant de transférer le contenu vers une autre solution.
      •  
    • Type d'utilisation
        • Site avec traduction 1 pour 1 (mais il faut mettre la main à la pâte)
        • Peut convenir aussi à un site semi-bilingue, mais avec les même problèmes qu'un site 1 pour 1.
        • Surtout adapté pour une solution toute prête pour un site communautaire.
        • Sous un même domaine, sous-domaines.
  • 47. Multisites
    • Avantages
    •  
      • Contrôle total sur les traductions d'absolument tout, surtout des plugins.
    • Inconvénients  
    •  
      • 2 sites à gérer.
      • Pas une solution toute prête pour le 1 pour 1
  • 48. Autres solutions
    • Il y a aussi des astuces d'utiliser des catégories ou des tags (comme fr, en), ou même pour un cms de définir une arborescence avec des pages "parentes" cachées comme fr ou en,  mais compte tenu de l'évolution des plugins, ces solutions sont souvent plus complexes et requièrent d'avantage de connaissances que de simplement installer un plugin efficace comme WPML ou qTranslate.
  • 49. Conclusion
      • Internationalisation des thèmes et plugins.
        • Fonctions i18n et localisation
      • Définir le contexte qui se rapproche le plus de ce que l'on veut développer comme site web.
        • 1 pour 1
        • Semi-bilingue
        • Communautaire
  • 50. Conclusion
      • Faire ressortir ce qui est le plus important à prendre en compte :
        • Type de traduction
        • Ergonomie de l'interface
        • Référencement naturel
        • Recherche sur le site
        • Flux rss
        • commentaires
        • Domaine, sous-domaine, domaines différents.
  • 51. Conclusion
    • Il n'existe pas de solutions parfaites qui couvrent toutes les situations et je n'ai pas la prétention de les connaître toutes, mais si l'on se pose ces questions avant de commencer, on a plus de chance d'arriver plus rapidement et avec moins d'embûches à rendre un site Wordpress bilingue !