Re: [l10n-cs] Date Format with month names in genitive case - your opinions?



23.01.2018 11:48 Petr Pisar <petr pisar atlas cz> wrote:

On Mon, Jan 22, 2018 at 10:56:45AM +0100, Rafal Luzynski wrote:
Dnia 22 styczeń 2018 o 09:16 Petr Pisar <petr pisar atlas cz> napisał(a):

BTW, this ^^^^^^^ is incorrect in Polish but it only illustrates how common
this bug is.

That's because the whole date is an attribute in postposition for word "dnia".

Hm... indeed. So I have chosen a wrong example because it does not expose
the problem.

And the "dnia" itself is not a genitive, but a locative.

Well, no, this is a genitive case in Polish. But I think I know what
you mean: a locative case would be "w dniu" (on day), this is also
correct. TBH, I don't understand why a genitive case is correct here. :)

You would have the
same issue if you wrote "In January, Petr wrote" or "On Monday, Petr wrote".
This stems from the fact that one needs to translate the complete sentence.
Not isolated phrases and then glue the sentece from them. A common
internationalization misconception. But I recongnize it as a problem. We have
the same problem in Czech.

Yes, I absolutely agree. But constructing correct phrases is beyond the
expected scope of stftime(). There were suggestions that it should
support all cases for a specific language but no, this is not a good idea.
This is a task for a natural language translating software, not for a date
formatting function.

On Sun, Jan 21, 2018 at 10:54:52PM +0100, Petr Kovar wrote:
On Sun, 21 Jan 2018 00:10:28 +0100 (CET)
Rafal Luzynski <digitalfreak lingonborough com> wrote:


So, what format specifier do you use when you actually want to format
a date? This is a rhetoric question, of course the answer is that such
a format specifier does not exist. But it has been decided to be changed.

If it has been decided, then questioning people who do translations is
rhetorical. Isn't it?

Actually it has been decided that "%B" is a specifier used when a full date
is formatted and "%OB" is used when the month is formatted standalone.
It does not say which is genitive, which is nominative, etc. At the moment
my question is whether this is useful for your languages and if you want
it to be applied to your language. If in Czech language the correct case
for a month name when displaying a date (note: I mean just displaying a date,
not constructing the sentences containing a date) is always nominative then
this feature is not useful. But if you can find any useful application for
this feature in Czech language then let's think about it.

I'm unable to decide if the change is overall positive of negative. But
if it happens, it needs proper documentation in nl_langinfo(3),
strftime(3)
etc. E.g. nl_langinfo(3) reads:

MON_{1–12} (LC_TIME) Return name of the n-th month.

If you mean the man pages then indeed, man pages are not part of glibc
project and they need to be changed separately. I'm going to file a bug
report against man today. On the other hand, the info pages are part of
glibc and they will be changed along. BTW, note that no current
documentation
says that this month name must be in a nominative (dictionary, standalone)
form.

The problem is that a name of this month in Czech is "leden". Not "ledna". As
your name is "Rafał" and not "Rafała". Once people upgrade glibc, they will
rightfully complain that the translation is wrong.

It looks like your knowledge of Polish language is greater than my
knowledge of Czech language, I appreciate it. :-) But I think that
you miss the point: the phrase "22 styczeń" (the nominative case) is
never, ever correct in Polish. Really, no exceptions. Because this means
the 22nd January (the 22nd month, not the 22nd day of the month). Unless
you are going to construct a very specific sentence like "This is the 22nd
January in my life" (when you are 22 years old). The only correct phrase
is "22 stycznia" (literally: the 22nd (day) of January). So how useful
are the month names in a nominative case in Polish language, as they are
now? Not much, only when displaying the month names standalone. What can
we use to format a date correctly? Nothing, this is unsupported. So maybe
we should use only the genitive case instead of the nominative? Actually
this is what the Lithuanian locale data do. No, this is also not a good
choice because then we will have no chance to display the month name
standalone.

But this may be different in the Czech language. Do I understand correctly
that the phrase "22. leden" is correct in Czech? Is that the way that other
operating systems display dates in Czech locales? If yes then maybe let's
leave it as is in Czech language. Unless you maybe find a reason to use the
phrase "22. ledna" and for this reason you will agree to replace almost every
occurrence of "%B" with "%OB" in Czech translations. But, again, if you
think that this is too much effort and not enough benefit for the Czech
language then it's OK to leave it as is. The situation is totally different
in Polish language, and in several more as well (Russian, Ukrainian,
Belarusian, Lithuanian, Greek, even Latin).

If we properly change the documentation and articulate it in the release
notes, then it won't be a bug, it will be a feature.

The documentation of glibc (upstream) has been updated, man pages
are not part of glibc but I've already filed a bug report asking them
to update.

With the proposed change it would return the non-dictionary form that
cannot
be used a standalone label and that's wrong. Try running "cal" command.

True, there are some applications which will have to be changed.
cal is on my radar and I'm going to file a pull request today.
Other applications which need change are GNOME Calendar and GNOME Shell
(which also contains a calendar). Minor changes will be required in
date(1) command line utility but this is more tricky. At the moment
I am not aware of other applications, are you?

No, I cannot be aware of existence of myriad of application that I've never
heard
about.

Same here. I think that asking GNOME translators is a good idea because
GNOME consists of a large number of applications. And I think we have found
only about 2 or 3 cases which need to use "%OB" in whole GNOME project.
Similar numbers in other large groups of programs.

Also the reverse solution would be incompatible with what BSD family has
been using for about 20 years now [2] and what POSIX has accepted [2] about
7 years ago (but has not yet published).

I did not knew FreeBSD alrady did the change and POSIX accepted it. I'm glad
the change will be at least somehow portable.

Yes, this was one of the reasons. This is indeed tricky and indeed initially
I thought we should introduce "%OB" for a genitive case even if it would
mean changing almost every occurrence of "%B" in Polish translations.
But then I was told that BSD and POSIX specifications say otherwise.

Regards,

Rafal


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