Dates en Français avec Middleman

Publié dans développement
le

Pendant la refonte de ce site, je suis tombé sur un problème : la traduction des dates formattées via strftime. Et au final, ce n'est pas si compliqué que ça.

Merci à Robert Riemann pour avoir remarqué que je me prenais bien la tête et que c'est au final beaucoup plus simple. J'ai donc mis à jour l'article.

Le soucis

Vous avez mis en place votre petit site propulsé par Middleman et vous vous attaquez au layout. Il y'a de fortes chances que vous ayez quelque chose de ce genre là pour afficher la date de vos articles :

<span class="meta">
  <%= current_article.date.strftime('%a. %e %B %Y') %>
</span>

Ce qui vous affichera Mon. 16 March 2015. Alors c'est bien joli, mais pour un site en Français, ça le fait moyen.

La solution

Il suffit de passer par le module d'internationalisation i18n. Première étape, on l'active dans le fichier de configuration config.rb :

###
# Language related
###

activate :i18n, :mount_at_root => :fr

Ensuite, il ne reste plus qu'à modifier votre template :

<span class="meta">
  <%= I18n.l current_article.date, :format => '%a. %e %B %Y' %>
</span>

Et voilà, vous obtenez enfin le résultat attendu : Lun. 16 Mars 2015 !