Our conclusion regarding Latvian (lv) is that neither our current rules nor
CLDR's are wrong. Both get the important parts right, that is:
- 0 always goes with a certain plural -- this is the basis of CLDR's
category "zero" and GTK's plural 2,
- all n where n%10>=2 except 11..19 go with a certain different plural --
this is the basis of CLDR's category "other" and GTK's plural 1,
- all n where n%10==1 && n%100!=11 go with singular -- this is the basis of
CLDR's category "one" and GTK's plural 0.

All numbers not covered above (11..19, 10, 20 etc.) can go with either of
the two plurals (sometimes depending on how the number is spelled out /
read out loud). So, GTK+ puts all of them in "other" (plural 1), while CLDR
puts some in "zero".

Arguably, the GTK+ formulation is more localization-friendly, as it gives 0
its own category at no extra cost.


On 27 July 2015 at 00:17, Shaun McCance <sha...@gnome.org> wrote:

> Recently, I was working on updating the plural forms used inside
> yelp-xsl localization stylesheets. I looked two places to make sure I
> got things right: the Unicode CLDR project, and the PO files in gtk+.
> Usually they said the same thing, and I was happy. Sometimes they
> didn't, and that confuses me.
>
>
> http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html
>
> I'm sending that list of discrepancies in case it's something that needs
> to be followed up on. I'm not saying anybody's wrong or there's a bug. I
> just think the differences are curious.
>
> am as bn gu hi kn mr pa si
> ==============================================
> GTK+ says plurals=2; plural=(n != 1);
> CLDR says the singular includes 0
> (This is by far the most common discrepancy.)
>
> br
> ======
> GTK+ says nplurals=2; plural=n > 1; (singular+zero, and plural)
> CLDR says 5 forms: one, two, few, many, other
>
> cy
> ======
> GTK+ says nplurals=2; plural=(n==2) ? 1 : 0;
> CLDR shows 6 forms: zero, one, two, few (3), many (6), and other
>
> dz
> ======
> GTK+ says nplurals=2; plural=(n!=1);\
> CLDR says one form
>
> fa
> ======
> GTK+ says nplurals=1; plural=0;
> CLDR says two forms: singular+zero, and plural
>
> he
> ======
> GTK+ says nplurals=2; plural= (n!=1);
> CLDR says four forms: one, two, many, other
>
> is
> ======
> GTK+ says nplurals=2; plural=1;
> CLDR says two forms, but singular is n%10=1
>
> lv
> ======
> GTK+ says nplurals=3;
>   plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);
> CLDR says 3 forms: zero(%10), one(%10), and other
>
> mk
> ======
> GTK+ declares one more form than it calculates:
> nplurals=3; plural= n==1 || n%10==1 ? 0 : 1
> This isn't the case in other mk.po files in GNOME, so this is probably
> just a type that should be corrected.
>
> ms
> ======
> GTK+ doesn't have forms, so defaults to en rules
> CLDR says 1 form
>
> tr
> ======
> GTK+ says nplurals=1; plural=0;
> CLDR says two forms: singular, and plural
>
>
>
> _______________________________________________
> gnome-i18n mailing list
> gnome-i18n@gnome.org
> https://mail.gnome.org/mailman/listinfo/gnome-i18n
>
_______________________________________________
gnome-i18n mailing list
gnome-i18n@gnome.org
https://mail.gnome.org/mailman/listinfo/gnome-i18n

Reply via email to