This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PING][BZ 10871] Month names in genitive case


Hello,

Recently I started a discussion on gnome-i18n list [1] [2] because
I was told this is a good place to find many translators from
different languages.  My aim was to collect their opinions about
planned changes.  It seems to me that most of the translators will
accept the idea to make strftime("%B") generate the genitive case
(more precisely: the form correct when using a month with a day
number) and introduce strftime("%OB") which would generate the
nominative case (standalone) which is now generated by strftime("%B").
The reason is that the genitive case is used almost always in the
languages which require it.  My favourite explanation is a quote
from Tom who said: "I have a feeling that the use of nominative and
genitive cases on the topic is the main reason for misunderstandings.
We need to focus whether we should use %B for "full date" form or not,
as this is the common factor for all languages now." [3]

Probably Czech, Serbian and maybe Slovak languages are an exception:
they normally use a nominative case when displaying a date (day+month)
but still need a genitive case when whole date is used in a context,
for example "an event on %d %B".

I'd like to remind that Zack agreed to introduce my patches only
if we don't yet define which of MON_x/ALTMON_x and %B/%OB is
nominative and which is genitive. [4]

It seems to be a good idea that all languages which need genitive
and nominative cases introduce MON_x and %B to generate a genitive
case and ALTMON_x and %OB to generate a nominative case while Czech,
Serbian and maybe Slovak would need the reverse.

However, there is one problem.  If we let the local communities
define which is genitive (full date) and which is nominative
(standalone) it will work except for nl_langinfo() because we have
no mechanism to let translators decide which base (MON_1 or
ALTMON_1) to use.  IMO there are two solutions for this problem:

* Stop using (deprecate) nl_langinfo(MON_x) and nl_langinfo(ALTMON_x)
  as the source of month names, use stftime() with translatable
  formats instead, even if they are as simple as "%OB". The usage
  of nl_langinfo() is complex already: it's correct to use ALTMON_x
  when it is supported and MON_x otherwise to retrieve the nominative
  case. Retrieving the genitive case is not much useful.  I think
  that this knowledge is not common because I spot bugs in FreeBSD
  and even OS X applications.
* Not to introduce the genitive case in Serbian, Czech, etc.
  because the use of it is too rare.  One of the translators said
  that in 99% cases they use the nominative case.  Maybe those
  languages should be treated same as all other (Western) languages
  which don't use the genitive case in dates.
* Implement the genitive and nominative cases in Serbian, Czech etc.
  the same way as they would be implemented in other Slavic languages
  and accept that almost every occurrence of %B will be replaced
  with %OB.  One of the translators has already agreed for this. [5]

My other questions are: [6]

* What else should I do to to make my patches acceptable?
* Should the backward compatibility be provided?  My suggestion is
  not to provide it because this means maintaining an old bug.
* If the backward compatibility has to be provided should I make
  some changes in their implementation?  Personally I don't like
  the complex code of strftime() and the tricky way to declare
  public aliases.

Also I'd like to remind that I've prepared a copr repository [7]
with glibc and some other packages ready to install and test
on Fedora and compatible Linux distributions.

Regards,

Rafal Luzynski


[1] https://mail.gnome.org/archives/gnome-i18n/2017-April/msg00054.html
[2] https://mail.gnome.org/archives/gnome-i18n/2017-May/msg00008.html
[3] https://mail.gnome.org/archives/gnome-i18n/2017-April/msg00064.html
[4] https://sourceware.org/ml/libc-alpha/2016-12/msg01103.html
[5] https://mail.gnome.org/archives/gnome-i18n/2017-May/msg00021.html
[6] https://sourceware.org/ml/libc-alpha/2017-04/msg00141.html
[7] https://copr.fedorainfracloud.org/coprs/rluzynski/genitive/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]