Parece que Jekyll no tiene soporte para internacionalización de forma nativa por lo que cuando se usa un formato de fecha que incluya el nombre del mes1, este aparece en inglés. Existe un plugin de internacionalización, pero parece que no funciona del todo bien, y en general recomiendan hacer un “apaño” con un poco de código Liquid (leído aquí, aquí o aquí)
Mi primera opción fue crear un archivo con los meses en _data/es.yml
de la forma:
y recoger el código Liquid en un include (_includes/fecha.html
):
Esto funcionaba bien para añadir la fecha en cada post, pero no para añadirla en los listados de post, porque extrae la fecha de la página (page.date
). Por lo que añadí otro pedazo de código similar en el mismo include y utilicé las variables fecha_page
y fecha_post
según correspondiera.
En un post:
En un listado de post:
Una solución bastante poco elegante (porque post
aquí no hace referencia directa a los post, si no que es una variable circustancial del for
, podría habersa llamado i
o cualquier otra cosa), pero funciona y resolvía con un include las dos situaciones en las que usaba la fecha.
Finalmente, tras leer aquí una idea de cómo imitar funciones con Liquid en Jekyll, llegué a esta solución. En el lugar donde queramos introducir una fecha en español insertamos {% include fecha.html fecha=page.date %}
, y donde pone page.date
la fecha en cuestión que queremos convertir, que puede ser cualquier variable que contenga una fecha (page.date, post.date, etc.) o una cadena de texto en formato fecha.
Y en _includes/fecha.html
creamos este archivo:
En _data/es.yml
este otro al que he añadido también los días de la semana. Y los ejemplos anteriores quedarían de la forma:
Un post:
Un listado de post:
-
Todo esto es también aplicable para el nombre del día de la semana, solo que en mi caso, no lo estoy usando. ↩