public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug localedata/10871] Ru_RU month names are in incorrect form
       [not found] <bug-10871-131@http.sourceware.org/bugzilla/>
@ 2011-02-27 22:44 ` van.de.bugger at gmail dot com
  2012-11-18  7:29 ` a.m.suharev at gmail dot com
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 10+ messages in thread
From: van.de.bugger at gmail dot com @ 2011-02-27 22:44 UTC (permalink / raw)
  To: glibc-bugs

http://sourceware.org/bugzilla/show_bug.cgi?id=10871

van.de.bugger at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |van.de.bugger at gmail dot
                   |                            |com

--- Comment #3 from van.de.bugger at gmail dot com 2011-02-27 22:43:44 UTC ---
(In reply to comment #2)
> You'll have to provide a complete patch.

I could provide a patch, but there is a problem in specification. Neither "man
5 locale" nor "man date" specify the case of name. It is not clear whether it
should be nominative, genitive or some another case.

For example, "date +'%d %B %Y'" produces "28 Февраль 2011" which looks
incorrect (the first letter should be small, not capital, the form should be ).
However, "date +'%B, %d-e'" produces "Февраль, 28-e" which looks correct. "date
+'%B'" produces just months name "Февраль". I cannot say whether it correct or
not without context.

The only clue could be `d_fmt' and `date_fmt' (but latter one is not described
in "man 5 locale") values in locale definition file. It looks like date string
produced with `date_fmt' should be correct, which means it Russian locale month
name (%B) should be in genitive case. But it may break some existing programs
which expect month name in nominative case...

The solution could be extending `mon' array. For example, it could contain 12,
24, or even more elements. Element #1 is name of January in nominative case,
element #13 is name of January in genitive case, #25 is the name of January in
some 3rd case, etc. `%B' is name of month in nominative case, `%1B' is the same
as `%B', `%2B' is the name of months in genitive case, `%3B' is the name of
months in the "3rd" case, etc.

Alternatively, it could be multidimensional array, so in construct `%nB' n
selects the proper dimension.

Any thoughts on that?

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


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

* [Bug localedata/10871] Ru_RU month names are in incorrect form
       [not found] <bug-10871-131@http.sourceware.org/bugzilla/>
  2011-02-27 22:44 ` [Bug localedata/10871] Ru_RU month names are in incorrect form van.de.bugger at gmail dot com
@ 2012-11-18  7:29 ` a.m.suharev at gmail dot com
  2012-11-18 12:21 ` [Bug localedata/10871] ru_RU: 'mon' array should contain both nominative and genitive cases ldv at altlinux dot org
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 10+ messages in thread
From: a.m.suharev at gmail dot com @ 2012-11-18  7:29 UTC (permalink / raw)
  To: glibc-bugs

http://sourceware.org/bugzilla/show_bug.cgi?id=10871

a.m.suharev at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |a.m.suharev at gmail dot
                   |                            |com

--- Comment #4 from a.m.suharev at gmail dot com 2012-11-18 07:28:57 UTC ---
(In reply to comment #3)
> (In reply to comment #2)
> > You'll have to provide a complete patch.
> 
> I could provide a patch, but there is a problem in specification. Neither "man
> 5 locale" nor "man date" specify the case of name. It is not clear whether it
> should be nominative, genitive or some another case.

If it is not specified, we should follow the language's rules. If it would be
specified it has to be specified in accordance with the language's rules. So
let me as a "native speaker" to suggest the solution.

Both months and weekdays should be in lower case. The correct form of date
should be "28 февраля" (the genitive). If you add a weekday it is "понедельник,
28 февраля" (nominative for the weekday, genitive for month). A year, if
necessary, should be after the day, optionally followed by the word "года" or
the abbreviation "г.", line this "понедельник, 28 февраля 2011 года".

> The solution could be extending `mon' array. For example, it could contain 12,
> 24, or even more elements. Element #1 is name of January in nominative case,
> element #13 is name of January in genitive case, #25 is the name of January in
> some 3rd case, etc. `%B' is name of month in nominative case, `%1B' is the same
> as `%B', `%2B' is the name of months in genitive case, `%3B' is the name of
> months in the "3rd" case, etc.
> 
> Alternatively, it could be multidimensional array, so in construct `%nB' n
> selects the proper dimension.
> 
> Any thoughts on that?

I think one should definitely extend the "mon" array. However the better idea
would be to put there not the cases (nominative, genitive etc) but the contexts
(month's name "as-is", month's name "when used in a date" etc). The array could
be extensible.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


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

* [Bug localedata/10871] ru_RU: 'mon' array should contain both nominative and genitive cases
       [not found] <bug-10871-131@http.sourceware.org/bugzilla/>
  2011-02-27 22:44 ` [Bug localedata/10871] Ru_RU month names are in incorrect form van.de.bugger at gmail dot com
  2012-11-18  7:29 ` a.m.suharev at gmail dot com
@ 2012-11-18 12:21 ` ldv at altlinux dot org
  2013-06-11 18:27 ` piotrdrag at gmail dot com
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 10+ messages in thread
From: ldv at altlinux dot org @ 2012-11-18 12:21 UTC (permalink / raw)
  To: glibc-bugs

http://sourceware.org/bugzilla/show_bug.cgi?id=10871

Dmitry V. Levin <ldv at altlinux dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW
            Summary|Ru_RU month names are in    |ru_RU: 'mon' array should
                   |incorrect form              |contain both nominative and
                   |                            |genitive cases

--- Comment #5 from Dmitry V. Levin <ldv at altlinux dot org> 2012-11-18 12:20:56 UTC ---
(In reply to comment #4)
> (In reply to comment #3)
> > (In reply to comment #2)
> > > You'll have to provide a complete patch.
> > 
> > I could provide a patch, but there is a problem in specification. Neither "man
> > 5 locale" nor "man date" specify the case of name. It is not clear whether it
> > should be nominative, genitive or some another case.
> 
> If it is not specified, we should follow the language's rules.

And the language rules require to use nominative or genitive or some another
case depending on context.

> If it would be
> specified it has to be specified in accordance with the language's rules. So
> let me as a "native speaker" to suggest the solution.
> 
> Both months and weekdays should be in lower case.

It depends.

> The correct form of date
> should be "28 февраля" (the genitive).

Yes, but "февраль, 28-е" is also correct.

> > The solution could be extending `mon' array. For example, it could contain 12,
> > 24, or even more elements. Element #1 is name of January in nominative case,
> > element #13 is name of January in genitive case, #25 is the name of January in
> > some 3rd case, etc. `%B' is name of month in nominative case, `%1B' is the same
> > as `%B', `%2B' is the name of months in genitive case, `%3B' is the name of
> > months in the "3rd" case, etc.
> > 
> > Alternatively, it could be multidimensional array, so in construct `%nB' n
> > selects the proper dimension.
> > 
> > Any thoughts on that?
> 
> I think one should definitely extend the "mon" array. However the better idea
> would be to put there not the cases (nominative, genitive etc) but the contexts
> (month's name "as-is", month's name "when used in a date" etc). The array could
> be extensible.

Yes, putting "mon" array in a single case (no matter whether it would be
nominative, genitive or other case) cannot fix the issue, it would just fix
some language forms and break other language forms.  To fix the issue, an
extension is necessary.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


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

* [Bug localedata/10871] ru_RU: 'mon' array should contain both nominative and genitive cases
       [not found] <bug-10871-131@http.sourceware.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2012-11-18 12:21 ` [Bug localedata/10871] ru_RU: 'mon' array should contain both nominative and genitive cases ldv at altlinux dot org
@ 2013-06-11 18:27 ` piotrdrag at gmail dot com
  2014-07-01  5:31 ` fweimer at redhat dot com
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 10+ messages in thread
From: piotrdrag at gmail dot com @ 2013-06-11 18:27 UTC (permalink / raw)
  To: glibc-bugs

http://sourceware.org/bugzilla/show_bug.cgi?id=10871

Piotr Drąg <piotrdrag at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |piotrdrag at gmail dot com

-- 
You are receiving this mail because:
You are on the CC list for the bug.
>From glibc-bugs-return-18894-listarch-glibc-bugs=sources.redhat.com@sourceware.org Tue Jun 11 18:31:53 2013
Return-Path: <glibc-bugs-return-18894-listarch-glibc-bugs=sources.redhat.com@sourceware.org>
Delivered-To: listarch-glibc-bugs@sources.redhat.com
Received: (qmail 19922 invoked by alias); 11 Jun 2013 18:31:53 -0000
Mailing-List: contact glibc-bugs-help@sourceware.org; run by ezmlm
Precedence: bulk
List-Id: <glibc-bugs.sourceware.org>
List-Subscribe: <mailto:glibc-bugs-subscribe@sourceware.org>
List-Post: <mailto:glibc-bugs@sourceware.org>
List-Help: <mailto:glibc-bugs-help@sourceware.org>, <http://sourceware.org/lists.html#faqs>
Sender: glibc-bugs-owner@sourceware.org
Delivered-To: mailing list glibc-bugs@sourceware.org
Received: (qmail 19876 invoked by uid 48); 11 Jun 2013 18:31:50 -0000
From: "piotrdrag at gmail dot com" <sourceware-bugzilla@sourceware.org>
To: glibc-bugs@sourceware.org
Subject: [Bug localedata/525] russian locale: month names with the correct casing
Date: Tue, 11 Jun 2013 18:31:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: glibc
X-Bugzilla-Component: localedata
X-Bugzilla-Version: 2.3.3
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: piotrdrag at gmail dot com
X-Bugzilla-Status: RESOLVED
X-Bugzilla-Priority: P2
X-Bugzilla-Assigned-To: pere at hungry dot com
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: cc
Message-ID: <bug-525-131-sv1tlbj7NM@http.sourceware.org/bugzilla/>
In-Reply-To: <bug-525-131@http.sourceware.org/bugzilla/>
References: <bug-525-131@http.sourceware.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://sourceware.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2013-06/txt/msg00073.txt.bz2
Content-length: 397

http://sourceware.org/bugzilla/show_bug.cgi?id=525

Piotr Drąg <piotrdrag at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |piotrdrag at gmail dot com

-- 
You are receiving this mail because:
You are on the CC list for the bug.
>From glibc-bugs-return-18895-listarch-glibc-bugs=sources.redhat.com@sourceware.org Tue Jun 11 18:31:56 2013
Return-Path: <glibc-bugs-return-18895-listarch-glibc-bugs=sources.redhat.com@sourceware.org>
Delivered-To: listarch-glibc-bugs@sources.redhat.com
Received: (qmail 20176 invoked by alias); 11 Jun 2013 18:31:56 -0000
Mailing-List: contact glibc-bugs-help@sourceware.org; run by ezmlm
Precedence: bulk
List-Id: <glibc-bugs.sourceware.org>
List-Subscribe: <mailto:glibc-bugs-subscribe@sourceware.org>
List-Post: <mailto:glibc-bugs@sourceware.org>
List-Help: <mailto:glibc-bugs-help@sourceware.org>, <http://sourceware.org/lists.html#faqs>
Sender: glibc-bugs-owner@sourceware.org
Delivered-To: mailing list glibc-bugs@sourceware.org
Received: (qmail 19908 invoked by uid 48); 11 Jun 2013 18:31:52 -0000
From: "piotrdrag at gmail dot com" <sourceware-bugzilla@sourceware.org>
To: glibc-bugs@sourceware.org
Subject: [Bug libc/809] Full month names in languages with declension are not usful for creation of dates
Date: Tue, 11 Jun 2013 18:31:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: glibc
X-Bugzilla-Component: libc
X-Bugzilla-Version: unspecified
X-Bugzilla-Keywords:
X-Bugzilla-Severity: enhancement
X-Bugzilla-Who: piotrdrag at gmail dot com
X-Bugzilla-Status: RESOLVED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: gotom at debian dot or.jp
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: cc
Message-ID: <bug-809-131-b7QUOdofQc@http.sourceware.org/bugzilla/>
In-Reply-To: <bug-809-131@http.sourceware.org/bugzilla/>
References: <bug-809-131@http.sourceware.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: http://sourceware.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2013-06/txt/msg00074.txt.bz2
Content-length: 397

http://sourceware.org/bugzilla/show_bug.cgi?id=809

Piotr Drąg <piotrdrag at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |piotrdrag at gmail dot com

-- 
You are receiving this mail because:
You are on the CC list for the bug.
>From glibc-bugs-return-18896-listarch-glibc-bugs=sources.redhat.com@sourceware.org Tue Jun 11 18:41:16 2013
Return-Path: <glibc-bugs-return-18896-listarch-glibc-bugs=sources.redhat.com@sourceware.org>
Delivered-To: listarch-glibc-bugs@sources.redhat.com
Received: (qmail 27808 invoked by alias); 11 Jun 2013 18:41:15 -0000
Mailing-List: contact glibc-bugs-help@sourceware.org; run by ezmlm
Precedence: bulk
List-Id: <glibc-bugs.sourceware.org>
List-Subscribe: <mailto:glibc-bugs-subscribe@sourceware.org>
List-Post: <mailto:glibc-bugs@sourceware.org>
List-Help: <mailto:glibc-bugs-help@sourceware.org>, <http://sourceware.org/lists.html#faqs>
Sender: glibc-bugs-owner@sourceware.org
Delivered-To: mailing list glibc-bugs@sourceware.org
Received: (qmail 27761 invoked by uid 48); 11 Jun 2013 18:41:12 -0000
From: "roland at gnu dot org" <sourceware-bugzilla@sourceware.org>
To: glibc-bugs@sourceware.org
Subject: [Bug libc/5806] wrong comment in strlen() and other functions
Date: Tue, 11 Jun 2013 18:41:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: glibc
X-Bugzilla-Component: libc
X-Bugzilla-Version: unspecified
X-Bugzilla-Keywords:
X-Bugzilla-Severity: minor
X-Bugzilla-Who: roland at gnu dot org
X-Bugzilla-Status: NEW
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at sourceware dot org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: cc component
Message-ID: <bug-5806-131-qRoVDIq2CI@http.sourceware.org/bugzilla/>
In-Reply-To: <bug-5806-131@http.sourceware.org/bugzilla/>
References: <bug-5806-131@http.sourceware.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://sourceware.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2013-06/txt/msg00075.txt.bz2
Content-length: 621

http://sourceware.org/bugzilla/show_bug.cgi?idX06

Roland McGrath <roland at gnu dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|mtk.manpages at gmail dot com,     |drepper.fsp at gmail dot com
                   |roland at gnu dot org              |
          Component|manual                      |libc

--- Comment #5 from Roland McGrath <roland at gnu dot org> ---
Code comments are not an issue with the manual.

--
You are receiving this mail because:
You are on the CC list for the bug.


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

* [Bug localedata/10871] ru_RU: 'mon' array should contain both nominative and genitive cases
       [not found] <bug-10871-131@http.sourceware.org/bugzilla/>
                   ` (3 preceding siblings ...)
  2013-06-11 18:27 ` piotrdrag at gmail dot com
@ 2014-07-01  5:31 ` fweimer at redhat dot com
  2014-07-01  5:32 ` fweimer at redhat dot com
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 10+ messages in thread
From: fweimer at redhat dot com @ 2014-07-01  5:31 UTC (permalink / raw)
  To: glibc-bugs

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

Florian Weimer <fweimer at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fweimer at redhat dot com

-- 
You are receiving this mail because:
You are on the CC list for the bug.


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

* [Bug localedata/10871] ru_RU: 'mon' array should contain both nominative and genitive cases
       [not found] <bug-10871-131@http.sourceware.org/bugzilla/>
                   ` (4 preceding siblings ...)
  2014-07-01  5:31 ` fweimer at redhat dot com
@ 2014-07-01  5:32 ` fweimer at redhat dot com
  2014-09-11  0:36 ` samos-project at meta dot ua
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 10+ messages in thread
From: fweimer at redhat dot com @ 2014-07-01  5:32 UTC (permalink / raw)
  To: glibc-bugs

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

Florian Weimer <fweimer at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
              Flags|                            |security-

-- 
You are receiving this mail because:
You are on the CC list for the bug.


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

* [Bug localedata/10871] ru_RU: 'mon' array should contain both nominative and genitive cases
       [not found] <bug-10871-131@http.sourceware.org/bugzilla/>
                   ` (5 preceding siblings ...)
  2014-07-01  5:32 ` fweimer at redhat dot com
@ 2014-09-11  0:36 ` samos-project at meta dot ua
  2014-09-11  1:55 ` samos-project at meta dot ua
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 10+ messages in thread
From: samos-project at meta dot ua @ 2014-09-11  0:36 UTC (permalink / raw)
  To: glibc-bugs

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

Ruslan Ivanyuk <samos-project at meta dot ua> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |samos-project at meta dot ua

--- Comment #6 from Ruslan Ivanyuk <samos-project at meta dot ua> ---
The problem persists as of September 11, 2014, and concerns all Slavonic
languages except Bulgarian and Macedonian (where declination is reduced). Among
them are languages: Belarusian, Czech, Polish, Pomeranian/Kashubian, Russian,
Rusyn, Slovak, Slovene, Serbo-Croatian (Croatian, Bosnian, Serbian,
Montenegrin), Silesian, Upper and Lower Sorbian and Ukrainian. But not only in
Slavonic, other languages using noun declinations are injured too. Finnish, for
instance, is one extraordinary case that uses all three, nominative, genitive
and partitive case month names.

The CLDR manages to fix the issue by introducing several data arrays to serve
that specific purpose, both full and abbreviated versions (in case one needs
those). In addition, it has correctly abbreviated weekday names. Unfortunately,
I have no programming skills whatsoever to submit code that solves anything.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


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

* [Bug localedata/10871] ru_RU: 'mon' array should contain both nominative and genitive cases
       [not found] <bug-10871-131@http.sourceware.org/bugzilla/>
                   ` (6 preceding siblings ...)
  2014-09-11  0:36 ` samos-project at meta dot ua
@ 2014-09-11  1:55 ` samos-project at meta dot ua
  2014-09-11  7:05 ` fweimer at redhat dot com
  2015-10-28  2:57 ` digitalfreak at lingonborough dot com
  9 siblings, 0 replies; 10+ messages in thread
From: samos-project at meta dot ua @ 2014-09-11  1:55 UTC (permalink / raw)
  To: glibc-bugs

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

Ruslan Ivanyuk <samos-project at meta dot ua> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |critical

-- 
You are receiving this mail because:
You are on the CC list for the bug.


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

* [Bug localedata/10871] ru_RU: 'mon' array should contain both nominative and genitive cases
       [not found] <bug-10871-131@http.sourceware.org/bugzilla/>
                   ` (7 preceding siblings ...)
  2014-09-11  1:55 ` samos-project at meta dot ua
@ 2014-09-11  7:05 ` fweimer at redhat dot com
  2015-10-28  2:57 ` digitalfreak at lingonborough dot com
  9 siblings, 0 replies; 10+ messages in thread
From: fweimer at redhat dot com @ 2014-09-11  7:05 UTC (permalink / raw)
  To: glibc-bugs

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

Florian Weimer <fweimer at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|fweimer at redhat dot com          |

-- 
You are receiving this mail because:
You are on the CC list for the bug.


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

* [Bug localedata/10871] ru_RU: 'mon' array should contain both nominative and genitive cases
       [not found] <bug-10871-131@http.sourceware.org/bugzilla/>
                   ` (8 preceding siblings ...)
  2014-09-11  7:05 ` fweimer at redhat dot com
@ 2015-10-28  2:57 ` digitalfreak at lingonborough dot com
  9 siblings, 0 replies; 10+ messages in thread
From: digitalfreak at lingonborough dot com @ 2015-10-28  2:57 UTC (permalink / raw)
  To: glibc-bugs

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

Rafal Luzynski <digitalfreak at lingonborough dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |digitalfreak@lingonborough.
                   |                            |com

--- Comment #7 from Rafal Luzynski <digitalfreak at lingonborough dot com> ---
I'll be happy to provide a complete solution for this problem but some API
design questions must be answered first.

Please note that CLDR mentions only "standalone" version of the month name
which is probably always nominative, and "format" version which may be the same
as "standalone" (e.g., in English) but may be genitive in some languages, it
may also be another case in some other languages. For simplicity I will refer
to these cases as nominative/genitive keeping in mind that CLDR refers to them
as standalone/format. Also there may be languages which use other forms than
nominative/genitive but I think there are probably always at most two forms
since CLDR has decided to consider only two.


I. strftime() - http://linux.die.net/man/3/strftime

This function supports only one format which provides the full month name: %B.
At the moment there is no way for this function to provide multiple forms of
the full month name. Here are the API designs which would provide a full month
name:

1. Do not change the API, implement an internal algorithm which would analyze a
full format string and determine whether %B should format the month name in a
nominative or genitive case. The simplest algorithm would check if %d or %e
conversion specifiers are also present in the same format string, retrieve a
genitive case if they are, nominative otherwise. More advanced version could
check if the day and month conversion specifiers are adjacent, if they are
separated with other conversion specifiers, with space/punctuation/other
characters, if there are other letters concatenated with %B (which would mean
that the caller already tries to provide a workaround for this bug), if the
day/month order is correct (this is true only if day/month order is correct and
month/day order is incorrect in all these languages).

Pros:
- once implemented correctly it will automagically fix all affected
applications,
- even if the implementation will not be perfect for some languages the result
will not be worse than the one currently existing: it will not break any
currently correct application,
- if it turns out that this solution is completely wrong it will be easy to
revert it and provide another one because we don't change the API.

Cons:
- may be difficult to implement,
- it is questionable if a perfect algorithm exists for all affected languages,
even if we check it for all languages mentioned in the comment 6 there may be
other languages which we don't know about and which also require the
nominative/genitive case but use different rules,
- it is questionable how to handle the format strings which are incorrect from
grammatical point of view: please note that strftime() API does not and should
not say that there are illegal combination of the conversion specifiers.

2. Follow the specification already used in *BSD family (which also includes OS
X and iOS): https://www.freebsd.org/cgi/man.cgi?query=strftime&sektion=3. They
implement the %OB conversion specifier which retrieves the nominative case
while %B specifier retrieves the genitive case (sic!)

Pros:
- full portability between glibc and *BSD,
- simple and deterministic implementation,
- full programmer's control on whether they want a nominative or genitive case,
- will automagically fix all dates using %B conversion specifiers and
displaying the nominative case which is incorrect (full dates).

Cons:
- at the same time will break formatting of all dates using %B conversion
specifiers where the nominative case is required and is correctly provided now,
the application developer may not even be aware that the application became
broken in some languages,
- therefore will require urgent intervention from some application developers,
- it will be difficult or even impossible to provide a backward compatible
solution which would detect if the current runtime version of glibc requires
%OB or %B for the month name in nominative case,
- one may question if the *BSD decision to retrieve a genitive case from %B is
correct since it causes so much trouble.

3. Mimic the *BSD specification but implement it conversely: let %B retrieve
the nominative case (as it currently does) and let the new %OB specifier
retrieve the genitive case. See also:
http://austingroupbugs.net/view.php?id=258 - this seems to has accepted this
solution.

Pros:
- simple and deterministic implementation,
- full programmer's control on whether they want a nominative or genitive case,
- full backward compatibility,
- will not break any existing application.

Cons:
- portability with *BSD family will never be possible (format specifiers war),
- will require intervention from the application developers but it will not be
urgent because it will apply only the cases where they use %B explicitly and
this is already incorrect.

I would choose the first solution: not to change the API and try to provide a
smart algorithm which would determine if the month name retrieved by %B should
be nominative or genitive but I will listen to your opinion.


II. nl_langinfo() - http://linux.die.net/man/3/nl_langinfo

Although strftime() does not call nl_langinfo() directly both these functions
use the same backend database. We will need the new constants to be defined in
langinfo.h, for example ALTMON_{1-12} and their wide-character equivalents
_NL_WALTMON_{1-12}. This means it will affect the API of nl_langinfo() by
adding new valid argument values. Please note that I am talking in the context
of https://bugzilla.gnome.org/show_bug.cgi?id=749206 and the implementation of
g_date_time_printf() does call nl_langinfo() to retrieve the month names. I
hope it is valid to add these new symbols after _NL_TIME_CODESET and name them
ALTMON_{1-12} and _NL_WALTMON_{1-12}.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


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

end of thread, other threads:[~2015-10-28  2:57 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-10871-131@http.sourceware.org/bugzilla/>
2011-02-27 22:44 ` [Bug localedata/10871] Ru_RU month names are in incorrect form van.de.bugger at gmail dot com
2012-11-18  7:29 ` a.m.suharev at gmail dot com
2012-11-18 12:21 ` [Bug localedata/10871] ru_RU: 'mon' array should contain both nominative and genitive cases ldv at altlinux dot org
2013-06-11 18:27 ` piotrdrag at gmail dot com
2014-07-01  5:31 ` fweimer at redhat dot com
2014-07-01  5:32 ` fweimer at redhat dot com
2014-09-11  0:36 ` samos-project at meta dot ua
2014-09-11  1:55 ` samos-project at meta dot ua
2014-09-11  7:05 ` fweimer at redhat dot com
2015-10-28  2:57 ` digitalfreak at lingonborough dot com

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