Comment rendre WordPress bi-directionnel ?

September 30, 2009

Submitted by: Fayçal

Category: Computers, Web & Design

504 views

Suite à la demande de Simpldespry, je suis entrain d’essayer de trouver une solution sous forme de plugin - dans un premier temps qui nécessite zéro modification dans le thème et le css - qui sera capable d’adapter automatiquement le contenu des posts avec la bonne direction selon le sens d’écriture de la langue utilisée : de gauche à droite (Left To Right, LTR) ou de droite à gauche (Right To Left, RTL).

J’entrerai pas dans les détails, les curieux peuvent jeter un œil sur le code source, c’est plein d’expressions régulières complexes (oui je sais, j’ai toujours tendance à compliquer les choses…)
Any way, et comme le même poste pour mélanger par exemple l’arabe et le français, grosso modo le plus simple que j’ai trouvé c’est de boucler sur le contenu des <div> et <p>, je calcule le nombre des mots RTL et LTR puis j’applique la propriété dir= “rtl|ltr” selon le pourcentage de la direction qui dépasse 50% du contenu.

Pour les titres ou les commentaire qui peuvent contenir un texte brute, toujours avec la même logique, je les entoure directement avec un <div dir=”rtl|ltr”></div>

Voila donc ce que ça donne avec le thème par défaut de WordPress

wp-direction-detector

Si votre thème adopté respecte les standards (ce qui n’est pas le cas du thème Agfix v3 de Fahdos 8O ), ce plugin marchera inchallah pour vous (comme prévu, ça n’a pas marché avec notre thème de fahdos :cry: )

C’est en version beta, j’ai besoin de le tester sur d’autres thèmes avec d’autres css complexes pour encore le perfectionner… vos feedbacks sont les bienvenus :)

Pour télécharger le plugin: http://wordpress.org/extend/plugins/wp-direction-detector/

If you liked this, please share it at your favorite sites:
  • Digg
  • Reddit
  • del.icio.us
  • Wikio
  • Facebook
  • Google
  • Technorati
  • TwitThis
  • MySpace
  • N4G
  • NewsVine
  • StumbleUpon
  • BlogMemes
  • Blogsvine
  • blogtercimlap
  • DotNetKicks
  • eKudos
  • Faves
  • Fleck
  • Scoopeo
  • Socialogs
  • Upnews
  • Yigg
  • E-mail this story to a friend!
  • Mixx

5 Responses :D Pretty Cool

  • :cry:
    ça marche pas! et en plus ça a foutu la pagaille dans mes permaliens!
    Is there a doctor in the house?

  • zut ! :(
    si ça marche meme pas avec le theme par defaut c’est que ça vient de la version de wordpress utilisée. moi j’ai fait mes premiers tests sur la dernière version 2.8.4 de wordpress avec le theme par defaut version 1.6
    jbedt l’rassi sda3 daba je dois telecharger les anciens versions 2.7 & Co pour le rendre compatible :o nandatebayooooooo :lol:

  • Pas du tout! Moi aussi j’utilise la même version que toi
    Sinon, essaye de changer la structure des permaliens pour voir si ça a une incidence

  • je viens de le tester sur 2.7.1 et ça marche impec http://www.onlineimagehost.com/uploads/b7c7748c54.png

    dans ce cas, le probleme vient surement d’un conflit avec un autre plugin, comme ça fout la pagaille dans agafix aussi, je vais voir quel plugin ça casse afin d’essayer d’eviter ça…

    Merci pour le beta test simpldespry, je te tiens au courant quand je trouverai le temps pour une nouvelle correction… en attendant j’ai trouvé cet autre plugin http://wordpress.org/extend/plugins/wp-rtl/screenshots/ qui peut t’aider avec le contenu des posts… malheureusement les titres et les commentaires vont rester pareils… et c’est justement le but de mon plugin, automatiquement adapter la direction des posts, titres et commentaires sans rien changer au template ou code html du contenu…
    a+

  • bon je crois trouver d’ou vient le probleme:
    en fait ce plugin agit sur les fonctions the_title(), get_the_title(), the_content() et comment_text() qui sont utilisées dans les themes.

    si par exemple the_title() va retourner “titre_quoi” sans le plugin, avec le plugin ça va plutot retourner “<div dir=’tr’>titre_quoi</div>”
    et si c’etait “عنوان ماذا”, avec le plugin ça sera “<div dir=’rtl’>عنوان ماذا</div>”

    le probleme, le big probleme que j’ai pas anticipé car c’etait pas le cas avec le theme par defaut de wordpress, c’est quand on utilise la fonction the_title() à l’interieur d’un attribut html comme <img alt=”<?php the_title(); ?>” … />
    vous pouvez imaginer un peu d’ou vient la pagaille car on aura ds ce cas <img alt=”<div dir=”rtl”>titre_quoi</div>”

    pour contourner ça, j’ai ajouté ds les settings la possibilité de desactiver le plugin uniquement pour les titres par exemple (comme ça on pourra tjr s’en servir pour les commentaires et le contenu des posts) http://s.wordpress.org/extend/plugins/wp-direction-detector/screenshot-2.png
    et si qlq’un veut tjr utiliser cette option pour les titres, je propose de nouvelles fonctions pour le theme (the_directed_title() et get_the_directed_title()) à utiliser en dehors des attributs…

    bref, une intervention sur le theme est devenu necessaire car je peux jamais savoir comment les gens vont utiliser les fonctions wordpress ds leurs themes…
    le but de ce plugin etait justement ne rien changer au theme, je crois que je vais laisser tomber son dev car je crois que la creation d’un nouveau css pour le rtl est largement suffisante et plus simple http://codex.wordpress.org/Right_to_Left_Language_Support

Leave a Reply

:D :) :cry: :( 8O :twisted: :!: :vangry: :XO: :up: ;) :mrgreen: :halo: :kiss: :roll: :? 8) :evil: :oops: :| :?: :x :$: