Sabir

S’il y a bien un sujet qui me titille depuis quelques années avec Dotclear c’est la gestion multilangue au sein d’un même blog.

Autant il est facile de créer plusieurs blogs ayant chacun sa propre langue qui peut être différente des autres, autant la gestion de plusieurs langues au sein d’un même blog reste sensiblement compliquée ; et compliquée à plusieurs raisons :

  1. Quelle que soit la langue du contenu affiché c’est la langue définie pour le blog qui s’impose quand on affiche toute l’interface publique (navigation, formulaire de commentaire, …).
  2. On a aucun moyen de traduire facilement un billet en plusieurs langues — c’est la raison pour laquelle j’ai codé le plugin rosetta (qui n’est d’ailleurs pas fini) qui permet de lier entre eux les différentes traductions d’un billet et en particulier d’afficher, si réglé en ce sens, la bonne traduction en fonction de la langue configurée dans le navigateur du lecteur.

On va dire que pour le 2e point, même s’il reste encore un peu de travail, rosetta fonctionne suffisamment bien et il me semble même que Tristan l’utilise encore sur son blog (ou à tout le moins l’a utilisé pas mal pendant quelque temps).

Reste le 1er point et j’ai d’ailleurs ouvert un ticket en ce sens.

Hier, j’ai commencé à remettre l’ouvrage sur l’établi, en mettant en place une idée qui m’est venue pour tenter de gérer ça et je dois dire que mes premiers tests sont assez encourageants. Regardez ci-dessous le formulaire de commentaire de la page d’un billet en français, en anglais et en allemand :

Ça fonctionne plutôt pas mal même s’il reste encore à faire quelques modifications dans le code HTML pour préciser que toute la page est dans la langue du billet — à ce jour c’est uniquement l’élément article qui est doté d’un attribut qui précise la langue de son contenu — et pas dans la langue définie pour le blog. Rien de très compliqué, il suffit de modifier les templates (soit dans les jeux, soit dans les thèmes).

Et en y réfléchissant on peut même faire ça de façon transparente en gérant correctement la balise qui retourne la langue du blog, en fournissant celle du contexte si elle précisée.

J’applique ça au contexte du billet seul, il faudrait aussi faire de même pour les pages seules, et également quand on liste tous les billets d’une langue donnée sur la page d’accueil. Les autres contextes peuvent produire un mélange de langue (côté contenu) et c’est alors la langue définie pour le blog qui l’emporte.

Il reste cela dit quelques écueils :

  1. Même si les traductions sont plutôt satisfaisantes, en particulier pour les langues courantes utilisées avec Dotclear, il reste encore pas mal de locutions non traduites et on arrive alors vite à un sabir mélangeant la langue du billet et de l’anglais.
  2. Certains plugins permettent de préciser du contenu textuel côté interface d’administration — je pense en particulier aux widgets, et il n’est pour l’instant pas prévu de permettre de saisir des traductions pour chacun de ces textes ; on a alors comme dans le point précédent un sabir qui mélange aussi la langue du billet et la langue choisie pour la saisie des textes en question.

On peut ainsi potentiellement avoir 3 langues affichées sur une page, la langue du billet, l’anglais pour les traductions manquantes et la langue choisie pour les widgets, par exemple, qui peut être différente de celle du billet.

Pour le 1er point, il faudrait idéalement avancer du côté de Crowdin (qui permet de compléter les traductions). Rien de compliqué ici à part trouver les bonnes volontés :-)

Pour le second par contre, ça va demander un peu plus que de la bonne volonté ! Il va peut-être falloir réfléchir à un système qui permette, à l’instar de rosetta, de fournir un texte traduit en plusieurs langues, puis gérer le rendu de ce texte en fonction de la langue définie pour le contexte courant.

J’ai créé une branche locale sur mon dépôt Dotclear, sur mon Mac, et je n’ai pour l’instant pas l’intention de pousser ça vers les dépôts Dotclear/Github, à moins que ça n’intéresse l’un de vous et dans ce cas je pousserai.

Sinon, si vous avez des idées à ce sujet, elles sont les bienvenues !

Les lignes qui bougent

Le chat, nov. 2021

Fin d’année mouvementée, et encore, je ne parle pas du nouveau variant sud-africain qui risque de donner un grand coup de pied dans la fourmilière du monde d’avant ! Heureusement que j’ai eu droit à la 3e dose, récemment, qui m’a bien secoué d’ailleurs — genre 36 heures passées dans une lessiveuse  […]

Lire la suite

À vouloir aller plus vite que la musique

J’avais profité de la toute nouvelle version de jQuery UI, dont le développement à l’air d’être redémarré sérieusement, mais j’ai eu tort de l’intégrer aussi vite, avec la version 1.13.0 sans la tester sérieusement ! Cette bibliothèque nous avait déjà posé des problèmes il y a quelques mois avec un  […]

Lire la suite

Sauf erreur

Il y a quelques mois j’écrivais ceci : Hier ou avant-hier, j’ai refait une simulation pour ma future retraite, afin de voir les différents scénarios et j’ai réalisé que j’aurai les trimestres nécessaires au 1er avril 2024 alors que j’avais en tête le 1er juin, une fois passé mon 62e anniversaire : «  […]

Lire la suite

Piégé

Code Javascript, sept. 2015

Depuis longtemps déjà j’utilise l’extension jshint dans mes éditeurs (Sublime Text et Visual Code Studio) pour me guider sur le développement dans ce langage ; il faut dire qu’historiquement je n’étais vraiment pas du tout à l’aise avec lui, même si depuis j’ai acquis pas mal d’expérience — il m’en  […]

Lire la suite

Haut de page