Toutes mes excuses

Bon ok, faut admettre, j’ai merdé ! J’aurais dû…! Et je l’ai pas fait…! Et pourtant, je ne le sais que trop bien : reculer, c’est assez moyen ballot en guise de stratégie d’autant que y’a un moment, toujours, où il faut bel et bien se décider à sauter… Et là, forcément, le trou s’est agrandi puisque me voici maintenant avec un fichier de 1000 lignes sur les bras, fichier que je me suis bêtement abstenu par flemme et procrastination maladive de penser d’entrée international histoire d’aller vite et à l’essentiel alors même que je vous ai fait la belle et grande promesse, juré, craché et tout et tout que cette extension avait des prétentions carrément planétaires.

Alors, bon, quand même : pour me dédouaner un chouia, faut bien admettre aussi que si la traduction de la page d’options s’opère les doigts dans le nez avec Poedit, il en va tout autrement pour notre plugin tinyMCE.

Mais bon, quand y faut, y faut !

Fort heureusement, le codex de WordPress a l’amabilité ici de nous détailler la procédure à suivre. Nonobstant, quelque chose me murmure à l’oreille que, si vous êtes en train de lire ces lignes, c’est aussi pour éviter d’aller chercher ailleurs le pourquoi du comment. Et donc, je vous résume vite fait la chose :

  • En premier lieu, il nous faut rédiger un fichier php dédié dans lequel, pour vous la jouer simple, nous créons un tableau associant des mots-clés aux différents éléments de textes à traduire.
  • Ensuite, mais ça on en a pris l’habitude, il nous faut remplir le formulaire WordPress en trois exemplaires dûment tamponnés par les autorités administratives autorisées et compétentes : autrement dit poser sur le hook mce_external_languages un appel à une fonction qui renverra une string issue de notre tableau…
  • Last but not least, dans notre fichier javascript admin/text-floating-image-tinyMCE.js, nous devons songer à remplacer toutes les chaines à traduire par un appel à la fonction getlang() de tinyMCE avec les paramètres qui vont bien.
  • Et enfin, il nous faut créer à partir de Poedit les fichiers de langues locaux…
Appel à la localisation

Commençons donc par le commencement.

Dans le dossier languages, nous créons un fichier text-floating-image-tinyMCE-locale.php dans lequel nous glissons les lignes suivantes :


Pour les petits que leur curiosité galopante rendra grands, voici un aperçu de la chaîne renvoyée, laquelle constitue de fait un bout de javascript :

Formalités

Plions nous sans rechigner aux exigences de WordPress et enregistrons la fonction text_floating_image_tinyMCE_languages sur le hook mce_external_languages. Retour donc dans la fonction define_admin_hooks() de includes/class-text-floating-image.php :


Et un saut de plus dans admin/class-text-floating-image-admin.php pour finaliser la procédure :

Ultimes corrections

À titre documentaire, je vous donne le code rectifié traduit prêt à l’emploi du fichier admin/text-floating-image-tinyMCE.js même si, je n’en doute pas une seconde et, pour parler franchement, j’en suis intimement persuadé-sûr-convaincu,  vous aviez bien évidemment d’ores et déjà et par vous-mêmes apporté les corrections nécessaires :

Poedit

Cela ne vous aura pas échappé sans pour autant vous surprendre : notre pop-up s’exprime désormais en un anglais de cuisine qu’on jurerait qu’il a été pensé par un français…

Nous voilà bien avancés, me direz vous !

Eh ben, oui, justement, nous approchons du but et, si l’explication qui s’en vient maintenant peut sembler un peu longuette aux impatients, la marche à suivre qu’elle va s’efforcer de détailler l’est en fait beaucoup moins :

  • Or donc, pour celles et ceux qui n’en disposeraient pas déjà, il vous faut vous munir subito presto voire même là maintenant tout de suite et sans plus tarder de Poedit.
  • Et puisque vous êtes au rayon des téléchargements, rendez-vous donc ici pour vous saisir du fichier Blank-WordPress.pot généreusement mis à notre disposition par un expert de la chose. Vous renommez la chose en text-floating-image.pot et vous la rangez précautionneusement aux côtés de text-floating-image-tinyMCE-locale.php dans le répertoire languages prévu à cet effet par notre très cher boilerplate.
  • Une fois Poedit installé et lancé, cliquez sur Créer une nouvelle traduction et naviguez jusqu’à votre fichier fraîchement débarqué languages/text-floating-image.pot.
  • Faites OK pour valider le français proposé par défaut comme langue de traduction.

text-floating-image-poedit

  • Poedit vous fait alors part de sa déconvenue en vous signalant le plus aimablement du monde qu’il n’y a aucune traduction et que ma foi ce n’est pas courant.
  • Qu’à cela ne tienne : cliquez donc pour commencer sur le bouton Enregistrer de la barre d’outils et sauvegardez votre non-travail actuel dans le dossier languages sous le nom de text-floating-image-fr_FR.po.
  • Cliquez ensuite sur le bouton Mettre à jour dans la barre d’outils en haut.
  • Et là, ô miracle, il ne vous reste plus qu’à assurer la traduction dans notre belle langue des expressions anglaises promptement listées.
  • Votre mission s’achève naturellement en enregistrant votre travail et vous n’avez plus alors qu’à aller contempler béatement le résultat avec la satisfaction du travailleur fier de son ouvrage…

Bon, il me faut quand même vous signaler que cette manière d’employer Poedit n’est pas des plus honnêtes puisque la traduction d’un thème ou d’une extension ex-nihilo requiert normalement la version Pro, laquelle s’achète au jour d’aujourd’hui moyennant la modique somme de 22,57€. Nous avons contourné les limitations de la version gratuite en partant d’un fichier .pot vide mais je ne doute pas que vous aurez à cœur de vous acquitter de la licence dès lors que la commercialisation de vos propres travaux vous aura rapporté votre premier million…

En guise de non-conclusion

Ben vi, vous pourriez croire que nous en avons fini. Mais non…

Il nous reste encore un détail à régler : en écologiste forcené que je suis, j’ai pris l’habitude, suivant l’expression consacrée, de laisser les lieux que je quitte dans un état proche de celui où je les ai trouvé à mon arrivée. Pour ne point contrevenir à cette règle de vie, il me reste à assurer l’effacement de toutes les traces introduites par l’extension lorsqu’au final, l’utilisateur, déçu-dégoutté-pas-content-mais-c’est-son-droit, prend la décision radicale de la supprimer.

Nous verrons comment procéder dans le prochain et dernier chapitre de cette longue aventure…