emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Swedish calendar localization in official release (sv-kalender.el)?


From: Arthur Miller
Subject: Re: Swedish calendar localization in official release (sv-kalender.el)?
Date: Tue, 06 Jul 2021 19:23:53 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Stefan Kangas <stefan@marxist.se> writes:

> Arthur Miller <arthur.miller@live.com> writes:
>
>> > All this says that it is best to publish national and other cultural
>> > calendars separately from Emacs releases.
>>
>> Ah, ok, yes I understand what you mean. Seen this in all the former
>> republic and now independent countries from Yugoslavia.
>>
>> But I guess, that's still not that overly frequent?
>
> It's not frequent, but when it happens you really do want it updated
> ASAP if you are planning to use the calendar.  Missing a holiday can
> mean you're in for some nasty planning surprises (speaking from own
> experience).
>
> I repeat myself here, but I think a core package is the best option.
> The second best option is to not ship it with Emacs but find out a
> good naming scheme and put several such packages on GNU ELPA.

I have no problem with this being either in Elpa or Emacs. I was just
reflecting over the problem :).

However, I was thinking yesterday about um-marrying day and month name
strings from hollidays.

Would it be an idea to have those array for names in separate
files from hollidays and maybe shipped with Emacs. I can
machine-generate those for ~200 languages, and they are really small. I
am thinking of a file structure like: "lisp/calendar/locale/". In locale
directory would be one file per language named something like
"names-countrycode.el" (for example names-fi.el, names-sv.el,
names-ar.el etc). A content would be just names of days and
months. Content of each file would like in code belove the email.

Calendar could than just load appropriate file to set localized names
and it could be done when calendar is loaded.

I am not sure if I can extract format string for dates as well.

I had some time today so I did small script to extract this data from
ICU locale databas. As I understand the license, they permit any use of
both data and code:

https://github.com/unicode-org/icu/blob/main/icu4c/LICENSE

I really use just a very small subset of their data from their locale
dir:

https://github.com/unicode-org/icu/tree/main/icu4c/source/data/locales

Unfortunately some of locales are not bit more complicated to obtain, so
I don't have all languages, but quite many.

If we could have database of names for days and months in Emacs, then
only hollidays should need separate packaging.

Would that be something to have? I haven't patched calendar.el yet, but
it shouldn't be difficult to do that, can see tomorrow.

#+begin_src emacs-lisp
;; names-sv.el
(setq
calendar-day-name-array  ["söndag" "måndag" "tisdag" "onsdag" "torsdag" 
"fredag" "lördag"]
calendar-day-abbrev-array  ["sön" "mån" "tis" "ons" "tors" "fre" "lör"]
calendar-day-format-array  ["söndag" "måndag" "tisdag" "onsdag" "torsdag" 
"fredag" "lördag"]
calendar-day-header-array  ["sö" "må" "ti" "on" "to" "fr" "lö"])

(setq
calendar-month-name-array ["januari" "februari" "mars" "april" "maj" "juni" 
"juli" "augusti" "september" "oktober" "november" "december"]
calendar-month-format-array ["januari" "februari" "mars" "april" "maj" "juni" 
"juli" "augusti" "september" "oktober" "november" "december"]
calendar-month-abbrev-array ["jan." "feb." "mars" "apr." "maj" "juni" "juli" 
"aug." "sep." "okt." "nov." "dec."])

;; names-fi.el
(setq
calendar-day-name-array  ["sunnuntai" "maanantai" "tiistai" "keskiviikko" 
"torstai" "perjantai" "lauantai"]
calendar-day-abbrev-array  ["su" "ma" "ti" "ke" "to" "pe" "la"]
calendar-day-format-array  ["sunnuntaina" "maanantaina" "tiistaina" 
"keskiviikkona" "torstaina" "perjantaina" "lauantaina"]
calendar-day-header-array  ["su" "ma" "ti" "ke" "to" "pe" "la"])

(setq
calendar-month-name-array ["tammikuu" "helmikuu" "maaliskuu" "huhtikuu" 
"toukokuu" "kesäkuu" "heinäkuu" "elokuu" "syyskuu" "lokakuu" "marraskuu" 
"joulukuu"]
calendar-month-format-array ["tammikuuta" "helmikuuta" "maaliskuuta" 
"huhtikuuta" "toukokuuta" "kesäkuuta" "heinäkuuta" "elokuuta" "syyskuuta" 
"lokakuuta" "marraskuuta" "joulukuuta"]
calendar-month-abbrev-array ["tammik." "helmik." "maalisk." "huhtik." "toukok." 
"kesäk." "heinäk." "elok." "syysk." "lokak." "marrask." "jouluk."])


;; names-hr.el
(setq
calendar-day-name-array  ["nedjelja" "ponedjeljak" "utorak" "srijeda" 
"četvrtak" "petak" "subota"]
calendar-day-abbrev-array  ["ned" "pon" "uto" "sri" "čet" "pet" "sub"]
calendar-day-format-array  ["nedjelja" "ponedjeljak" "utorak" "srijeda" 
"četvrtak" "petak" "subota"]
calendar-day-header-array  ["ned" "pon" "uto" "sri" "čet" "pet" "sub"])

(setq
calendar-month-name-array ["siječanj" "veljača" "ožujak" "travanj" "svibanj" 
"lipanj" "srpanj" "kolovoz" "rujan" "listopad" "studeni" "prosinac"]
calendar-month-format-array ["siječnja" "veljače" "ožujka" "travnja" "svibnja" 
"lipnja" "srpnja" "kolovoza" "rujna" "listopada" "studenoga" "prosinca"]
calendar-month-abbrev-array ["sij" "velj" "ožu" "tra" "svi" "lip" "srp" "kol" 
"ruj" "lis" "stu" "pro"])

;; names-ar.el
(setq
calendar-day-name-array  ["الأحد" "الاثنين" "الثلاثاء" "الأربعاء" "الخميس" 
"الجمعة" "السبت"]
calendar-day-abbrev-array  ["الأحد" "الاثنين" "الثلاثاء" "الأربعاء" "الخميس" 
"الجمعة" "السبت"]
calendar-day-format-array  ["الأحد" "الاثنين" "الثلاثاء" "الأربعاء" "الخميس" 
"الجمعة" "السبت"]
calendar-day-header-array  ["أحد" "إثنين" "ثلاثاء" "أربعاء" "خميس" "جمعة" 
"سبت"])

(setq
calendar-month-name-array ["يناير" "فبراير" "مارس" "أبريل" "مايو" "يونيو" 
"يوليو" "أغسطس" "سبتمبر" "أكتوبر" "نوفمبر" "ديسمبر"]
calendar-month-format-array ["يناير" "فبراير" "مارس" "أبريل" "مايو" "يونيو" 
"يوليو" "أغسطس" "سبتمبر" "أكتوبر" "نوفمبر" "ديسمبر"]
calendar-month-abbrev-array ["يناير" "فبراير" "مارس" "أبريل" "مايو" "يونيو" 
"يوليو" "أغسطس" "سبتمبر" "أكتوبر" "نوفمبر" "ديسمبر"])

#+end_src


± |master S:1 U:1 ?:169 ✗| → ls locale
names-af.el   names-bo.el   names-doi.el  names-fil.el  names-hsb.el  
names-kam.el  names-ku.el   names-mer.el  names-naq.el  names-ps.el    
names-se.el   names-ta.el   names-wae.el
names-agq.el  names-br.el   names-dsb.el  names-fo.el   names-hu.el   
names-kde.el  names-kw.el   names-mfe.el  names-nb.el   names-pt.el    
names-seh.el  names-te.el   names-vai.el
names-ak.el   names-brx.el  names-dua.el  names-fr.el   names-hy.el   
names-kea.el  names-ky.el   names-mg.el   names-nd.el   names-qu.el    
names-ses.el  names-teo.el  names-vi.el
names-am.el   names-bs.el   names-dyo.el  names-fur.el  names-ia.el   
names-khq.el  names-lag.el  names-mgh.el  names-ne.el   names-rm.el    
names-sg.el   names-tg.el   names-wo.el
names-ar.el   names-ca.el   names-dz.el   names-fy.el   names-id.el   
names-ki.el   names-lb.el   names-mgo.el  names-nl.el   names-rn.el    
names-sh.el   names-th.el   names-vun.el
names-ars.el  names-ccp.el  names-ebu.el  names-ga.el   names-ig.el   
names-kk.el   names-lg.el   names-mi.el   names-nmg.el  names-ro.el    
names-shi.el  names-ti.el   names-xh.el
names-asa.el  names-ceb.el  names-ee.el   names-gd.el   names-ii.el   
names-kkj.el  names-lkt.el  names-mk.el   names-nn.el   names-rof.el   
names-si.el   names-tk.el   names-xog.el
names-as.el   names-ce.el   names-el.el   names-gl.el   names-in.el   
names-kl.el   names-ln.el   names-ml.el   names-nnh.el  names-root.el  
names-sk.el   names-tl.el   names-yav.el
names-ast.el  names-cgg.el  names-en.el   names-gsw.el  names-is.el   
names-kln.el  names-lo.el   names-mn.el   names-no.el   names-ru.el    
names-sl.el   names-to.el   names-yi.el
names-az.el   names-chr.el  names-eo.el   names-gu.el   names-it.el   
names-km.el   names-lrc.el  names-mni.el  names-nus.el  names-rw.el    
names-smn.el  names-tr.el   names-yo.el
names-bas.el  names-ckb.el  names-es.el   names-guz.el  names-iw.el   
names-kn.el   names-lt.el   names-mo.el   names-nyn.el  names-rwk.el   
names-sn.el   names-tt.el   names-yue.el
names-be.el   names-cs.el   names-et.el   names-gv.el   names-ja.el   
names-ko.el   names-lu.el   names-mr.el   names-om.el   names-sa.el    
names-so.el   names-twq.el  names-zgh.el
names-bem.el  names-cy.el   names-eu.el   names-ha.el   names-jgo.el  
names-kok.el  names-luo.el  names-ms.el   names-or.el   names-sah.el   
names-sq.el   names-tzm.el  names-zh.el
names-bez.el  names-da.el   names-ewo.el  names-haw.el  names-jmc.el  
names-ksb.el  names-luy.el  names-mt.el   names-os.el   names-saq.el   
names-sr.el   names-ug.el   names-zu.el
names-bg.el   names-dav.el  names-fa.el   names-he.el   names-jv.el   
names-ks.el   names-lv.el   names-mua.el  names-pa.el   names-sat.el   
names-su.el   names-uk.el
names-bm.el   names-de.el   names-ff.el   names-hi.el   names-kab.el  
names-ksf.el  names-mai.el  names-my.el   names-pcm.el  names-sbp.el   
names-sv.el   names-ur.el
names-bn.el   names-dje.el  names-fi.el   names-hr.el   names-ka.el   
names-ksh.el  names-mas.el  names-mzn.el  names-pl.el   names-sd.el    
names-sw.el   names-uz.el




reply via email to

[Prev in Thread] Current Thread [Next in Thread]