* @param forms array List of plural forms
* @return string Correct form for quantifier in this language
*/
- convertPlural: function ( count, forms ){
+ convertPlural: function ( count, forms ) {
+ var pluralRules,
+ pluralFormIndex = 0;
+
if ( !forms || forms.length === 0 ) {
return '';
}
- return ( parseInt( count, 10 ) === 1 ) ? forms[0] : forms[1];
+ pluralRules = mw.language.getData( mw.config.get( 'wgUserLanguage' ), 'pluralRules' );
+ if ( !pluralRules ) {
+ // default fallback.
+ return ( count === 1 ) ? forms[0] : forms[1];
+ }
+ pluralFormIndex = mw.cldr.getPluralForm( count, pluralRules );
+ pluralFormIndex = Math.min( pluralFormIndex, forms.length - 1 );
+ return forms[pluralFormIndex];
},
/**
* @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;
+ convertNumber: function ( num, integer ) {
+ var i, tmp, transformTable, numberString, convertedNumber;
if ( !mw.language.digitTransformTable ) {
return num;
}
transformTable = tmp;
}
- var numberString = '' + num;
- var convertedNumber = '';
+ numberString = '' + num;
+ convertedNumber = '';
for ( i = 0; i < numberString.length; i++ ) {
if ( transformTable[ numberString[i] ] ) {
convertedNumber += transformTable[numberString[i]];
*
* @return string
*/
- gender: function( gender, forms ) {
+ gender: function ( gender, forms ) {
if ( !forms || forms.length === 0 ) {
return '';
}