Merge "Always decode Blob objects from Database::addQuotes"
[lhc/web/wiklou.git] / resources / src / mediawiki.language / mediawiki.language.js
index d4f3c69..bb8a84b 100644 (file)
@@ -40,39 +40,18 @@ $.extend( mw.language, {
         *
         * @param {number} count Non-localized quantifier
         * @param {Array} forms List of plural forms
+        * @param {Object} [explicitPluralForms] List of explicit plural forms
         * @return {string} Correct form for quantifier in this language
         */
-       convertPlural: function ( count, forms ) {
+       convertPlural: function ( count, forms, explicitPluralForms ) {
                var pluralRules,
-                       formCount,
-                       form,
-                       index,
-                       equalsPosition,
                        pluralFormIndex = 0;
 
-               if ( !forms || forms.length === 0 ) {
-                       return '';
-               }
-
-               // Handle for explicit n= forms
-               for ( index = 0; index < forms.length; index++ ) {
-                       form = forms[index];
-                       if ( /^\d+=/.test( form ) ) {
-                               equalsPosition = form.indexOf( '=' );
-                               formCount = parseInt( form.slice( 0, equalsPosition ), 10 );
-                               if ( formCount === count ) {
-                                       return form.slice( equalsPosition + 1 );
-                               }
-                               forms[index] = undefined;
-                       }
+               if ( explicitPluralForms && explicitPluralForms[count] ) {
+                       return explicitPluralForms[count];
                }
 
-               // Remove explicit plural forms from the forms.
-               forms = $.map( forms, function ( form ) {
-                       return form;
-               } );
-
-               if ( forms.length === 0 ) {
+               if ( !forms || forms.length === 0 ) {
                        return '';
                }
 
@@ -107,7 +86,7 @@ $.extend( mw.language, {
         * Usage in message text: `{{gender:[gender|user object]|masculine|feminine|neutral}}`.
         * If second or third parameter are not specified, masculine is used.
         *
-        * These details may be overriden per language.
+        * These details may be overridden per language.
         *
         * @param {string} gender 'male', 'female', or anything else for neutral.
         * @param {Array} forms List of gender forms
@@ -155,7 +134,9 @@ $.extend( mw.language, {
         * @return {string}
         */
        listToText: function ( list ) {
-               var text = '', i = 0;
+               var text = '',
+                       i = 0;
+
                for ( ; i < list.length; i++ ) {
                        text += list[i];
                        if ( list.length - 2 === i ) {