From: Santhosh Thottingal Date: Sat, 15 Sep 2012 03:53:45 +0000 (-0700) Subject: Remove all custom plural rules and use CLDR plural rule system X-Git-Tag: 1.31.0-rc.0~22315^2 X-Git-Url: http://git.cyclocoop.org/%40spipnet%40?a=commitdiff_plain;h=575db10b9623726c4feb8f25c57943298936f10c;p=lhc%2Fweb%2Fwiklou.git Remove all custom plural rules and use CLDR plural rule system We have a data driven plural rule evaluation system in core now. See I1aa3b081 Added more tests (This was I4451fc7d and reverted because javascript references were not removed from Resources.php) Change-Id: I57c3c238c0717664384da50aa2cbfa74369d7a55 --- diff --git a/resources/Resources.php b/resources/Resources.php index 5156dd0437..d94ae6b28d 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -682,52 +682,19 @@ return array( 'mediawiki.language' => array( 'scripts' => 'resources/mediawiki.language/mediawiki.language.js', 'languageScripts' => array( - 'am' => 'resources/mediawiki.language/languages/am.js', - 'bat-smg' => 'resources/mediawiki.language/languages/bat-smg.js', - 'be' => 'resources/mediawiki.language/languages/be.js', - 'be-tarask' => 'resources/mediawiki.language/languages/be-tarask.js', - 'bh' => 'resources/mediawiki.language/languages/bh.js', 'bs' => 'resources/mediawiki.language/languages/bs.js', - 'cs' => 'resources/mediawiki.language/languages/cs.js', - 'cu' => 'resources/mediawiki.language/languages/cu.js', - 'cy' => 'resources/mediawiki.language/languages/cy.js', 'dsb' => 'resources/mediawiki.language/languages/dsb.js', 'fi' => 'resources/mediawiki.language/languages/fi.js', - 'fr' => 'resources/mediawiki.language/languages/fr.js', 'ga' => 'resources/mediawiki.language/languages/ga.js', - 'gd' => 'resources/mediawiki.language/languages/gd.js', - 'gv' => 'resources/mediawiki.language/languages/gv.js', 'he' => 'resources/mediawiki.language/languages/he.js', - 'hr' => 'resources/mediawiki.language/languages/hr.js', 'hsb' => 'resources/mediawiki.language/languages/hsb.js', 'hu' => 'resources/mediawiki.language/languages/hu.js', 'hy' => 'resources/mediawiki.language/languages/hy.js', - 'ksh' => 'resources/mediawiki.language/languages/ksh.js', 'la' => 'resources/mediawiki.language/languages/la.js', - 'ln' => 'resources/mediawiki.language/languages/ln.js', - 'lt' => 'resources/mediawiki.language/languages/lt.js', - 'lv' => 'resources/mediawiki.language/languages/lv.js', - 'mg' => 'resources/mediawiki.language/languages/mg.js', - 'mk' => 'resources/mediawiki.language/languages/mk.js', - 'mo' => 'resources/mediawiki.language/languages/mo.js', - 'mt' => 'resources/mediawiki.language/languages/mt.js', - 'nso' => 'resources/mediawiki.language/languages/nso.js', 'os' => 'resources/mediawiki.language/languages/os.js', - 'pl' => 'resources/mediawiki.language/languages/pl.js', - 'ro' => 'resources/mediawiki.language/languages/ro.js', 'ru' => 'resources/mediawiki.language/languages/ru.js', - 'se' => 'resources/mediawiki.language/languages/se.js', - 'sh' => 'resources/mediawiki.language/languages/sh.js', - 'sk' => 'resources/mediawiki.language/languages/sk.js', 'sl' => 'resources/mediawiki.language/languages/sl.js', - 'sma' => 'resources/mediawiki.language/languages/sma.js', - 'sr-ec' => 'resources/mediawiki.language/languages/sr-ec.js', - 'sr-el' => 'resources/mediawiki.language/languages/sr-el.js', - 'sr' => 'resources/mediawiki.language/languages/sr.js', - 'ti' => 'resources/mediawiki.language/languages/ti.js', - 'tl' => 'resources/mediawiki.language/languages/tl.js', 'uk' => 'resources/mediawiki.language/languages/uk.js', - 'wa' => 'resources/mediawiki.language/languages/wa.js', ), 'dependencies' => array( 'mediawiki.language.data', diff --git a/resources/mediawiki.language/languages/am.js b/resources/mediawiki.language/languages/am.js deleted file mode 100644 index fa5d3c5726..0000000000 --- a/resources/mediawiki.language/languages/am.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * 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 deleted file mode 100644 index 6e3f4cc9aa..0000000000 --- a/resources/mediawiki.language/languages/bat-smg.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * 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 deleted file mode 100644 index c19f47d1ba..0000000000 --- a/resources/mediawiki.language/languages/be-tarask.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * 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 deleted file mode 100644 index 97ceee3bda..0000000000 --- a/resources/mediawiki.language/languages/be.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * 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 deleted file mode 100644 index abbf8bd9f8..0000000000 --- a/resources/mediawiki.language/languages/bh.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Bihari (भोजपुरी) 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/bs.js b/resources/mediawiki.language/languages/bs.js index 9affcf0c4d..c0c77aaf95 100644 --- a/resources/mediawiki.language/languages/bs.js +++ b/resources/mediawiki.language/languages/bs.js @@ -2,23 +2,6 @@ * 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 deleted file mode 100644 index 04dda99d34..0000000000 --- a/resources/mediawiki.language/languages/cs.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * 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 deleted file mode 100644 index 35a5473910..0000000000 --- a/resources/mediawiki.language/languages/cu.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * 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 deleted file mode 100644 index 333d956f66..0000000000 --- a/resources/mediawiki.language/languages/cy.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * 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]; -}; diff --git a/resources/mediawiki.language/languages/dsb.js b/resources/mediawiki.language/languages/dsb.js index e3c5808741..a42a8f7f42 100644 --- a/resources/mediawiki.language/languages/dsb.js +++ b/resources/mediawiki.language/languages/dsb.js @@ -2,21 +2,6 @@ * 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 deleted file mode 100644 index bfb52d2805..0000000000 --- a/resources/mediawiki.language/languages/fr.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * French (Français) 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/ga.js b/resources/mediawiki.language/languages/ga.js index 51fce35b6d..a27b489d50 100644 --- a/resources/mediawiki.language/languages/ga.js +++ b/resources/mediawiki.language/languages/ga.js @@ -2,18 +2,6 @@ * 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 deleted file mode 100644 index 5ac2007785..0000000000 --- a/resources/mediawiki.language/languages/gd.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * 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 deleted file mode 100644 index afc2b5d476..0000000000 --- a/resources/mediawiki.language/languages/gv.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * 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 deleted file mode 100644 index e3ce291b03..0000000000 --- a/resources/mediawiki.language/languages/hr.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * 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]; - } -}; diff --git a/resources/mediawiki.language/languages/hsb.js b/resources/mediawiki.language/languages/hsb.js index 6aa993c832..211d67b551 100644 --- a/resources/mediawiki.language/languages/hsb.js +++ b/resources/mediawiki.language/languages/hsb.js @@ -2,22 +2,6 @@ * 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] ) { diff --git a/resources/mediawiki.language/languages/hy.js b/resources/mediawiki.language/languages/hy.js index b51b2b676f..215e750474 100644 --- a/resources/mediawiki.language/languages/hy.js +++ b/resources/mediawiki.language/languages/hy.js @@ -2,11 +2,6 @@ * 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 deleted file mode 100644 index ed907325dd..0000000000 --- a/resources/mediawiki.language/languages/ksh.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * 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 deleted file mode 100644 index 9b9e456a9a..0000000000 --- a/resources/mediawiki.language/languages/ln.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * 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 deleted file mode 100644 index 04964afff6..0000000000 --- a/resources/mediawiki.language/languages/lt.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * 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 deleted file mode 100644 index d4bec44a09..0000000000 --- a/resources/mediawiki.language/languages/lv.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * 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 deleted file mode 100644 index b65e96e39d..0000000000 --- a/resources/mediawiki.language/languages/mg.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * 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 deleted file mode 100644 index c89bbac592..0000000000 --- a/resources/mediawiki.language/languages/mk.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * 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 deleted file mode 100644 index 0c4b696a4f..0000000000 --- a/resources/mediawiki.language/languages/mo.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * 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 deleted file mode 100644 index 44c7bfffc1..0000000000 --- a/resources/mediawiki.language/languages/mt.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * 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 deleted file mode 100644 index 30cf1892e7..0000000000 --- a/resources/mediawiki.language/languages/nso.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * 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 deleted file mode 100644 index 03e0d8425b..0000000000 --- a/resources/mediawiki.language/languages/pl.js +++ /dev/null @@ -1,21 +0,0 @@ -/** - * 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 deleted file mode 100644 index 42610fe6fb..0000000000 --- a/resources/mediawiki.language/languages/ro.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * 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]; -}; diff --git a/resources/mediawiki.language/languages/ru.js b/resources/mediawiki.language/languages/ru.js index 42be4f9d75..cfdbfc3baf 100644 --- a/resources/mediawiki.language/languages/ru.js +++ b/resources/mediawiki.language/languages/ru.js @@ -2,26 +2,6 @@ * 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 deleted file mode 100644 index e1ae5b9a43..0000000000 --- a/resources/mediawiki.language/languages/se.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * 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 deleted file mode 100644 index 719b0c5724..0000000000 --- a/resources/mediawiki.language/languages/sh.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * 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 deleted file mode 100644 index 21a22b21f3..0000000000 --- a/resources/mediawiki.language/languages/sk.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * 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]; -}; diff --git a/resources/mediawiki.language/languages/sl.js b/resources/mediawiki.language/languages/sl.js index cfb578126b..acd00bfd52 100644 --- a/resources/mediawiki.language/languages/sl.js +++ b/resources/mediawiki.language/languages/sl.js @@ -2,23 +2,6 @@ * 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 deleted file mode 100644 index 8163c42c8f..0000000000 --- a/resources/mediawiki.language/languages/sma.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * 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 deleted file mode 100644 index af48eb07bf..0000000000 --- a/resources/mediawiki.language/languages/sr-ec.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * 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 deleted file mode 100644 index fd6ca01241..0000000000 --- a/resources/mediawiki.language/languages/sr-el.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * 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 deleted file mode 100644 index 25cdc8a20d..0000000000 --- a/resources/mediawiki.language/languages/sr.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * 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 deleted file mode 100644 index 69b6d9b8b8..0000000000 --- a/resources/mediawiki.language/languages/ti.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * 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 deleted file mode 100644 index 29219fdb39..0000000000 --- a/resources/mediawiki.language/languages/tl.js +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Tagalog (Tagalog) 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/uk.js b/resources/mediawiki.language/languages/uk.js index 372d441905..ee110b0640 100644 --- a/resources/mediawiki.language/languages/uk.js +++ b/resources/mediawiki.language/languages/uk.js @@ -2,26 +2,6 @@ * 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] ) { @@ -29,7 +9,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 ) + 'я'; @@ -37,7 +17,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 ) + 'дов'; @@ -45,7 +25,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 deleted file mode 100644 index e1773759f1..0000000000 --- a/resources/mediawiki.language/languages/wa.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Walloon (Walon) 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/mediawiki.language.init.js b/resources/mediawiki.language/mediawiki.language.init.js index 8d2ffae06b..30307a37de 100644 --- a/resources/mediawiki.language/mediawiki.language.init.js +++ b/resources/mediawiki.language/mediawiki.language.init.js @@ -33,7 +33,7 @@ */ getData: function ( langCode, dataKey ) { var langData = language.data; - if ( langData[langCode] instanceof mw.Map ) { + if ( langData && langData[langCode] instanceof mw.Map ) { return langData[langCode].get( dataKey ); } return undefined; diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.cldr.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.cldr.test.js index 3185c1edba..e2c66685d8 100644 --- a/tests/qunit/suites/resources/mediawiki/mediawiki.cldr.test.js +++ b/tests/qunit/suites/resources/mediawiki/mediawiki.cldr.test.js @@ -11,6 +11,15 @@ 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" ], @@ -22,6 +31,11 @@ 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" ],