Nombres de días y meses en español en Emacs org-mode
Espero que esta entrada sea corta, es un tema sencillo que creo que ya
ha aparecido por algún sitio en este blog y que está perfectamente
documentada en multitud de sitios. Sin embargo, alguno de los
iniciandos en el mundo de Emacs y concretamente en el de
org-mode
, me hacen a veces una pregunta tal que: ¿Cómo haces para
que te aparezcan las fechas en español?.
Algunas veces se refieren sólo a hacer que Emacs introduzca la fecha
del día en el texto, y eso es bastante sencillo si utilizamos el
comando date
de GNU/Linux:
C-u M-! date
Ese comando nos devolverá el día y la hora del sistema. Si queremos un formato más específico podemos decírselo acompañándolo de una cadena específica.
C-u M-! date +"%d de %B de %Y"
Ese comando mostrará una fecha del estilo 14 de diciembre de 2018
.
En este modo, la cadena la pone el comando de la consola y la fecha
aparecerá en nuestro documento con la misma forma que la devuelva
bash
. Si lo utilizamos frecuentemente, podríamos automatizarlo un
poco con una función de elisp
en nuestra configuración, por ejemplo:
(defun insert-current-date () (interactive) (insert (shell-command-to-string "echo -n $(date +%Y-%m-%d)")))
Podemos utilizar, el comando del sistema, también podríamos aprovechar
las facilidades que nos da el paquete calendar
para trabajar con
fechas:
(require 'calendar)
(defun insdate-insert-current-date (&optional omit-day-of-week-p) "Insertar la fecha del día con el formato local establecido. Añadiendo una opción se puede omitir el día de la semana de la cadena devuelta." (interactive "P*") (insert (calendar-date-string (calendar-current-date) nil omit-day-of-week-p)))
En mi caso, esa función me devolverá una cadena del estilo
2018-12-14
. ¿Por qué lo devuelve en formato ISO? Pues básicamente
porque es el formato que tengo configurado es ese.
'(calendar-date-style (quote iso))
También se podría sustituir ese iso
, que ordena «año - mes - día»
por, european
que ordena en «día - mes - año», o american
que
ordenará como «mes - día - año».
Ajustes del calendario
Vale, vale... ¿pero cómo haces para que el calendario te ponga los nombres de meses y días de la semana en español?
Sencillo: en mi init-el
tengo configuradas las siguientes variables para
«hispanizar» el nombre de meses y días.
'(calendar-day-header-array ["Do" "Lu" "Ma" "Mi" "Ju" "Vi" "Sa"]) '(calendar-day-name-array ["domingo" "lunes" "martes" "miércoles" "jueves" "viernes" "sábado"]) '(calendar-month-abbrev-array ["Ene" "Feb" "Mar" "Abr" "May" "Jun" "Jul" "Ago" "Sep" "Oct" "Nov" "Dic"]) '(calendar-month-name-array ["enero" "febrero" "marzo" "abril" "mayo" "junio" "julio" "agosto" "septiembre" "octubre" "noviembre" "diciembre"]) '(calendar-week-start-day 1)
Se puede apreciar que hay dos arrays por cada grupo de nombres, los abreviados y los largos. No hay que explicar mucho más1.
Además, me gustaría llamar la atención sobre la línea
'(calendar-week-start-day 1)
que establece que la semana comience en
el día 1 (los lunes); por defecto comienzan el día 0 (el domingo).
Por eso, también, los arrays de los nombres comienzan por el
domingo y no por el lunes como estamos acostumbrados por estas
latitudes.
Conclusiones
Tener bien ajustadas los formatos de fecha en nuestro init.el
hará
que nuestro trabajo, con org-mde
, con nuestra agenda y nuestro
calendario sea más suave.
Footnotes:
Sólo recordar que en español, efectivamente, el nombre de los días y los meses se escriben en minúscula. Alguien ya me ha llamado la atención por las mayúsculas en algunos de los arrays, pero entiendo que esos son abreviaturas y por tanto la falta ortográfica sería la carencia del «.» al final y no la mayúscula.
Comentarios