From kde-i18n-doc Mon Apr 02 17:01:05 2001 From: Stephan Kulow Date: Mon, 02 Apr 2001 17:01:05 +0000 To: kde-i18n-doc Subject: plural handling X-MARC-Message: https://marc.info/?l=kde-i18n-doc&m=98623103801458 Hi! OK, this is from the manual of gettext 0.10.36. What I'd like to know if someone knows about a different way to handle plurals or if your language isn't listed below. I played around and I think we should stay with gettext 0.10.35 + a patch on my own for xgettext (let's call this kgettext :). My older patch doesn't apply to gettext 0.10.36 anyway. So we're stuck to the solution I posted yesterday. So I will implement this plural handling and hope it will please at least the slavic languages. For this you will have to indicate if a message isn't marked up for plural handling in the sources (just as the context, it won't happen automaticly). Let me know. Greetings, Stephan Only one form: Some languages only require one single form. There is no distinction between the singular and plural form. An appropriate header entry would look like this: Plural-Forms: nplurals=1; plural=0; Languages with this property include: Finno-Ugric family Hungarian Asian family Japanese Turkic/Altaic family Turkish Two forms, singular used for one only This is the form used in most existing programs since it is what English is using. A header entry would look like this: Plural-Forms: nplurals=2; plural=n != 1; (Note: this uses the feature of C expressions that boolean expressions have to value zero or one.) Languages with this property include: Germanic family Danish, Dutch, English, German, Norwegian, Swedish Finno-Ugric family Finnish Latin/Greek family Greek Semitic family Hebrew Romanic family Italian, Spanish Artificial Esperanto Two forms, singular used for zero and one Exceptional case in the language family. The header entry would be: Plural-Forms: nplurals=2; plural=n>1; Languages with this property include: Romanic family French Three forms, special cases for one and two The header entry would be: Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2; Languages with this property include: Celtic Gaeilge Three forms, special case for one and all 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 ? 1 : 2; Languages with this property include: Slavic family Russian 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; (Continuation in the next line is possible.) Languages with this property include: Slavic family Polish Four forms, special case for one and all numbers ending in 2, 3, or 4 The header entry would look like this: Plural-Forms: nplurals=4; \ plural=n==1 ? 0 : \ n%10==2 ? 1 : n%10==3 || n%10==4 ? 2 : 3; Languages with this property include: Slavic family Slovenian -- Teigwaren heissen Teigwaren, weil sie Teig waren * J. v. d. Lippe MFCH