plural forms for counting =?UTF-8?Q?=E2=80=9Ccomposed=E2=80=9D?= numbers: =?UTF-8?Q?=E2=80=9C3?= hours, 2 minutes =?UTF-8?Q?remain=28s=29=E2=80=9D=3F?=



Feel free to skim over this message, but just want to know where you can
help as a translator with a non-english mother tongue. Your feedback is
important for solving the Nautilus translation bug 551222 [1].

1. Where YOU can help us
========================

In your mother tongue, in the sentence

“3 hours, 2 minutes remain(s)”

do you decide which verb form (i.e. plural form) to use for “remain”
based on

A. the SUM of hours and minutes
B. ONLY the hours
C. ONLY the minutes?

In English, Spanish, Italian and German we just A., i.e. the sum.

However, these languages are special in that we just have two plural
forms N=1, N!=1, so in this case the plural would always be used.

On the other there are very complex plural forms in some languages (for
instance in Russian).

2. Some background
==================

As you may know, in many languages (including English) there are
participle constructions. In this concrete example, we consider how the
remaining time of a file operation (download, etc.) can be specified
like:

  3 hours, 2 minutes remaining
  1 minute remaining.

We actually use “... left” in Nautilus, but we will consider analogies
to a verb so remaining is used: Some languages have a plural-sensitive
participle, in analogy to

  3 hours, 2 minutes remain
  1 minute remains.

Consider italian, where we have

  3 ore, 2 minuti remanenti (plural)
  1 minuto rimanente (singular)

even in the participle case.

Now the big question is: What plural forms are supposed to be used in
this context?

Obviously in all languages, if only hours and minutes are displayed, we
can apply the “normal” ngettext() rules:

ngettext ("%d hour remaining",
          "%d hours remaining", number_of_hours);

or

ngettext ("%d minute remaining",
          "%d minutes remaining", number_of_minutes);

and everything would be correct in any language, assuming the correct
plural forms and translations are set up.

However, now let's consider the tricky case where both of them are
displayed:

H = ngettext ("%d hour",
	      "%d hours",
	      number_of_hours);

M = ngettext ("%d minute",
	      "%d minutes",
	      number_of_minutes);

i.e. each of the nouns is declined according to the number of the
objects.

Now the composed string “3 hours, 2 minutes remaining”:

ngettext ("A, B remaining", /* singular, i.e. "remain" */
          "A, B remaining", /* plural, i.e. "remains" */
	  ???);

The big question is how the ??? would look like. We have three basic
possibilities:

  ??? = number_of_hours
  ??? = number_of_minutes
  ??? = number_of_hours + number_of_minutes

I know that for some Middle and Southern European languages (at least
Italian, Spanish and German), we count both the hours and the minutes as
distinct objects and add them up, as specified under 1.

(hours + minutes > 1) => remanenti, verbleiben
else => rimenente, verbleibt

That said, ??? = number_of_minutes + number_of_hours.

i.e. whenever there are one or more hour and one or more minute
remaining, the plural form is used. In other words, we always use the
plural form in the composed case.

Now the question is: What do we do in a fictive language where

N=1 => form 1
N=5 => form 2
else => form 3

A similar structure is at least used for Russian. Assuming we apply the
rule above, in the example

  3 hours, 2 minutes remaining

we have

  N=3 (hours) + 2 (minutes) = 5
  N=5 => form 2

Is that rule actually correct for all languages? (cf. section 1.)


best regards,
 Christian Neumair

[1] http://bugzilla.gnome.org/show_bug.cgi?id=551222

-- 
Christian Neumair <cneumair gnome org>




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