Po le batard

cabine-traduction.jpg, oct. 2017
Highest level of concentration ! #photo #ParisWeb

Un truc que j’ai découvert un jour, en jetant un œil à mon installation Dotclear qui fait tourner ce blog, et quelques autres, et plus spécialement aux fichiers de traduction .po et leur version compilée .php, est qu’en fait seuls ceux de la distribution officielle sont compilés au moment de la préparation de chaque version (et donc livrés comme tels) !

Tout ceux des thèmes et plugins tiers restent en l’état, à moins qu’ils ne soient déjà fournis en version compilée — je n’en ai personnellement aucun dans ce cas.

Ça veut dire que toutes ces traductions tierces sont compilées à la volée à chaque fois qu’on affiche une page, essentiellement du côté administration en pratique ; il y a peu de traductions utilisées du côté public du blog.

Les questions qui me viennent aussitôt à l’esprit :

  1. Qu’est-ce que ça coûte en temps de compilation, de s’occuper de ces traductions tierces ?

  2. Ne faudrait-il pas soit gérer un cache des compilations — valable tant que le plugin ou thème en question n’est pas mis à jour — ou laisser tomber la version compilée de la distribution et gérer tout les libellés en mémoire (compilation à la volée) ?

Il y a probablement des mesures à faire ici, surtout en consommation de temps processeur pour la compilation… Si ça se trouve ça se compte en quelques millisecondes et ça ne vaut pas le coup de s’en préoccuper ?

À savoir, pour compiler un fichier de traduction il suffit d’utiliser la commande build-tools/make-l10n.php depuis le répertoire du plugin ou du thème que vous allez publier1.

Pour ma part je viens de rajouter un hook git de pre-commit qui lance la commande idoine dès qu’un commit est effectué dans le dépôt local du plugin ou du thème. C’est mon côté feignasse :-)

PS : Il est bien évident qu’en cas de présence d’une version non compilée, .po, et d’une version compilée, .php, d’un fichier de traduction, alors c’est la version compilée qui sera utilisée en priorité.


  1. Un truc qui pourrait être intégré à l’indispensable pacKman au moment de la création d’un paquet ! ↩︎

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/15483

Haut de page