Nicolas Friedli

Dates en français dans Hugo

Hugo beaucoup de qualités, notamment dans sa gestion du multilinguisme. Malheureusement, la gestion des dates dans d’autres langues que l’anglais n’est pas fournie par défaut.

C’est une question récurrente sur le forum, anglophone. On trouve des trace de la solution que je propose dans ici: Dates: only in english? ou là: Have the date displayed in french. Je me dis que c’est une bonne idée d’en parler… en français.

Version avec partial

Un bout de code à copier simplement dans un fichier, par exemple layout/partials/date.html:

{{ $month_names := slice "janvier" "février" "mars" "avril" "mai" "juin" "juillet" "août" "septembre" "octobre" "novembre" "décembre" }}
{{ $month := sub .Date.Month 1 }}

<time datetime="{{ .Date.Format "2006-01-02"}}">
  {{ .Date.Day }}{{ if eq .Date.Day 1 }}er{{end}}&nbsp;{{ index $month_names $month }} {{ .Date.Year }}
</time>

Pas besoin de beaucoup d’explication:

Logiquement, on appelle la date dans les templates par:

{{ partial "date" . }}

Version avec data

Le site d’Hugo propose de gérer les dates en d’autres langues en utilisant un fichier data. C’est techniquement plus élégant.

C’est probablement plus pertinent dans le cas où il faudrait gérer plusieurs langues. Pour plus d’infos, en anglais: Customize Dates.

Sur ce site qui n’est qu’en français, je conserve ma première méthode.

À propos des formats de date

Les bonnes pratiques Opquast sont claires: les dates sont présentées dans des formats explicites.

Je préfère nettement le mois en toutes lettres au mois en abrégé. Je n’ai aucune hésitation à afficher les années en 4 chiffres (et jamais 2). Reste à choisir sur le nombre du jour est précédé d’un 0 quand il n’a qu’un chiffre (s’il comporte toujours 2 chiffres, j’éviterais le er pour le premier jour du mois).

/ Nicolas Friedli