PlanDuSite ModificationsRécentes Nouvelles SectionElisp CommentFaire

CalendarLocalization

Here are ways to localize CalendarMode to display day names, month names and holidays.

The Basics

As of GnuEmacs 23 the following code will make CalendarMode use the European style of dates in the diary and display:

    (add-hook 'calendar-load-hook
              (lambda ()
                (calendar-set-date-style 'european)))

In previous versions of GnuEmacs of the following incantations were necessary:

    (european-calendar) 

or

    (setq european-calendar-style 't)

Localized Day and Month Names

Catalan

Unfortunately, if you use the long day names, their 2-letter abbreviation will always be “di” :-)

   (setq
    calendar-week-start-day 1
    ;; calendar-day-name-array ["diumenge" "dilluns" "dimarts" "dimecres" "dijous" "divendres" "dissabte"]
    calendar-day-name-array ["dg" "dll" "dm" "dx" "dj" "dv" "ds"]
    calendar-month-name-array ["gener" "febrer" "març" "abril" "maig" "juny" "juliol" "agost" "setembre" "octubre" "novembre" "desembre"]
   )

Chinese

Here is how to display the ‘celestial-stem’ (天干) and the ‘terrestrial-branch’ (地支) in Chinese:

    (setq chinese-calendar-celestial-stem
          ["甲" "乙" "丙" "丁" "戊" "己" "庚" "辛" "壬" "癸"]
          chinese-calendar-terrestrial-branch
          ["子" "丑" "寅" "卯" "辰" "巳" "午" "未" "申" "酉" "戌" "亥"])

Dutch

    (setq calendar-week-start-day 1
          calendar-day-name-array
          ["zondag" "maandag" "dinsdag" "woensdag" 
           "donderdag" "vrijdag" "zaterdag"]
          calendar-month-name-array
          ["januari" "februari" "maart" "april" "mei" 
           "juni" "juli" "augustus" "september" 
           "oktober" "november" "december"])

Finnish

   (setq calendar-week-start-day 1
         calendar-day-name-array
           ["sunnuntai" "maanantai" "tiistai" "keskiviikko"
            "torstai" "perjantai" "lauantai"]
         calendar-month-name-array
           ["tammikuu" "helmikuu" "maaliskuu" "huhtikuu" "toukokuu" 
            "kesäkuu" "heinäkuu" "elokuu" "syyskuu"
            "lokakuu" "marraskuu" "joulukuu"])

French

   (setq calendar-week-start-day 1
          calendar-day-name-array ["Dimanche" "Lundi" "Mardi" "Mercredi"
                                   "Jeudi" "Vendredi" "Samedi"]
          calendar-month-name-array ["Janvier" "Février" "Mars" "Avril" "Mai"
                                     "Juin" "Juillet" "Août" "Septembre"
                                        "Octobre" "Novembre" "Décembre"])

German

First, we know that the week starts with Monday, and we need German weekday and month names.

    (setq calendar-week-start-day 1
          calendar-day-name-array ["Sonntag" "Montag" "Dienstag" "Mittwoch"
                                   "Donnerstag" "Freitag" "Samstag"]
          calendar-month-name-array ["Januar" "Februar" "März" "April" "Mai"
                                     "Juni" "Juli" "August" "September"
                                     "Oktober" "November" "Dezember"])

Hungarian

   (setq calendar-week-start-day 1
      calendar-day-name-array
       ["vasárnap" "hétfő" "kedd" "szerda"
        "csütörtök" "péntek" "szombat"]
      calendar-month-name-array
        ["Január" "Február" "Március" "Április" "Május" "Június"
         "Július" "Augusztus" "Szeptember" "Október" "November" "December"])

Italian

    (setq calendar-week-start-day 1
          calendar-day-name-array ["Domenica" "Lunedì" "Martedì" "Mercoledì" 
                                   "Giovedì" "Venerdì" "Sabato"]
          calendar-month-name-array ["Gennaio" "Febbraio" "Marzo" "Aprile" "Maggio"
                                     "Giugno" "Luglio" "Agosto" "Settembre" 
                                     "Ottobre" "Novembre" "Dicembre"])

Portuguese

    (setq calendar-week-start-day 0
          calendar-day-name-array ["Domingo" "Segunda" "Terça" "Quarta" 
                                   "Quinta" "Sexta" "Sábado"]
          calendar-month-name-array ["Janeiro" "Fevereiro" "Março" "Abril"
                                     "Maio" "Junho" "Julho" "Agosto"
                                     "Setembro" "Outubro" "Novembro" "Dezembro"])

Russian

    (setq calendar-week-start-day 1
          calendar-day-name-array ["Вс" "Пн" "Вт" "Ср" "Чт" "Пт" "Сб"]
          calendar-month-name-array ["Январь" "Февраль" "Март" "Апрель" "Май" 
                                     "Июнь" "Июль" "Август" "Сентябрь"
                                     "Октябрь" "Ноябрь" "Декабрь"])

Spanish

Week starts with Monday, use also spanish weekday and month names. Editor specially dislikes Jueves. :)

    (setq calendar-week-start-day 1
          calendar-day-name-array ["Domingo" "Lunes" "Martes" "Miércoles"
                                   "Jueves" "Viernes" "Sábado"]
          calendar-month-name-array ["Enero" "Febrero" "Marzo" "Abril" "Mayo"
                                     "Junio" "Julio" "Agosto" "Septiembre"
                                     "Octubre" "Noviembre" "Diciembre"])

Swedish

See sv-kalender.el

Norwegian

See calendar-norway.el

Localized National Holidays

Chinese

Localized, national holidays, lunar/solar term based holidays, highlight holidays based on priority, show horoscope/zodiac info, etc. See cal-china-x.el.

Modified version of the above using traditional Chinese characters (plus some nit picks): cal-china-x.el

Korean

There is a package, cal-korea-x that support Korean lunar calendar, and display names for months. See cal-korea-x.

Danish

See Soren’s page on Github

Finnish

See suomalainen-kalenteri.

French

Lisp:french-holidays.el

German

(setq solar-n-hemi-seasons
      '("Frühlingsanfang" "Sommeranfang" "Herbstanfang" "Winteranfang"))

(setq holiday-general-holidays
      '((holiday-fixed 1 1 "Neujahr")
        (holiday-fixed 5 1 "1. Mai")
        (holiday-fixed 10 3 "Tag der Deutschen Einheit")))

;; Feiertage für Bayern, weitere auskommentiert
(setq holiday-christian-holidays
      '((holiday-float 12 0 -4 "1. Advent" 24)
        (holiday-float 12 0 -3 "2. Advent" 24)
        (holiday-float 12 0 -2 "3. Advent" 24)
        (holiday-float 12 0 -1 "4. Advent" 24)
        (holiday-fixed 12 25 "1. Weihnachtstag")
        (holiday-fixed 12 26 "2. Weihnachtstag")
        (holiday-fixed 1 6 "Heilige Drei Könige")
        (holiday-easter-etc -48 "Rosenmontag")
        ;; (holiday-easter-etc -3 "Gründonnerstag")
        (holiday-easter-etc  -2 "Karfreitag")
        (holiday-easter-etc   0 "Ostersonntag")
        (holiday-easter-etc  +1 "Ostermontag")
        (holiday-easter-etc +39 "Christi Himmelfahrt")
        (holiday-easter-etc +49 "Pfingstsonntag")
        (holiday-easter-etc +50 "Pfingstmontag")
        (holiday-easter-etc +60 "Fronleichnam")
        (holiday-fixed 8 15 "Mariae Himmelfahrt")
        (holiday-fixed 11 1 "Allerheiligen")
        ;; (holiday-float 11 3 1 "Buss- und Bettag" 16)
        (holiday-float 11 0 1 "Totensonntag" 20)))

Irish

To add a few key Irish public holidays:

(setq  holiday-irish-holidays 
       '((holiday-float 5 1 1 "May Day")
         (holiday-float 6 1 1 "June Bank Holiday")
         (holiday-float 8 1 1 "August Bank Holiday")
         (holiday-float 10 1 -1 "October Bank Holiday")
         (holiday-fixed 12 26 "St. Stephen's Day")))

Japanese

See japanese-holidays.el.

Here is my calendar configuration. – rubikitch

(require 'calendar)
(setq  number-of-diary-entries 31)
(define-key calendar-mode-map "f" 'calendar-forward-day)
(define-key calendar-mode-map "n" 'calendar-forward-day)
(define-key calendar-mode-map "b" 'calendar-backward-day)
(setq mark-holidays-in-calendar t)
;; (install-elisp "http://www.meadowy.org/meadow/netinstall/export/799/branches/3.00/pkginfo/japanese-holidays/japanese-holidays.el")
(require 'japanese-holidays)
(setq calendar-holidays
      (append japanese-holidays local-holidays other-holidays))
(setq calendar-weekend-marker 'diary)
(add-hook 'today-visible-calendar-hook 'calendar-mark-weekend)
(add-hook 'today-invisible-calendar-hook 'calendar-mark-weekend)

Swiss

;; Holidays
; Swiss national holidays
(setq holiday-other-holidays 
      '((holiday-fixed 1 1 "Neujahr")
	(holiday-fixed 1 2 "Berchtoldstag")
        (holiday-easter-etc -2 "Karfreitag")
        (holiday-easter-etc 1 "Ostermontag")
        (holiday-easter-etc 39 "Auffahrt")
	(holiday-easter-etc 50 "Pfingstmontag")
        (holiday-fixed 5 1   "Tag der Arbeit") 
        (holiday-fixed 8 1  "Nationalfeiertag") 
        (holiday-fixed 12 25 "Weihnachten")
	(holiday-fixed 12 26 "Stephanstag")))

Ukrainian

Lisp:ukrainian-holidays.el

Dutch

;; Dutch holidays (Nederlandse feestdagen)
;; Because there are dupicates with holiday-general-holidays and lists,
;; I disable almost all other holiday lists.
(setq holiday-other-holidays
      '((holiday-fixed 1 1 "Nieuwjaarsdag")
        (holiday-fixed 1 6 "Driekoningen")
        (holiday-fixed 2 14 "Valentijnsdag")
        ;; (holiday-fixed 4 1 "Één April")
        (holiday-fixed 4 30 "Koninginnedag")
        (holiday-fixed 5 1 "Dag van de Arbeid")
        (holiday-fixed 5 4 "Dodenherdenking")
        (holiday-fixed 5 5 "Bevrijdingsdag")
        (holiday-fixed 10 4 "Dierendag")
        (holiday-fixed 10 31 "Halloween")
        (holiday-fixed 11 11 "Sint Maarten")
        (holiday-fixed 12 5 "Sinterklaas")
        (holiday-fixed 12 25 "Eerste kerstdag")
        (holiday-fixed 12 26 "Tweede kerstdag")
        (holiday-fixed 12 31 "Oudejaarsdag")
        ;; Feestdagen gerelateerd aan Pasen
        (holiday-easter-etc -49 "Carnaval")
        (holiday-easter-etc -48 "Carnaval")
        (holiday-easter-etc -47 "Carnaval")
        (holiday-easter-etc -2 "Goede Vrijdag")
        (holiday-easter-etc 0 "Eerste Paasdag")
        (holiday-easter-etc +1 "Tweede Paasdag")
        (holiday-easter-etc +39 "Hemelvaart")
        (holiday-easter-etc +49 "Eerste Pinksterdag")
        (holiday-easter-etc +50 "Tweede Pinksterdag")
        ;; Overige feestdagen met een variabele datum
        (holiday-float 5 0 2 "Moederdag")
        (holiday-float 6 0 3 "Vaderdag")
        (holiday-float 9 2 3 "Prinsjesdag")))
(setq holiday-general-holidays nil)
(setq holiday-christian-holidays nil)
(setq holiday-hebrew-holidays nil)
(setq holiday-islamic-holidays nil)
(setq holiday-bahai-holidays nil)
(setq holiday-oriental-holidays nil)