Subject: bug#19174: Wishlist/suggestion for emacs/lisp/calendar/cal-french.el

From: Jean Forget <[email-masked]>
Date: Mon, 24 Nov 2014 22:01:13 +0100

The head comments of  lisp/calendar/cal-french.el give your
name and address as the maintainer of this file.

So, here is a wish item for lisp/calendar/cal-french.el.
It is implemented in my github repo :
https://github.com/jforget/emacs-lisp-cal-french

I used cal-french.el from the master branch of
https://github.com/emacs-mirror/emacs
in late October 2014.

There are 4 steps for the wish item, tagged with v1, v2, v3 and v4.
Here is a copy of the README file, showing the new features:

**** beginning of copy-paste
Changes
=======

Day Name
--------

Instead  of just  displaying  "18  Brumaire an  8  de la  Révolution",
cal-french.el now displays "Octidi 18 Brumaire an 8 de la Révolution".

Available with commit e4365c5, tag v1.

Additional Days
---------------

Displaying "Jour  du Travail de l'année  222 de la  Révolution" is not
very convenient, you cannot guess  whether this day is before or after
"Jour du Génie de l'année 222 de la Révolution".  This changes gives a
number in the 1-to-5 range (or 1-to-6 on leap years).  Additionally, I
found in  a book from the  French Revolution era that  these days bear
the same names as the other: "Primidi", "Duodi" etc.  So cal-french.el
will display:

   "Duodi 2 jour complémentaire an 222 de la Révolution, Jour du Génie"

   "Tridi 3 jour complémentaire an 222 de la Révolution, Jour du
Travail"

See http://datetime.mongueurs.net/Histoire/s-c/01-g.en.html.

In addition, when using "g f", you can now reply with the pseudo-month
"jour  complémentaire", and  then a  number  in the  1-to-5 or  1-to-6
range.

Available with commit b6dc17c, tag v2.

Feasts
------

Actually, not  only the 5 or  6 end-of-year additional  days, but also
the 360  normal days  had a feast.  So cal-french.el will  display the
feast for all days, for example:

  "Primidi 1 Vendémiaire an  223 de la Révolution, Jour du Raisin"

Of course, all feasts are available when answering to "g f".

A big disadvantage is that  the size or F<cal-french.el> inflates from
about 10 K to about 30 K.

Available with commit 6060f52, tag v3.

Feasts (second take)
--------------------

There are  two problems with  the functionality above, when  using the
calendar-french-goto-date function, triggered by "g f".

First, if the user enters a  normal (non-leap) year and then types "j"
and auto-complete twice  (tabulation), he gets a list  of 366 entries:
the pseudo-month "jour complémentaire" and  the 365 feasts for the 365
days of the year.

Second, if  the user is not  a native French-speaker (*)  he will have
trouble  sorting  masculine  and   feminine  words:  is  it  "jour  du
coriandre" or "jour de la coriandre"?

(*) and even for native  French-speakers as myself. For example, for a
long time I did the mistake with "coriandre".

The update consists of giving a list which no longer contains "jour du
raisin", "jour  de la coriandre" and  the like, but  only "raisin" and
"coriandre".

Available with commit 68384aa, tag v4.
**** end of copy-paste

Which version do you prefer to implement into Emacs? Will you clone
my Github repo or should I send you the full source or a diff output?
Or a pull request? I do not know yet how to send a pull request, but
I can learn that if necessary.

Problems and unknowns

I have tested only the multibyte version of strings, I do not know
how to activate the singlebyte option. We need to check especially
28 Fructidor jour du maïs ("mai\"s") and 18 Germinal jour de la
ciguë ("cigue\"").

Some historical sources say that "4 jour complémentaire" is "jour de
la raison", other sources say that it is "jour de l'opinion".

When choosing "jour du" vs "jour de la", I was not able to find the
word "bagarade" (26 Fructidor). I have chosen "jour de la bagarade"
because in modern French, there is a word "bigarade" for some kind
of orange and it would give "jour de la bigarade".

For version v3, if the user types "j" TAB TAB, he gets a 366-item
completion list. Performance-wise, it does not seem to be a burden for
Emacs, but you might have a different opinion. In this case, you
should adopt version v4 instead.

Best regards,

Jean Forget