(bug 40380) inexistent language files are loaded
authorHashar <hashar@free.fr>
Thu, 20 Sep 2012 10:00:36 +0000 (10:00 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 20 Sep 2012 10:00:36 +0000 (10:00 +0000)
Revert "Remove all custom plural rules and use CLDR plural rule system"

This reverts commit c575d2ff7bfee4049998a4d43676fd8f2250582c

Apparently the files are still shipped by the resources loader and causes at least the UploadWizard to be malfunctioning when used in the context of Wiki Loves Monument campaign.

43 files changed:
resources/mediawiki.language/languages/am.js [new file with mode: 0644]
resources/mediawiki.language/languages/bat-smg.js [new file with mode: 0644]
resources/mediawiki.language/languages/be-tarask.js [new file with mode: 0644]
resources/mediawiki.language/languages/be.js [new file with mode: 0644]
resources/mediawiki.language/languages/bh.js [new file with mode: 0644]
resources/mediawiki.language/languages/bs.js
resources/mediawiki.language/languages/cs.js [new file with mode: 0644]
resources/mediawiki.language/languages/cu.js [new file with mode: 0644]
resources/mediawiki.language/languages/cy.js [new file with mode: 0644]
resources/mediawiki.language/languages/dsb.js
resources/mediawiki.language/languages/fr.js [new file with mode: 0644]
resources/mediawiki.language/languages/ga.js
resources/mediawiki.language/languages/gd.js [new file with mode: 0644]
resources/mediawiki.language/languages/gv.js [new file with mode: 0644]
resources/mediawiki.language/languages/hr.js [new file with mode: 0644]
resources/mediawiki.language/languages/hsb.js
resources/mediawiki.language/languages/hy.js
resources/mediawiki.language/languages/ksh.js [new file with mode: 0644]
resources/mediawiki.language/languages/ln.js [new file with mode: 0644]
resources/mediawiki.language/languages/lt.js [new file with mode: 0644]
resources/mediawiki.language/languages/lv.js [new file with mode: 0644]
resources/mediawiki.language/languages/mg.js [new file with mode: 0644]
resources/mediawiki.language/languages/mk.js [new file with mode: 0644]
resources/mediawiki.language/languages/mo.js [new file with mode: 0644]
resources/mediawiki.language/languages/mt.js [new file with mode: 0644]
resources/mediawiki.language/languages/nso.js [new file with mode: 0644]
resources/mediawiki.language/languages/pl.js [new file with mode: 0644]
resources/mediawiki.language/languages/ro.js [new file with mode: 0644]
resources/mediawiki.language/languages/ru.js
resources/mediawiki.language/languages/se.js [new file with mode: 0644]
resources/mediawiki.language/languages/sh.js [new file with mode: 0644]
resources/mediawiki.language/languages/sk.js [new file with mode: 0644]
resources/mediawiki.language/languages/sl.js
resources/mediawiki.language/languages/sma.js [new file with mode: 0644]
resources/mediawiki.language/languages/sr-ec.js [new file with mode: 0644]
resources/mediawiki.language/languages/sr-el.js [new file with mode: 0644]
resources/mediawiki.language/languages/sr.js [new file with mode: 0644]
resources/mediawiki.language/languages/ti.js [new file with mode: 0644]
resources/mediawiki.language/languages/tl.js [new file with mode: 0644]
resources/mediawiki.language/languages/uk.js
resources/mediawiki.language/languages/wa.js [new file with mode: 0644]
resources/mediawiki.language/mediawiki.language.init.js
tests/qunit/suites/resources/mediawiki/mediawiki.cldr.test.js

diff --git a/resources/mediawiki.language/languages/am.js b/resources/mediawiki.language/languages/am.js
new file mode 100644 (file)
index 0000000..fa5d3c5
--- /dev/null
@@ -0,0 +1,8 @@
+/**
+ * Amharic (አማርኛ) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 2 );
+       return ( count <= 1 ) ? forms[0] : forms[1];
+};
diff --git a/resources/mediawiki.language/languages/bat-smg.js b/resources/mediawiki.language/languages/bat-smg.js
new file mode 100644 (file)
index 0000000..6e3f4cc
--- /dev/null
@@ -0,0 +1,18 @@
+/**
+ * Samogitian (Žemaitėška) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 4 );
+       count = Math.abs( count );
+       if ( count === 0 || ( count % 100 === 0 || ( count % 100 >= 10 && count % 100 < 20 ) ) ) {
+               return forms[2];
+       }
+       if ( count % 10 === 1 ) {
+               return forms[0];
+       }
+       if ( count % 10 === 2 ) {
+               return forms[1];
+       }
+       return forms[3];
+};
diff --git a/resources/mediawiki.language/languages/be-tarask.js b/resources/mediawiki.language/languages/be-tarask.js
new file mode 100644 (file)
index 0000000..c19f47d
--- /dev/null
@@ -0,0 +1,23 @@
+/**
+ * Belarusian in Taraskievica orthography (Беларуская (тарашкевіца)) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       if ( forms.length === 2 ) {
+               return count == 1 ? forms[0] : forms[1];
+       }
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count > 10 && Math.floor( ( count % 100 ) / 10 ) == 1 ) {
+               return forms[2];
+       }
+       switch ( count % 10 ) {
+               case 1:
+                       return forms[0];
+               case 2:
+               case 3:
+               case 4:
+                       return forms[1];
+               default:
+                       return forms[2];
+       }
+};
diff --git a/resources/mediawiki.language/languages/be.js b/resources/mediawiki.language/languages/be.js
new file mode 100644 (file)
index 0000000..97ceee3
--- /dev/null
@@ -0,0 +1,20 @@
+/**
+ * Belarusian normative (Беларуская) language functions
+ */
+
+mediaWiki.language.convertPlural = function convertPlural( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count > 10 && Math.floor( ( count % 100 ) / 10 ) == 1 ) {
+               return forms[2];
+       }
+       switch ( count % 10 ) {
+               case 1:
+                       return forms[0];
+               case 2:
+               case 3:
+               case 4:
+                       return forms[1];
+               default:
+                       return forms[2];
+       }
+};
diff --git a/resources/mediawiki.language/languages/bh.js b/resources/mediawiki.language/languages/bh.js
new file mode 100644 (file)
index 0000000..abbf8bd
--- /dev/null
@@ -0,0 +1,8 @@
+/**
+ * Bihari (भोजपुरी) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 2 );
+       return ( count <= 1 ) ? forms[0] : forms[1];
+};
index c0c77aa..9affcf0 100644 (file)
@@ -2,6 +2,23 @@
  * Bosnian (bosanski) language functions
  */
 
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count > 10 && Math.floor( ( count % 100 ) / 10 ) == 1 ) {
+               return forms[2];
+       }
+       switch ( count % 10 ) {
+               case 1:
+                       return forms[0];
+               case 2:
+               case 3:
+               case 4:
+                       return forms[1];
+               default:
+                       return forms[2];
+       }
+};
+
 mediaWiki.language.convertGrammar = function( word, form ) {
        var grammarForms = mw.language.getData( 'bs', 'grammarForms' );
        if ( grammarForms && grammarForms[form] ) {
diff --git a/resources/mediawiki.language/languages/cs.js b/resources/mediawiki.language/languages/cs.js
new file mode 100644 (file)
index 0000000..04dda99
--- /dev/null
@@ -0,0 +1,17 @@
+/**
+ * Czech (čeština [subst.], český [adj.], česky [adv.]) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       switch ( count ) {
+               case 1:
+                       return forms[0];
+               case 2:
+               case 3:
+               case 4:
+                       return forms[1];
+               default:
+                       return forms[2];
+       }
+};
diff --git a/resources/mediawiki.language/languages/cu.js b/resources/mediawiki.language/languages/cu.js
new file mode 100644 (file)
index 0000000..35a5473
--- /dev/null
@@ -0,0 +1,18 @@
+/**
+ * Old Church Slavonic (Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 4 );
+       switch ( count % 10 ) {
+               case 1:
+                       return forms[0];
+               case 2:
+                       return forms[1];
+               case 3:
+               case 4:
+                       return forms[2];
+               default:
+                       return forms[3];
+       }
+};
diff --git a/resources/mediawiki.language/languages/cy.js b/resources/mediawiki.language/languages/cy.js
new file mode 100644 (file)
index 0000000..333d956
--- /dev/null
@@ -0,0 +1,15 @@
+/**
+ * Welsh (Cymraeg) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 6 );
+       count = Math.abs( count );
+       if ( count >= 0 && count <= 3 ) {
+               return forms[count];
+       }
+       if ( count == 6 ) {
+               return forms[4];
+       }
+       return forms[5];
+};
index a42a8f7..e3c5808 100644 (file)
@@ -2,6 +2,21 @@
  * Lower Sorbian (Dolnoserbski) language functions
  */
 
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 4 );
+       switch ( Math.abs( count ) % 100 ) {
+               case 1:
+                       return forms[0];
+               case 2:
+                       return forms[1];
+               case 3:
+               case 4:
+                       return forms[2];
+               default:
+                       return forms[3];
+       }
+};
+
 mediaWiki.language.convertGrammar = function( word, form ) {
        var grammarForms = mw.language.getData( 'dsb', 'grammarForms' );
        if ( grammarForms && grammarForms[form] ) {
diff --git a/resources/mediawiki.language/languages/fr.js b/resources/mediawiki.language/languages/fr.js
new file mode 100644 (file)
index 0000000..bfb52d2
--- /dev/null
@@ -0,0 +1,8 @@
+/**
+ * French (Français) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 2 );
+       return ( count <= 1 ) ? forms[0] : forms[1];
+};
index a27b489..51fce35 100644 (file)
@@ -2,6 +2,18 @@
  * Irish (Gaeilge) language functions
  */
 
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count == 1 ) {
+               return forms[0];
+       }
+       if ( count == 2 ) {
+               return forms[1];
+       }
+       return forms[2];
+};
+
+
 mediaWiki.language.convertGrammar = function( word, form ) {
        var grammarForms = mw.language.getData( 'ga', 'grammarForms' );
        if ( grammarForms && grammarForms[form] ) {
diff --git a/resources/mediawiki.language/languages/gd.js b/resources/mediawiki.language/languages/gd.js
new file mode 100644 (file)
index 0000000..5ac2007
--- /dev/null
@@ -0,0 +1,18 @@
+/**
+ * Scots Gaelic (Gàidhlig) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 4 );
+       count = Math.abs( count );
+       if ( count === 1 ) {
+               return forms[0];
+       }
+       if ( count === 2 ) {
+               return forms[1];
+       }
+       if ( count >= 3 && count <= 10 ) {
+               return forms[2];
+       }
+       return forms[3];
+};
diff --git a/resources/mediawiki.language/languages/gv.js b/resources/mediawiki.language/languages/gv.js
new file mode 100644 (file)
index 0000000..afc2b5d
--- /dev/null
@@ -0,0 +1,18 @@
+/**
+ * Manx (Gaelg) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 4 );
+       if ( count > 0 && ( count % 20 ) === 0 ) {
+               return forms[0];
+       }
+       switch ( count % 10 ) {
+               case 1:
+                       return forms[1];
+               case 2:
+                       return forms[2];
+               default:
+                       return forms[3];
+       }
+};
diff --git a/resources/mediawiki.language/languages/hr.js b/resources/mediawiki.language/languages/hr.js
new file mode 100644 (file)
index 0000000..e3ce291
--- /dev/null
@@ -0,0 +1,20 @@
+/**
+ * Croatian (hrvatski) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count > 10 && Math.floor( ( count % 100 ) / 10 ) == 1 ) {
+               return forms[2];
+       }
+       switch ( count % 10 ) {
+               case 1:
+                       return forms[0];
+               case 2:
+               case 3:
+               case 4:
+                       return forms[1];
+               default:
+                       return forms[2];
+       }
+};
index 211d67b..6aa993c 100644 (file)
@@ -2,6 +2,22 @@
  * Upper Sorbian (Hornjoserbsce) language functions
  */
 
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 4 );
+       switch ( Math.abs( count ) % 100 ) {
+               case 1:
+                       return forms[0];
+               case 2:
+                       return forms[1];
+               case 3:
+               case 4:
+                       return forms[2];
+               default:
+                       return forms[3];
+       }
+};
+
+
 mediaWiki.language.convertGrammar = function( word, form ) {
        var grammarForms =mw.language.getData( 'hsb', 'grammarForms' );
        if ( grammarForms && grammarForms[form] ) {
index 215e750..b51b2b6 100644 (file)
@@ -2,6 +2,11 @@
  * Armenian (Հայերեն) language functions
  */
 
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 2 );
+       return ( Math.abs( count ) <= 1 ) ? forms[0] : forms[1];
+};
+
 mediaWiki.language.convertGrammar = function( word, form ) {
        var grammarForms = mw.language.getData( 'hy', 'grammarForms' );
        if ( grammarForms && grammarForms[form] ) {
diff --git a/resources/mediawiki.language/languages/ksh.js b/resources/mediawiki.language/languages/ksh.js
new file mode 100644 (file)
index 0000000..ed90732
--- /dev/null
@@ -0,0 +1,14 @@
+/**
+ * Ripuarian (Ripoarƒósh) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count == 1 ) {
+               return forms[0];
+       }
+       if ( count == 0 ) {
+               return forms[2];
+       }
+       return forms[1];
+};
diff --git a/resources/mediawiki.language/languages/ln.js b/resources/mediawiki.language/languages/ln.js
new file mode 100644 (file)
index 0000000..9b9e456
--- /dev/null
@@ -0,0 +1,8 @@
+/**
+ * Lingala (Lingála) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 2 );
+       return ( count <= 1 ) ? forms[0] : forms[1];
+};
diff --git a/resources/mediawiki.language/languages/lt.js b/resources/mediawiki.language/languages/lt.js
new file mode 100644 (file)
index 0000000..04964af
--- /dev/null
@@ -0,0 +1,18 @@
+/**
+ * Lithuanian (Lietuvių) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       // if the number is not mentioned in message, then use $form[0] for singular and $form[1] for plural or zero
+       if ( forms.length == 2 ) {
+               return count == 1 ? forms[0] : forms[1];
+       }
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count % 10 == 1 && count % 100 != 11 ) {
+               return forms[0];
+       }
+       if ( count % 10 >= 2 && ( count % 100 < 10 || count % 100 >= 20 ) ) {
+               return forms[1];
+       }
+       return forms[2];
+};
diff --git a/resources/mediawiki.language/languages/lv.js b/resources/mediawiki.language/languages/lv.js
new file mode 100644 (file)
index 0000000..d4bec44
--- /dev/null
@@ -0,0 +1,8 @@
+/**
+ * Latvian (Latviešu) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 2 );        
+       return ( ( count % 10 == 1 ) && ( count % 100 != 11 ) ) ? forms[0] : forms[1];
+};
diff --git a/resources/mediawiki.language/languages/mg.js b/resources/mediawiki.language/languages/mg.js
new file mode 100644 (file)
index 0000000..b65e96e
--- /dev/null
@@ -0,0 +1,8 @@
+/**
+ * Malagasy (Malagasy) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 2 );
+       return ( count <= 1 ) ? forms[0] : forms[1];
+};
diff --git a/resources/mediawiki.language/languages/mk.js b/resources/mediawiki.language/languages/mk.js
new file mode 100644 (file)
index 0000000..c89bbac
--- /dev/null
@@ -0,0 +1,8 @@
+/**
+ * Macedonian (Македонски) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 2 );
+       return ( ( count % 10 === 1 ) && ( count % 100 !== 11 ) ) ? forms[0] : forms[1];
+};
diff --git a/resources/mediawiki.language/languages/mo.js b/resources/mediawiki.language/languages/mo.js
new file mode 100644 (file)
index 0000000..0c4b696
--- /dev/null
@@ -0,0 +1,14 @@
+/**
+ * Moldavian (Молдовеняскэ) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count == 1 ) {
+               return forms[0];
+       }
+       if ( count == 0 || count % 100 < 20 ) {
+               return forms[1];
+       }
+       return forms[2];
+};
diff --git a/resources/mediawiki.language/languages/mt.js b/resources/mediawiki.language/languages/mt.js
new file mode 100644 (file)
index 0000000..44c7bff
--- /dev/null
@@ -0,0 +1,17 @@
+/**
+ * Maltese (Malti) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 4 );
+       if ( count == 1 ) {
+               return forms[0];
+       }
+       if ( count == 0 || ( count % 100 > 1 && count % 100 < 11 ) ) {
+               return forms[1];
+       }
+       if ( count % 100 > 10 && count % 100 < 20 ) {
+               return forms[2];
+       }
+       return forms[3];
+};
diff --git a/resources/mediawiki.language/languages/nso.js b/resources/mediawiki.language/languages/nso.js
new file mode 100644 (file)
index 0000000..30cf189
--- /dev/null
@@ -0,0 +1,8 @@
+/**
+ * Northern Sotho (Sesotho sa Leboa) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 2 );
+       return ( count <= 1 ) ? forms[0] : forms[1];
+};
diff --git a/resources/mediawiki.language/languages/pl.js b/resources/mediawiki.language/languages/pl.js
new file mode 100644 (file)
index 0000000..03e0d84
--- /dev/null
@@ -0,0 +1,21 @@
+/**
+ * Polish (polski) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       count = Math.abs( count );
+       if ( count == 1 ) {
+               return forms[0];
+       }
+       switch ( count % 10 ) {
+               case 2:
+               case 3:
+               case 4:
+                       if ( count / 10 % 10 != 1 ) {
+                               return forms[1];
+                       }
+               default:
+                       return forms[2];
+       }
+};
diff --git a/resources/mediawiki.language/languages/ro.js b/resources/mediawiki.language/languages/ro.js
new file mode 100644 (file)
index 0000000..42610fe
--- /dev/null
@@ -0,0 +1,14 @@
+/**
+ * Romanian (Română) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count == 1 ) {
+               return forms[0];
+       }
+       if ( count == 0 || count % 100 < 20 ) {
+               return forms[1];
+       }
+       return forms[2];
+};
index cfdbfc3..42be4f9 100644 (file)
@@ -2,6 +2,26 @@
  * Russian (Русский) language functions
  */
 
+mediaWiki.language.convertPlural = function( count, forms ) {
+       if ( forms.length === 2 ) {
+               return count == 1 ? forms[0] : forms[1];                
+       }
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count > 10 && Math.floor( ( count % 100 ) / 10 ) == 1 ) {
+               return forms[2];
+       }
+       switch ( count % 10 ) {
+               case 1:
+                       return forms[0];
+               case 2:
+               case 3:
+               case 4:
+                       return forms[1];
+               default:
+                       return forms[2];
+       }
+};
+
 mediaWiki.language.convertGrammar = function( word, form ) {
        var grammarForms = mw.language.getData( 'ru', 'grammarForms' );
        if ( grammarForms && grammarForms[form] ) {
diff --git a/resources/mediawiki.language/languages/se.js b/resources/mediawiki.language/languages/se.js
new file mode 100644 (file)
index 0000000..e1ae5b9
--- /dev/null
@@ -0,0 +1,17 @@
+/**
+ * Northern Sami (Sámegiella) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       if ( !forms || forms.length === 0 ) {
+                       return '';
+       }
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count == 1 ) {
+               return forms[0];
+       }
+       if ( count == 2 ) {
+               return forms[1];
+       }
+       return forms[2];
+};
diff --git a/resources/mediawiki.language/languages/sh.js b/resources/mediawiki.language/languages/sh.js
new file mode 100644 (file)
index 0000000..719b0c5
--- /dev/null
@@ -0,0 +1,23 @@
+/**
+ * Serbo-Croatian (Srpskohrvatski / Српскохрватски) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       if ( forms.length === 2 ) {
+               return count == 1 ? forms[0] : forms[1];
+       }
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count > 10 && Math.floor( ( count % 100 ) / 10 ) == 1 ) {
+               return forms[2];
+       }
+       switch ( count % 10 ) {
+               case 1:
+                       return forms[0];
+               case 2:
+               case 3:
+               case 4:
+                       return forms[1];
+               default:
+                       return forms[2];
+       }
+};
diff --git a/resources/mediawiki.language/languages/sk.js b/resources/mediawiki.language/languages/sk.js
new file mode 100644 (file)
index 0000000..21a22b2
--- /dev/null
@@ -0,0 +1,14 @@
+/**
+ * Slovak (Slovenƒçina) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count == 1 ) {
+               return forms[0];
+       }
+       if ( count == 2 || count == 3 || count == 4 ) {
+               return forms[1];
+       }
+       return forms[2];
+};
index acd00bf..cfb5781 100644 (file)
@@ -2,6 +2,23 @@
  * Slovenian (Slovenščina) language functions
  */
 
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 5 );
+       if ( count % 100 == 1 ) {
+               return forms[0];
+       }
+       if ( count % 100 == 2 ) {
+               return forms[1];
+       }
+       if ( count % 100 == 3 || count % 100 == 4 ) {
+               return forms[2];
+       }
+       if ( count != 0 ) {
+               return forms[3];
+       }
+       return forms[4];
+};
+
 mediaWiki.language.convertGrammar = function( word, form ) {
        var grammarForms = mw.language.getData( 'sl', 'grammarForms' );
        if ( grammarForms && grammarForms[form] ) {
diff --git a/resources/mediawiki.language/languages/sma.js b/resources/mediawiki.language/languages/sma.js
new file mode 100644 (file)
index 0000000..8163c42
--- /dev/null
@@ -0,0 +1,17 @@
+/**
+ * Southern Sami (Åarjelsaemien) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       if ( !forms || forms.length === 0 ) {
+                       return '';
+       }
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count == 1 ) {
+               return forms[0];
+       }
+       if ( count == 2 ) {
+               return forms[1];
+       }
+       return forms[2];
+};
diff --git a/resources/mediawiki.language/languages/sr-ec.js b/resources/mediawiki.language/languages/sr-ec.js
new file mode 100644 (file)
index 0000000..af48eb0
--- /dev/null
@@ -0,0 +1,20 @@
+/**
+ * Serbian (cyrillic script) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count > 10 && Math.floor( ( count % 100 ) / 10 ) == 1 ) {
+               return forms[2];
+       }
+       switch ( count % 10 ) {
+               case 1:
+                       return forms[0];
+               case 2:
+               case 3:
+               case 4:
+                       return forms[1];
+               default:
+                       return forms[2];
+       }
+};
diff --git a/resources/mediawiki.language/languages/sr-el.js b/resources/mediawiki.language/languages/sr-el.js
new file mode 100644 (file)
index 0000000..fd6ca01
--- /dev/null
@@ -0,0 +1,20 @@
+/**
+ * Serbian (latin script) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count > 10 && Math.floor( ( count % 100 ) / 10 ) == 1 ) {
+               return forms[2];
+       }
+       switch ( count % 10 ) {
+               case 1:
+                       return forms[0];
+               case 2:
+               case 3:
+               case 4:
+                       return forms[1];
+               default:
+                       return forms[2];
+       }
+};
diff --git a/resources/mediawiki.language/languages/sr.js b/resources/mediawiki.language/languages/sr.js
new file mode 100644 (file)
index 0000000..25cdc8a
--- /dev/null
@@ -0,0 +1,23 @@
+/**
+ * Serbian (Српски / Srpski) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       if ( forms.length === 2 ) {
+               return ( count == 1 ) ? forms[0] : forms[1];
+       }
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count > 10 && Math.floor( ( count % 100 ) / 10 ) == 1 ) {
+               return forms[2];
+       }
+       switch ( count % 10 ) {
+               case 1:
+                       return forms[0];
+               case 2:
+               case 3:
+               case 4:
+                       return forms[1];
+               default:
+                       return forms[2];
+       }
+};
diff --git a/resources/mediawiki.language/languages/ti.js b/resources/mediawiki.language/languages/ti.js
new file mode 100644 (file)
index 0000000..69b6d9b
--- /dev/null
@@ -0,0 +1,8 @@
+/**
+ * Tigrinya (ትግርኛ) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural(forms, 2);
+       return (count <= 1) ? forms[0] : forms[1];
+};
diff --git a/resources/mediawiki.language/languages/tl.js b/resources/mediawiki.language/languages/tl.js
new file mode 100644 (file)
index 0000000..29219fd
--- /dev/null
@@ -0,0 +1,7 @@
+/**
+ * Tagalog (Tagalog) language functions
+ */
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 2 );
+       return ( count <= 1 ) ? forms[0] : forms[1];
+};
index ee110b0..372d441 100644 (file)
@@ -2,6 +2,26 @@
  * Ukrainian (Українська) language functions
  */
 
+mediaWiki.language.convertPlural = function( count, forms ) {
+       if ( forms.length === 2 ) {
+               return count == 1 ? forms[0] : forms[1];                
+       }
+       forms = mediaWiki.language.preConvertPlural( forms, 3 );
+       if ( count > 10 && Math.floor( ( count % 100 ) / 10 ) == 1 ) {
+               return forms[2];
+       }
+       switch ( count % 10 ) {
+               case 1:
+                       return forms[0];
+               case 2:
+               case 3:
+               case 4:
+                       return forms[1];
+               default:
+                       return forms[2];
+       }
+};
+
 mediaWiki.language.convertGrammar = function( word, form ) {
        var grammarForms = mw.language.getData( 'uk', 'grammarForms' );
        if ( grammarForms && grammarForms[form] ) {
@@ -9,7 +29,7 @@ mediaWiki.language.convertGrammar = function( word, form ) {
        }
        switch ( form ) {
                case 'genitive': // родовий відмінок
-                       if ( ( word.substr( word.length - 4 ) == 'вікі' ) || ( word.substr( word.length - 4 ) == 'Вікі' ) ) {
+                       if ( (  word.substr( word.length - 4 ) == 'вікі' ) || (  word.substr( word.length - 4 ) == 'Вікі' ) ) {
                        }
                        else if ( word.substr( word.length - 1 ) == 'ь' )
                                word = word.substr(0, word.length - 1 ) + 'я';
@@ -17,7 +37,7 @@ mediaWiki.language.convertGrammar = function( word, form ) {
                                word = word.substr(0, word.length - 2 ) + 'ії';
                        else if ( word.substr( word.length - 2 ) == 'ка' )
                                word = word.substr(0, word.length - 2 ) + 'ки';
-                       else if ( word.substr( word.length - 2 ) == 'ти' )
+                       else if ( word.substr( word.length - 2 )  == 'ти' )
                                word = word.substr(0, word.length - 2 ) + 'тей';
                        else if ( word.substr( word.length - 2 ) == 'ды' )
                                word = word.substr(0, word.length - 2 ) + 'дов';
@@ -25,7 +45,7 @@ mediaWiki.language.convertGrammar = function( word, form ) {
                                word = word.substr(0, word.length - 3 ) + 'ника';
                        break;
                case 'accusative': // знахідний відмінок
-                       if ( ( word.substr( word.length - 4 ) == 'вікі' ) || ( word.substr( word.length - 4 ) == 'Вікі' ) ) {
+                       if ( (  word.substr( word.length - 4 ) == 'вікі' ) || (  word.substr( word.length - 4 ) == 'Вікі' ) ) {
                        }
                        else if ( word.substr( word.length - 2 ) == 'ія' )
                                word = word.substr(0, word.length - 2 ) + 'ію';
diff --git a/resources/mediawiki.language/languages/wa.js b/resources/mediawiki.language/languages/wa.js
new file mode 100644 (file)
index 0000000..e177375
--- /dev/null
@@ -0,0 +1,8 @@
+/**
+ * Walloon (Walon) language functions
+ */
+
+mediaWiki.language.convertPlural = function( count, forms ) {
+       forms = mediaWiki.language.preConvertPlural( forms, 2 );
+       return ( count <= 1 ) ? forms[0] : forms[1];
+};
index 30307a3..8d2ffae 100644 (file)
@@ -33,7 +33,7 @@
                 */
                getData: function ( langCode, dataKey ) {
                        var langData = language.data;
-                       if ( langData && langData[langCode] instanceof mw.Map ) {
+                       if ( langData[langCode] instanceof mw.Map ) {
                                return langData[langCode].get( dataKey );
                        }
                        return undefined;
index 93ece8d..09a11b0 100644 (file)
@@ -16,15 +16,6 @@ var pluralTestcases = {
                [ 0, [ "one", "other" ], "other", "English plural test- 0 is other" ],
                [ 1, [ "one", "other" ], "one", "English plural test- 1 is one" ]
        ],
-       "fa": [
-               [ 0, [ "one", "other" ], "other", "Persian plural test- 0 is other" ],
-               [ 1, [ "one", "other" ], "one", "Persian plural test- 1 is one" ],
-               [ 2, [ "one", "other" ], "other", "Persian plural test- 2 is other" ]
-       ],
-       "fr": [
-               [ 0, [ "one", "other" ], "other", "French plural test- 0 is other" ],
-               [ 1, [ "one", "other" ], "one", "French plural test- 1 is one" ]
-       ],
        "hi": [
                [ 0, [ "one", "other" ], "one", "Hindi plural test- 0 is one" ],
                [ 1, [ "one", "other" ], "one", "Hindi plural test- 1 is one" ],
@@ -36,11 +27,6 @@ var pluralTestcases = {
                [ 2, [ "one", "other" ], "other", "Hebrew plural test- 2 is other with 2 forms" ],
                [ 2, [ "one", "dual", "other" ], "dual", "Hebrew plural test- 2 is dual with 3 forms" ]
        ],
-       "hu": [
-               [ 0, [ "one", "other" ], "other", "Hungarian plural test- 0 is other" ],
-               [ 1, [ "one", "other" ], "one", "Hungarian plural test- 1 is one" ],
-               [ 2, [ "one", "other" ], "other", "Hungarian plural test- 2 is other" ]
-       ],
        "ar": [
                [ 0, [ "zero", "one", "two", "few", "many", "other" ], "zero", "Arabic plural test - 0 is zero" ],
                [ 1, [ "zero", "one", "two", "few", "many", "other" ], "one", "Arabic plural test - 1 is one" ],