Bug 15260

Summary: LC_MESSAGES.{yes,no}{str,expr}: various errors
Product: glibc Reporter: daxim
Component: localedataAssignee: Not yet assigned to anyone <unassigned>
Status: RESOLVED FIXED    
Severity: normal CC: libc-locales, maiku.fabian
Priority: P2 Flags: fweimer: security-
Version: 2.16   
Target Milestone: 2.27   
Host: Target:
Build: Last reconfirmed:
Attachments: Perl tool for dumping LC_MESSAGES from the system glibc-locale installation

Description daxim 2013-03-09 10:21:39 UTC
Created attachment 6922 [details]
Perl tool for dumping LC_MESSAGES from the system glibc-locale installation

1. In the locales brx_IN, hne_IN, kok_IN, ml_IN, ta_IN, ta_LK and uk_UA, the yesstr/nostr LC_MESSAGES match against the whole answer word, or all letters of the answer word, but should only include the initial.

2. In the ht_HT locale, the yesstr/nostr LC_MESSAGES do not include capital letters, but should include capital letters.

3. In the km_KH locale, the yesstr/nostr LC_MESSAGES are in English, but should be in Khmer.

4. In the mr_IN locale, the yesexpr/noexpr LC_MESSAGES match full English words, but should be initials in Marathi.

5. In the ms_MY locale, the noexpr LC_MESSAGES does not include the customary [nN] from English, even though there is no apparent conflict. According to <http://sourceware.org/bugzilla/show_bug.cgi?id=82#c3>, this makes it "hard to use the locale when translations are missing". A comment in the source file says "% ^[nN]  --> ^[tT]", but that's not really illuminating. A Malay speaker needs to verify this.

6. In the mt_MT locale, the yesexpr/noexpr LC_MESSAGES match full English words, but should be initials in Malti.

7. In the nan_TW@latin locale, the yesexpr/noexpr LC_MESSAGES do not include the customary [yY]/[nN] from English, even though there is no conflict. According to <http://sourceware.org/bugzilla/show_bug.cgi?id=82#c3>, this makes it "hard to use the locale when translations are missing".

8. The os_RU yesexpr/noexpr LC_MESSAGES look broken. It doesn't make sense that yesexpr includes capital У and noexpr includes small у. They also include initials in Russian, but should be in Ossetic.

9. In the tg_TJ locale, the yesstr/nostr LC_MESSAGES are in Russian, but should be in Tajik.

10. In the tl_PH locale, the yesstr/nostr LC_MESSAGES are in English, should be in Tagalog.

11. In the tt_RU locale, the yesexpr/noexpr LC_MESSAGES include initials in Russian, but should be in Tatar.

12. In the ug_CN locale, the yesstr/nostr LC_MESSAGES are in English, but should be in Uyghur. The yesexpr/noexpr need to be then changed, too.

13. In the zh_SG locale, the yesstr/nostr LC_MESSAGES are in English, should be in Chinese.
Comment 1 Mike Frysinger 2016-04-23 08:05:26 UTC
pretty much all of the yesstr/nostr issues should be fixed in git now.  all of the yesexpr/noexpr issues related to missing yY and nN were handled via bug 15262.

that just leaves the few cases of yesexpr/noexpr misbehavior outlined in:
(1) (4) (6) (8) (9) (10) (12) (13)
Comment 2 Mike FABIAN 2017-10-27 08:22:47 UTC
(In reply to daxim from comment #0)
> Created attachment 6922 [details]
> Perl tool for dumping LC_MESSAGES from the system glibc-locale installation
> 
> 1. In the locales brx_IN, hne_IN, kok_IN, ml_IN, ta_IN, ta_LK and uk_UA, the
> yesstr/nostr LC_MESSAGES match against the whole answer word, or all letters
> of the answer word, but should only include the initial.

In case of uk_UA, there is a special reason for this, see the comments
in the locale source:


LC_MESSAGES
% WARNING: symbols "Y" and "Cyrillic_N" are placed at one key in Ukrainian keyboard
% layout although the meaning is semantically opposite ("Y" stands for "Yes"
% while "Cyrillic_N" stands for "No").
%
% This problem may be dealt with by requiring at least two letters to be
% entered in Ukrainian language.

% A regular expression that describes possible yes-responses
% "y", "Y", "+", "ta" or "tak" in Cyrillic
yesexpr "^([+1Yy]|[Тт][Аа][Кк]?)$"

% WARNING: symbols "N" and "Cyrillic_T" are placed at one key in Ukrainian
% keyboard layout although the meaning is semantically opposite ("N" stands for
% "No" while "Cyrillic_T" stands for "Yes").
%
% We may require two Ukrainian letters as input to deal with this potential
% problem.

% A regular expression that describes possible no-responses.
% "n", "N", "-" or word "ni" in Cyrillic
noexpr  "^([-0Nn]|[Нн][Іі])$"

% Output string for ``yes'' ("tak").
yesstr "так"

% Output string for ``no'' ("ni").
nostr "ні"

END LC_MESSAGES
Comment 3 Sourceware Commits 2017-10-27 09:25:52 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  a4cc02c7413af4826fe8d13b6250c3fc47f15699 (commit)
       via  1e5971ec1452784d6cb59539442d92b7020378d5 (commit)
       via  bc5fc7de2115847d9ed312a41713c6a4c724f3dd (commit)
      from  ecc7da5bb897f17ef470fc928ab2b7132e3fa069 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a4cc02c7413af4826fe8d13b6250c3fc47f15699

commit a4cc02c7413af4826fe8d13b6250c3fc47f15699
Author: Mike FABIAN <mfabian@redhat.com>
Date:   Fri Oct 27 10:55:44 2017 +0200

    tt_RU locale: make yesstr and nostr agree with CLDR by starting with lower case letters
    
    	* localedata/locales/tt_RU (LC_MESSAGES): Start yesstr and nostr
    	with lowercase letters to make it agree with CLDR.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1e5971ec1452784d6cb59539442d92b7020378d5

commit 1e5971ec1452784d6cb59539442d92b7020378d5
Author: Mike FABIAN <mfabian@redhat.com>
Date:   Fri Oct 27 10:53:35 2017 +0200

    Fix all remaining issues of [BZ #15260]
    
    	[BZ #15260]
    	* localedata/locales/doi_IN (LC_MESSAGES): Match only for the
    	first letters of yesstr and nostr in yesexpr and noexpr,
    	not for the full words.
    	* localedata/locales/hne_IN (LC_MESSAGES): Likewise.
    	* localedata/locales/kok_IN (LC_MESSAGES): Likewise.
    	* localedata/locales/mr_IN (LC_MESSAGES): Likewise.
    	* localedata/locales/sat_IN (LC_MESSAGES): Likewise.
    	* localedata/locales/km_KH (LC_MESSAGES): Match also for the
    	first letters of yesstr and nostr in yesexpr and noexpr,
    	until now only English was matched in yesexpr and noexpr.
    	* localedata/locales/tl_PH (LC_MESSAGES): Use “copy "fil_PH"”
    	instead of “copy "en_US"”. CLDR has yesstr and nostr data for
    	fil but not for tl. As tl and fil are very similar, using fil
    	is probably better than using English.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=bc5fc7de2115847d9ed312a41713c6a4c724f3dd

commit bc5fc7de2115847d9ed312a41713c6a4c724f3dd
Author: Mike FABIAN <mfabian@redhat.com>
Date:   Fri Oct 27 09:38:00 2017 +0200

    br_FR locale: Use all lowercase in yesstr and nostr.
    
    	[BZ #21706]
    	* localedata/locales/br_FR (LC_MESSAGES): Use all lowercase
    	in yesstr and nostr.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                 |   29 +++++++++++++++++++++++++++++
 localedata/locales/br_FR  |    4 ++--
 localedata/locales/doi_IN |    4 ++--
 localedata/locales/hne_IN |    4 ++--
 localedata/locales/km_KH  |    4 ++--
 localedata/locales/kok_IN |    4 ++--
 localedata/locales/mr_IN  |    4 ++--
 localedata/locales/sat_IN |    4 ++--
 localedata/locales/tl_PH  |    2 +-
 localedata/locales/tt_RU  |    4 ++--
 10 files changed, 46 insertions(+), 17 deletions(-)
Comment 4 Mike FABIAN 2017-10-27 09:28:50 UTC
All remaining issues are fixed now in glibc master.