public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PING][BZ 10871] Month names in genitive case
@ 2017-05-19 20:26 Rafal Luzynski
  2017-05-19 20:35 ` Zack Weinberg
  0 siblings, 1 reply; 5+ messages in thread
From: Rafal Luzynski @ 2017-05-19 20:26 UTC (permalink / raw)
  To: libc-alpha

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/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PING][BZ 10871] Month names in genitive case
  2017-05-19 20:26 [PING][BZ 10871] Month names in genitive case Rafal Luzynski
@ 2017-05-19 20:35 ` Zack Weinberg
  2017-05-23 10:29   ` Rafal Luzynski
  0 siblings, 1 reply; 5+ messages in thread
From: Zack Weinberg @ 2017-05-19 20:35 UTC (permalink / raw)
  To: Rafal Luzynski; +Cc: GNU C Library

On Fri, May 19, 2017 at 4:26 PM, Rafal Luzynski
<digitalfreak@lingonborough.com> wrote:
> 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").

OK, that is a strong argument in favor of the position that we can
just go ahead and introduce %OB and change what %B does for all
binaries - no need for backward compatibility shims.

> 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]

That was in the context of trying to get at least _some_ of the patch
into 2.25.  Since we're not trying to do that anymore, it is no longer
a relevant constraint.

> 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]

I don't think I know enough about the problems in this area to have an
informed opinion on which of these is the least troublesome, but it
seems to me that most of it is not glibc's problem regardless, as we
don't maintain the locale data files.  To put it another way, I don't
think anything in the core of your patches would change no matter
which of those options was selected.

Please repost your patches, rebased against master, without the
backward compatibility shims, and let's try to get them reviewed for
2.26.

zw

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PING][BZ 10871] Month names in genitive case
  2017-05-19 20:35 ` Zack Weinberg
@ 2017-05-23 10:29   ` Rafal Luzynski
  0 siblings, 0 replies; 5+ messages in thread
From: Rafal Luzynski @ 2017-05-23 10:29 UTC (permalink / raw)
  To: Zack Weinberg; +Cc: GNU C Library

19.05.2017 22:35 Zack Weinberg <zackw@panix.com> wrote:
> [...]
> Please repost your patches, rebased against master, without the
> backward compatibility shims, and let's try to get them reviewed for
> 2.26.
>
> zw

Thank you, I'll repost them as soon as they are ready.

Regards,

Rafal

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PING][BZ 10871] Month names in genitive case
  2016-05-25 20:21 ` [PING][BZ " Rafal Luzynski
@ 2016-06-01  9:37   ` Rafal Luzynski
  0 siblings, 0 replies; 5+ messages in thread
From: Rafal Luzynski @ 2016-06-01  9:37 UTC (permalink / raw)
  To: libc-alpha

Ping 2

Can we please land it before 2.24 is released in August?
What else can I do to help you evaluate these patches?

Regards,

Rafal Luzynski


25.05.2016 22:20 Rafal Luzynski <digitalfreak@lingonborough.com> wrote:
>
>
> Hi,
>
> Sorry for this delay. I have fulfilled all legal requirements so you
> can review my set of patches without worrying about the copyright issues.
>
> The aim is to allow the month names to be formatted correctly using
> two grammatical cases depending on the context as required by the rules
> of several languages (including my native).
>
> PATCH 0/6 More detailed description
>           https://sourceware.org/ml/libc-alpha/2016-03/msg00616.html
> PATCH 1/6 Implement ALTMON_1 ... ALTMON_12 arguments of nl_langinfo()
>           https://sourceware.org/ml/libc-alpha/2016-03/msg00617.html
> PATCH 2/6 Add tests for the above
>           https://sourceware.org/ml/libc-alpha/2016-03/msg00618.html
> PATCH 3/6 Implement the %OB specifier of strftime()
>           https://sourceware.org/ml/libc-alpha/2016-03/msg00619.html
> PATCH 4/6 pl_PL: Add alternative month names locale data (use for tests only)
>           https://sourceware.org/ml/libc-alpha/2016-03/msg00620.html
> PATCH 5/6 ru_RU: Add alternative month names locale data (use for tests only)
>           https://sourceware.org/ml/libc-alpha/2016-03/msg00621.html
> PATCH 6/6 uk_UA: Add alternative month names locale data (use for tests only)
>           https://sourceware.org/ml/libc-alpha/2016-03/msg00622.html
>
> See also: https://sourceware.org/bugzilla/show_bug.cgi?id=10871
>
> Best regards,
>
> Rafal Luzynski

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PING][BZ 10871] Month names in genitive case
  2016-03-25  0:49 [RFC][PATCH v2 0/6][BZ " Rafal Luzynski
@ 2016-05-25 20:21 ` Rafal Luzynski
  2016-06-01  9:37   ` Rafal Luzynski
  0 siblings, 1 reply; 5+ messages in thread
From: Rafal Luzynski @ 2016-05-25 20:21 UTC (permalink / raw)
  To: libc-alpha

Hi,

Sorry for this delay. I have fulfilled all legal requirements so you
can review my set of patches without worrying about the copyright issues.

The aim is to allow the month names to be formatted correctly using
two grammatical cases depending on the context as required by the rules
of several languages (including my native).

PATCH 0/6 More detailed description
          https://sourceware.org/ml/libc-alpha/2016-03/msg00616.html
PATCH 1/6 Implement ALTMON_1 ... ALTMON_12 arguments of nl_langinfo()
          https://sourceware.org/ml/libc-alpha/2016-03/msg00617.html
PATCH 2/6 Add tests for the above
          https://sourceware.org/ml/libc-alpha/2016-03/msg00618.html
PATCH 3/6 Implement the %OB specifier of strftime()
          https://sourceware.org/ml/libc-alpha/2016-03/msg00619.html
PATCH 4/6 pl_PL: Add alternative month names locale data (use for tests only)
          https://sourceware.org/ml/libc-alpha/2016-03/msg00620.html
PATCH 5/6 ru_RU: Add alternative month names locale data (use for tests only)
          https://sourceware.org/ml/libc-alpha/2016-03/msg00621.html
PATCH 6/6 uk_UA: Add alternative month names locale data (use for tests only)
          https://sourceware.org/ml/libc-alpha/2016-03/msg00622.html

See also: https://sourceware.org/bugzilla/show_bug.cgi?id=10871

Best regards,

Rafal Luzynski

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-05-23 10:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-19 20:26 [PING][BZ 10871] Month names in genitive case Rafal Luzynski
2017-05-19 20:35 ` Zack Weinberg
2017-05-23 10:29   ` Rafal Luzynski
  -- strict thread matches above, loose matches on Subject: below --
2016-03-25  0:49 [RFC][PATCH v2 0/6][BZ " Rafal Luzynski
2016-05-25 20:21 ` [PING][BZ " Rafal Luzynski
2016-06-01  9:37   ` Rafal Luzynski

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).