[kde-i18n-ro] Forma plural

Bruno Haible bruno at clisp.org
Fri Aug 26 22:41:25 CEST 2005


Eddy Petrişor wrote:
> We are currently in the stage of confirming the exact form with a
> grammar manual or at the Romanian Academy. (Romanians any contacts are
> welcome).

Actually the section 3.5.2 of the "Very detailed Romanian grammar"
link at http://en.wikipedia.org/wiki/Romanian_grammar
confirms what you are saying. See especially the first paragraph on
page 106.

> 0 erori
> 1 eroare
> 2 erori
> 19 erori
> 20 de erori
> 25 de erori
> 99 de erori
> 100 de erori
> 101 erori
> 102 erori
> 119 erori
> 120 de erori
> 500 de erori
> 501 erori
> 519 erori
> 520 de erori

The resulting formula is, as you said:

nplurals=3;
plural=(n==1 ? 0 : (((n%100 > 19) || ((n%100 == 0) && (n!=0))) ? 2 : 1))
or
plural=(n==1 ? 0 : (n==0 || ((n%100) > 0 && (n%100) < 20)) ? 1 : 2)

I'm adding this to the GNU gettext documentation:

+ @item Three forms, special case for numbers ending in 00 or [2-9][0-9]
+ The header entry would be:
+
+ @smallexample
+ Plural-Forms: nplurals=3; \
+     plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2;
+ @end smallexample
+
+ @noindent
+ Languages with this property include:
+
+ @table @asis
+ @item Romanic family
+ Romanian
+ @end table

Bruno



More information about the kde-i18n-ro mailing list