Merge "Clean up: Consistently use "$" instead of "$( document ).ready""
[lhc/web/wiklou.git] / resources / mediawiki.language / mediawiki.language.js
index 514dbd5..8cf358b 100644 (file)
@@ -45,11 +45,35 @@ var language = {
         */
        convertPlural: function ( count, forms ) {
                var pluralRules,
+                       formCount,
+                       explicitPluralPattern = new RegExp( '\\d+=', 'i' ),
+                       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 ( explicitPluralPattern.test( form ) ) {
+                               equalsPosition = form.indexOf( '=' );
+                               formCount = parseInt( form.substring( 0, equalsPosition ), 10 );
+                               if ( formCount === count ) {
+                                       return form.substr( equalsPosition + 1 );
+                               }
+                               forms[index] = undefined;
+                       }
+               }
+
+               // Remove explicit plural forms from the forms.
+               forms = $.map( forms, function ( form ) {
+                       return form;
+               } );
+
                pluralRules = mw.language.getData( mw.config.get( 'wgUserLanguage' ), 'pluralRules' );
                if ( !pluralRules ) {
                        // default fallback.
@@ -74,43 +98,6 @@ var language = {
                return forms;
        },
 
-       /**
-        * Converts a number using digitTransformTable.
-        *
-        * @param {num} number Value to be converted
-        * @param {boolean} integer Convert the return value to an integer
-        */
-       convertNumber: function ( num, integer ) {
-               var i, tmp, transformTable, numberString, convertedNumber;
-
-               if ( !mw.language.digitTransformTable ) {
-                       return num;
-               }
-               // Set the target Transform table:
-               transformTable = mw.language.digitTransformTable;
-               // Check if the "restore" to Latin number flag is set:
-               if ( integer ) {
-                       if ( parseInt( num, 10 ) === num ) {
-                               return num;
-                       }
-                       tmp = [];
-                       for ( i in transformTable ) {
-                               tmp[ transformTable[ i ] ] = i;
-                       }
-                       transformTable = tmp;
-               }
-               numberString = '' + num;
-               convertedNumber = '';
-               for ( i = 0; i < numberString.length; i++ ) {
-                       if ( transformTable[ numberString[i] ] ) {
-                               convertedNumber += transformTable[numberString[i]];
-                       } else {
-                               convertedNumber += numberString[i];
-                       }
-               }
-               return integer ? parseInt( convertedNumber, 10 ) : convertedNumber;
-       },
-
        /**
         * Provides an alternative text depending on specified gender.
         * Usage {{gender:[gender|user object]|masculine|feminine|neutral}}.
@@ -153,10 +140,8 @@ var language = {
                        return grammarForms[form][word] || word;
                }
                return word;
-       },
+       }
 
-       // Digit Transform Table, populated by language classes where applicable
-       digitTransformTable: mw.language.getData( mw.config.get( 'wgUserLanguage' ), 'digitTransformTable' )
 };
 
 $.extend( mw.language, language );