Subject: bug#26621: hint for translators is missing from POT file, but is opaque anyhow

From: Benno Schulenberg <[email-masked]>
Date: Sun, 23 Apr 2017 17:17:06 +0200

Commit 2dab6cd3c2e18eb574b24e54fba86a33c80b6a27 changed
the progress messages for dd, but in doing so separated
the instruction/hint for translators from the call to
ngettext().  For xgettext to pick up such comments, the
comment must end of the line directly before the call.
So the current POT file for coreutils does not contain
this comment/hint/instruction.

Second, the comment seems to consist of two parts that
appear to be unrelated.  So it would be better to split
the text into two separate paragraphs.

Third, the second part of that comment reads like this:

     If one of
     these formats A looks shorter on the screen than another format
     B, then A's string length should be less than B's, and appending
     strlen (B) - strlen (A) spaces to A should make it appear to be
     at least as long as B.

I don't understand what it is trying to say.  Does it say
that if, of those four strings, untranslated string A is
shorter than untranslated string B, that then also the
translation of string A must be shorter than the translation
of string B?  If yes, then: 1) please reword, 2) why?, and
3) does the program blow up if not?  Or is this part of the
comment not meant for translators at all?

Fourth, the first part of the comment begins with this:

     The instances of "s" in the following formats are
     the SI symbol "s" (meaning second), and should not be translated.

Why should they not be translated?  In order to avoid problems
with grammatical congruence in languages like Polish?  But for
a language like Dutch I would accept the mild incongruence
when the elapsed time is exactly x.1 seconds, which will be
a rare occasion.  For all other numbers it will be much clearer
to say "seconden" instead of just "s".  So I would suggest to
change this part of the comment to:

     The instances of "s" in the next four strings are the SI
     symbol "s" (meaning seconds).  It may be preferrable
     to leave them untranslated, to avoid problems with
     grammatical congruence.

Fifth (and this is the reason I arrived here), when using
status=progress, the elapsed time that is printed is shown
with four or five decimals.  1) Is the time measurement
really this accurate?  2) Sometimes the last one or two
or three decimals happen to be zero, and then they get
truncated, making the progress message a bit shorter for
one second.  It would be nicer to use a fixed number of
decimals so that the message doesn't unnecessarily "jump".

Sixth, the format string uses %g, which means that the
number of seconds will be displayed in exponential form
when the number becomes very large.  Is that intentional?
Wouldn't it be better to use %f?  I've played a bit with it,
and I think %.1f is best, because also the other numbers
in the progress message, when they are in decimal form,
use a single decimal of precision.

Benno

-- 
http://www.fastmail.com - Email service worth paying for. Try it for free