Humeurs libres

J'avais perdu mon latin!

Je commençais à désespérer de trouver comment régler un irritant dans mon installation Eleventy et son gabarit blog de base. C'était un détail vous me direz, je trouvais moi, que c'était comme un super bouton sur le nez d'un adolescent un vendredi soir de sortie.

Le mois des dates de mon blog apparaissaient en anglais.

On les avait littéralement en pleine face dès qu'on arrivait sur le site. Rien qui soit fonctionnel. Rien qu'un élève du primaire n'aurait pu décoder, mais juste une belle indication sur l'incompétence de l'auteur du blog à présenter quelque chose de simplement correct. On a sa fierté quand même.

Ne soyons pas avares, partageons la chose pour ceux que ça pourrait intéresser. Il suffit de faire deux petites corrections dans un fichier javascript: _config/filters.js.

Parmi les premières lignes du fichier, on trouvera celles-ci. Il n'y a qu'à ajouter .setLocale('fr') juste avant .toFormat aux deux endroits. Et le problème est réglé. Bien entendu, c'est bon pour n'importe quelle langue.

En lisant quelques pages de code (dont filters.js que j'avais préalablement sauté), j'ai compris que le système utilisait Luxon. J'ai fait une recherche rapide sur leur site et il n'y avait plus qu'à modifier mes deux occurrences.

export default function(eleventyConfig) {
	eleventyConfig.addFilter("readableDate", (dateObj, format, zone) => {
		// Formatting tokens for Luxon: https://moment.github.io/luxon/#/formatting?id=table-of-tokens
		return DateTime.fromJSDate(dateObj, { zone: zone || "utc" }).setLocale('fr').toFormat(format || "dd LLLL yyyy");
	});

	eleventyConfig.addFilter("htmlDateString", (dateObj) => {
		// dateObj input: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string
		return DateTime.fromJSDate(dateObj, { zone: "utc" }).setLocale('fr').toFormat('yyyy-LL-dd');
	});

En espérant que ça puisse aider quelqu'un. J'en doute, mais qui sait?