Hazte Online

pon un poco de informática en tu vida

Las fechas en Octopress

Actualización (05 Abr 2013): Nuevo post, Las fechas en Octopress (Archivo)

Cuando empecé a realizar páginas web decidí crear un blog con los problemas que iba teniendo con el fin de no tropezar dos veces en la misma piedra, aunque no le di mucho uso.

Pero ha llegado la hora de cambiar y de poner en funcionamiento un nuevo blog, con el mismo propósito, pero con diseño propio.

Una gema muy popular para desarrollar blogs es Octopress, pero que con la cual hay que tener nociones de Rails. Pero bueno, a lo que vamos, las fechas. Una vez que has seguido el proceso de instalación, el mayor problema que he visto es que las fechas aparecen en completo inglés, y claro, hay que castellanizarlo.

Lo primero es configurar el formato de la fecha. Como ya deberías saber, esto se modifica en el archivo _config.yml. El formato que más me ha gustado es Viernes, 17 Ago 2012

1
date_format: "%A %d %b %Y"

Y para que nos lo castellanice hay que modificar plugins/date.rb y añadir después de

1
2
module Octopress
  module Date

las siguientes constantes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
MONTHNAMES_TR = [nil,
  "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio",
  "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"
]
ABBR_MONTHNAMES_TR = [nil,
  "Ene", "Feb", "Mar", "Abr", "May", "Jun",
  "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"
]
DAYNAMES_TR = [
  "Domingo", "Lunes", "Martes", "Miércoles",
  "Jueves", "Viernes", "Sábado"
]
ABBR_DAYNAMES_TR = [
  "Dom", "Lun", "Mar", "Mié",
   "Jue", "Vie", "Sáb"
]

Y en ese mismo archivo, modificar la función def format_date(date, format) dejándola tal cual sigue:

1
2
3
4
5
6
7
8
9
10
11
12
13
def format_date(date, format)
  date = datetime(date)
  if format.nil? || format.empty? || format == "ordinal"
    date_formatted = ordinalize(date)
  else
    date_formatted = format.gsub(/%a/, ABBR_DAYNAMES_TR[date.wday])
    date_formatted = date_formatted.gsub(/%A/, DAYNAMES_TR[date.wday])
    date_formatted = date_formatted.gsub(/%b/, ABBR_MONTHNAMES_TR[date.mon])
    date_formatted = date_formatted.gsub(/%B/, MONTHNAMES_TR[date.mon])
    date_formatted = date.strftime(date_formatted)
  end
  date_formatted
end

Una vez hecho esto, cuando volvamos a invocar al script rake generate nos generará las fechas correctamente.

Y a seguir!

Comentarios