unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Arthur Miller <arthur.miller@live.com>
To: Stefan Kangas <stefan@marxist.se>
Cc: Emacs developers <emacs-devel@gnu.org>
Subject: Re: Swedish calendar localization in official release (sv-kalender.el)?
Date: Tue, 06 Jul 2021 19:23:53 +0200	[thread overview]
Message-ID: <AM9PR09MB4977FA16579913EC876EC591961B9@AM9PR09MB4977.eurprd09.prod.outlook.com> (raw)
In-Reply-To: <CADwFkmkE1bpbyNhfuAjme+V8ntLDgWCkW6P5_8AZfB9nHpObXQ@mail.gmail.com> (Stefan Kangas's message of "Tue, 6 Jul 2021 18:38:46 +0200")

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	other threads:[~2021-07-06 17:23 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-04 11:40 Swedish calendar localization in official release (sv-kalender.el)? Arthur Miller
2021-07-05 11:51 ` Stefan Kangas
2021-07-05 13:00   ` Teemu Likonen
2021-07-05 21:02     ` Arthur Miller
2021-07-05 20:58   ` Arthur Miller
2021-07-06  7:55   ` Teemu Likonen
2021-07-06  9:38     ` Arthur Miller
2021-07-06 10:30       ` Teemu Likonen
2021-07-06 13:38         ` Arthur Miller
2021-07-06 16:38           ` Stefan Kangas
2021-07-06 17:23             ` Arthur Miller [this message]
2021-07-07 14:31               ` Filipp Gunbin
2021-07-08  2:23                 ` Arthur Miller
2021-07-08 14:27                   ` Filipp Gunbin
2021-07-09  9:00                     ` Arthur Miller
2021-07-06 12:20     ` Stefan Kangas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AM9PR09MB4977FA16579913EC876EC591961B9@AM9PR09MB4977.eurprd09.prod.outlook.com \
    --to=arthur.miller@live.com \
    --cc=emacs-devel@gnu.org \
    --cc=stefan@marxist.se \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).