Fechas multilingüe in Hugo | Una solución rápida
Índice
Si administras un blog o sitio web multilingüe, como este, con las plantillas de Hugo, probablementequieres traducir también las fechas.
Fechas multilingüe in Hugo: el problema
Actualmente, abril de 2021, Hugo no ofrece un sistema sencillo para las traducciones multilingües para las fechas del día de publicación de los artículos. Por lo tanto, tenemos que hacer un pequeño truco para traducir esas fechas.
Fechas multilingüe in Hugo: la solución
Una solución sencilla es editar los archivos dentro de la carpeta i18n y luego editar el código en las plantillas html.
Estos son los pasos:
- Por primero, en la carpeta i18n de cada idioma, agrega la traducción de cada mes.
Por ejemplo, para español, dentro de es.yaml agrega esto:
- id: January
translation: enero
- id: February
translation: febrero
- id: March
translation: marzo
- id: April
translation: abril
- id: May
translation: mayo
- id: June
translation: junio
- id: July
translation: julio
- id: August
translation: agosto
- id: September
translation: septiembre
- id: October
translation: octubre
- id: November
translation: noviembre
- id: December
translation: diciembre
También acuerdate de agregar lo siguiente en la versión inglés, en el archivo en.yaml (de lo contrario, el mes no será visible en la versión inglés):
- id: January
translation: January
- id: February
translation: February
- id: March
translation: March
- id: April
translation: April
- id: May
translation: May
- id: June
translation: June
- id: July
translation: July
- id: August
translation: August
- id: September
translation: September
- id: October
translation: October
- id: November
translation: November
- id: December
translation: December
-
Luego, en la plantilla html donde deseas mostrar la fecha de publicación pega esto:
{{.Date.Day}} {{i18n .Date.Month}} {{.Date.Year}}
esto funciona porque .Date.Month proporciona el mes específico que se traduce gracias a los archivos en la carpeta i18n.
Por ejemplo, para este sitio, en layouts/_default/single.html reemplacé la siguiente línea:
{{ .PublishDate.Format “2 January 2006” }}
con
{{.Date.Day}} {{i18n .Date.Month}} {{.Date.Year}}