[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#841916: locales: Fix for #663203 introduced problems to the date_fmt for en_AU locale



Package: locales
Version: 2.24-5
Severity: normal
Tags: patch

Dear Maintainer,

Although this is being reported against 2.24-5, I have only confirmed that that version is affected by inspecting the contents of its deb file and confirming that the problem is still present in it.  I actually run Ubuntu 16.04.1, and the version I have is 2.23-0ubuntu3.  But I believe that the details on #663203 as well as the current contents of http://ftp.au.debian.org/debian/pool/main/g/glibc/locales_2.24-5_all.deb mean that this is a Debian bug, not an Ubuntu one.  I have Cc'd the Ubuntu package maintainer list anyway, just in case.

The fix for #663203 changes the date_fmt string for the en_AU locate from the upstream default of:

    $ locale date_fmt
    %a %b %e %H:%M:%S %Z %Y
    $ date
    Mon Oct 24 16:32:39 AEDT 2016

to instead be:

    $ locale date_fmt
    %A %-e %B  %H:%M:%S %Z %Y
    $ date
    Monday 24 October  16:32:39 AEDT 2016

This change has introduced several problems beyond the intended fix for the original problem:

* Full date-of-week and month names are used, rather than the abbreviations which are more canonically used in date_fmt strings, eg. in the other major English-speaking locales such as en_US and en_GB, as well as in the previous (and upstream) en_AU date_fmt.

* Single digit day-of-the-month are not padded with a space, which leads to alignment problems.

* There is an extra space between the name of the month and the hour, which looks weird.  From the look of the patch, this appears to be an accident.

The value of d_t_fmt (used by strftime %c, and unchanged by #663203's patch) is:

    $ locale d_t_fmt
    %a %d %b %Y %T %Z
    $ date +%c
    Mon 24 Oct 2016 16:32:48 AEDT

By contrast, the other main English-speaking locales put the day of the month after the name of the month for d_t_fmt:

    $ LANG=en_US.UTF8 date +%c
    Mon 24 Oct 2016 04:32:48 PM AEDT
    $ LANG=en_GB.UTF8 date +%c
    Mon 24 Oct 2016 16:32:48 AEDT

Those locales also have date_fmt which is consistent with d_t_fmt (ie. identical apart from the inclusion of the timezone and the use of %d instead of %e):

    $ LANG=en_US.UTF8 date
    Mon Oct 24 16:32:48 AEDT 2016
    $ LANG=en_GB.UTF8 date
    Mon 24 Oct 16:32:48 AEDT 2016

Based on all of this, I suggest that the intention of #663203 was to make date_fmt be more consistent with d_t_fmt, and more similar to en_GB (since Australia and Great Britain share the DD/MM/YYYY approach to dates), in terms of putting the day of the month ahead of the (abbreviated) month name, ie. that the %b and %e should simply be swapped, and that it was not about issues related to abbreviated vs full day/month names, padding on fields, or whitespace.

Therefore, I believe that it would be more approprate for patches/localedata/submitted-en_AU-date_fmt.diff to have the following contents instead:

    --- a/localedata/locales/en_AU
    +++ b/localedata/locales/en_AU
    @@ -114,7 +114,7 @@
     am_pm       "<U0041><U004D>";"<U0050><U004D>"
     t_fmt_ampm  "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
     <U0025><U0070>"
    -date_fmt	"<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
    +date_fmt	"<U0025><U0061><U0020><U0025><U0065><U0020><U0025><U0062>/
     <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
     <U0025><U005A><U0020><U0025><U0059>"
     %  FIXME: found in CLDR

Thanks,

Kev


-- System Information:
Debian Release: stretch/sid
  APT prefers xenial-updates
  APT policy: (500, 'xenial-updates'), (500, 'xenial-security'), (500, 'xenial'), (100, 'xenial-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.4.0-42-generic (SMP w/4 CPU cores)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages locales depends on:
ii  debconf [debconf-2.0]  1.5.58ubuntu1
ii  libc-bin               2.23-0ubuntu3

locales recommends no packages.

locales suggests no packages.

-- debconf information:
  locales/locales_to_be_generated:
  locales/default_environment_locale: None


Reply to: