@table @asis
@item Asian family
-Japanese, Korean, Vietnamese
+Japanese, @c 122.1 million speakers
+Vietnamese, @c 68.6 million speakers
+Korean @c 66.3 million speakers
@end table
@item Two forms, singular used for one only
@table @asis
@item Germanic family
-Danish, Dutch, English, Faroese, German, Norwegian, Swedish
-@item Finno-Ugric family
-Estonian, Finnish
+English, @c 328.0 million speakers
+German, @c 96.9 million speakers
+Dutch, @c 21.7 million speakers
+Swedish, @c 8.3 million speakers
+Danish, @c 5.6 million speakers
+Norwegian, @c 4.6 million speakers
+Faroese @c 0.05 million speakers
+@item Romanic family
+Spanish, @c 328.5 million speakers
+Portuguese, @c 178.0 million speakers - 163 million Brazilian Portuguese
+Italian @c 61.7 million speakers
@item Latin/Greek family
-Greek
+Greek @c 13.1 million speakers
+@item Finno-Ugric family
+Finnish, @c 5.0 million speakers
+Estonian @c 1.0 million speakers
@item Semitic family
-Hebrew
-@item Romanic family
-Italian, Portuguese, Spanish
+Hebrew @c 5.3 million speakers
@item Artificial
-Esperanto
+Esperanto @c 2 million speakers
@end table
@noindent
@table @asis
@item Finno-Ugric family
-Hungarian
+Hungarian @c 12.5 million speakers
@item Turkic/Altaic family
-Turkish
+Turkish @c 50.8 million speakers
@end table
Hungarian does not appear to have a plural if you look at sentences involving
@table @asis
@item Romanic family
-French, Brazilian Portuguese
+Brazilian Portuguese, @c 163 million speakers
+French @c 67.8 million speakers
@end table
@item Three forms, special case for zero
@table @asis
@item Baltic family
-Latvian
+Latvian @c 1.5 million speakers
@end table
@item Three forms, special cases for one and two
@table @asis
@item Celtic
-Gaeilge (Irish)
+Gaeilge (Irish) @c 0.4 million speakers
@end table
@item Three forms, special case for numbers ending in 00 or [2-9][0-9]
@table @asis
@item Romanic family
-Romanian
+Romanian @c 23.4 million speakers
@end table
@item Three forms, special case for numbers ending in 1[2-9]
@table @asis
@item Baltic family
-Lithuanian
+Lithuanian @c 3.2 million speakers
@end table
@item Three forms, special cases for numbers ending in 1 and 2, 3, 4, except those ending in 1[1-4]
@table @asis
@item Slavic family
-Croatian, Serbian, Russian, Ukrainian
+Russian, @c 143.6 million speakers
+Ukrainian, @c 37.0 million speakers
+Serbian, @c 7.0 million speakers
+Croatian @c 5.5 million speakers
@end table
@item Three forms, special cases for 1 and 2, 3, 4
@table @asis
@item Slavic family
-Slovak, Czech
+Czech, @c 9.5 million speakers
+Slovak @c 5.0 million speakers
@end table
@item Three forms, special case for one and some numbers ending in 2, 3, or 4
@table @asis
@item Slavic family
-Polish
+Polish @c 40.0 million speakers
@end table
@item Four forms, special case for one and all numbers ending in 02, 03, or 04
@table @asis
@item Slavic family
-Slovenian
+Slovenian @c 1.9 million speakers
@end table
@end table
/* Table of known plural form expressions.
- Copyright (C) 2001-2006, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2001-2006, 2009-2010 Free Software Foundation, Inc.
Written by Bruno Haible <haible@clisp.cons.org>, 2002.
This program is free software: you can redistribute it and/or modify
struct plural_table_entry plural_table[] =
{
{ "ja", "Japanese", "nplurals=1; plural=0;" },
- { "ko", "Korean", "nplurals=1; plural=0;" },
{ "vi", "Vietnamese", "nplurals=1; plural=0;" },
- { "da", "Danish", "nplurals=2; plural=(n != 1);" },
- { "nl", "Dutch", "nplurals=2; plural=(n != 1);" },
+ { "ko", "Korean", "nplurals=1; plural=0;" },
{ "en", "English", "nplurals=2; plural=(n != 1);" },
- { "fo", "Faroese", "nplurals=2; plural=(n != 1);" },
{ "de", "German", "nplurals=2; plural=(n != 1);" },
- { "nb", "Norwegian Bokmal", "nplurals=2; plural=(n != 1);" },
+ { "nl", "Dutch", "nplurals=2; plural=(n != 1);" },
+ { "sv", "Swedish", "nplurals=2; plural=(n != 1);" },
+ { "da", "Danish", "nplurals=2; plural=(n != 1);" },
{ "no", "Norwegian", "nplurals=2; plural=(n != 1);" },
+ { "nb", "Norwegian Bokmal", "nplurals=2; plural=(n != 1);" },
{ "nn", "Norwegian Nynorsk", "nplurals=2; plural=(n != 1);" },
- { "sv", "Swedish", "nplurals=2; plural=(n != 1);" },
- { "et", "Estonian", "nplurals=2; plural=(n != 1);" },
- { "fi", "Finnish", "nplurals=2; plural=(n != 1);" },
+ { "fo", "Faroese", "nplurals=2; plural=(n != 1);" },
+ { "es", "Spanish", "nplurals=2; plural=(n != 1);" },
+ { "pt", "Portuguese", "nplurals=2; plural=(n != 1);" },
+ { "it", "Italian", "nplurals=2; plural=(n != 1);" },
{ "el", "Greek", "nplurals=2; plural=(n != 1);" },
+ { "fi", "Finnish", "nplurals=2; plural=(n != 1);" },
+ { "et", "Estonian", "nplurals=2; plural=(n != 1);" },
{ "he", "Hebrew", "nplurals=2; plural=(n != 1);" },
- { "it", "Italian", "nplurals=2; plural=(n != 1);" },
- { "pt", "Portuguese", "nplurals=2; plural=(n != 1);" },
- { "es", "Spanish", "nplurals=2; plural=(n != 1);" },
{ "eo", "Esperanto", "nplurals=2; plural=(n != 1);" },
{ "hu", "Hungarian", "nplurals=2; plural=(n != 1);" },
{ "tr", "Turkish", "nplurals=2; plural=(n != 1);" },
- { "fr", "French", "nplurals=2; plural=(n > 1);" },
{ "pt_BR", "Brazilian", "nplurals=2; plural=(n > 1);" },
+ { "fr", "French", "nplurals=2; plural=(n > 1);" },
{ "lv", "Latvian", "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" },
{ "ga", "Irish", "nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;" },
{ "ro", "Romanian", "nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2;" },
{ "lt", "Lithuanian", "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);" },
- { "hr", "Croatian", "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" },
- { "sr", "Serbian", "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" },
{ "ru", "Russian", "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" },
{ "uk", "Ukrainian", "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" },
- { "sk", "Slovak", "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" },
+ { "sr", "Serbian", "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" },
+ { "hr", "Croatian", "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" },
{ "cs", "Czech", "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" },
+ { "sk", "Slovak", "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" },
{ "pl", "Polish", "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" },
{ "sl", "Slovenian", "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" }
};