Subject: Re: What's cooking in git.git (Feb 2011, #06; Sun, 27)

From: Jakub Narebski <[email-masked]>
Date: Wed, 02 Mar 2011 02:32:23 -0800 (PST)

Piotr Krukowiecki <[email-masked]> writes:
> On Wed, Mar 2, 2011 at 6:24 AM, Junio C Hamano <[email-masked]> wrote:
>> Jeff King <[email-masked]> writes:

>>>   - Nit: you nicely use "%d commit%s" to handle the single/plural case
>>>     in the warning message, but then you "them" later on. It needs
>>>     (1 < lost) ? "them" : "it".
>>
>> I actually don't like playing games like that, especially when i18n topic
>> is in flight.  Among the languages I know rules reasonably well, two has
>> the rule that a countable noun is spelled differently depending on the
>> number of that thing is one or more, and one spells the noun the same way
>> regardless of the number.  Who knows if git needs to be translated into a
>> language whose noun changes its shape three-way, depending on the number
>> being one, two, or more?

Well, one of such languages with spelling depending in number of
things is Russian, for which we have translation for git-gui, so
I guess somebody would add one for git itself.
 
> For gettex this is described at
> http://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms

Which includes example for Polish language:

    1 file       =  1 plik
    2,3,4 files  =  2,3,4 pliki
    5-21 files   =  5-21  plików
    22-24 files  =  22-24 pliki
    25-31 files  =  25-31 plików
    and so on

  [...]  
  
  Three forms, special case for one and some numbers ending in 2, 3, or 4
     The header entry would look like this:

          Plural-Forms: nplurals=3; \
              plural=n==1 ? 0 : \
                     n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;

     Languages with this property include:

     Slavic family
          Polish

> Don't know how it's handled in shell scripts or perl or whatever other
> language (which does not use gettext?)

Both shell scripts and Perl scripts would use gettext: gettext.sh for
shell, Locale::Messages for Perl (we need lower level than Text::Domain,
and Locale::Maketext is first no longer recommended, and second does
not use gettext at least by default).

-- 
Jakub Narebski
Poland
ShadeHawk on #git