diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-05-01 15:30:02 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-05-01 15:30:02 -0400 |
commit | 1de335ad3f395ca6861085393ba366a9e3fb4a0d (patch) | |
tree | f1fdd326034e05177596851be6a7127615d81498 /resources/src/mediawiki.language/mediawiki.language.js | |
parent | 9c75fa8ff6d4d38ef552c00fef5969fb154765e8 (diff) | |
parent | f6d65e533c62f6deb21342d4901ece24497b433e (diff) |
Merge commit 'f6d65'
# Conflicts:
# skins/ArchLinux/ArchLinux.php
Diffstat (limited to 'resources/src/mediawiki.language/mediawiki.language.js')
-rw-r--r-- | resources/src/mediawiki.language/mediawiki.language.js | 41 |
1 files changed, 13 insertions, 28 deletions
diff --git a/resources/src/mediawiki.language/mediawiki.language.js b/resources/src/mediawiki.language/mediawiki.language.js index d4f3c69e..78e39191 100644 --- a/resources/src/mediawiki.language/mediawiki.language.js +++ b/resources/src/mediawiki.language/mediawiki.language.js @@ -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 ) { @@ -165,6 +146,10 @@ $.extend( mw.language, { } } return text; + }, + + setSpecialCharacters: function ( data ) { + this.specialCharacters = data; } } ); |