X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=resources%2Fsrc%2Fmediawiki.language%2Fmediawiki.language.js;h=8fed6954f58f0d4732964dbc7053daf2fbb841b9;hb=ea286bf7e6bffe65bb387477d5d3a9410f3e7676;hp=7cf3eaef164083a3ad9ce1db0cd7dbdfb7d34017;hpb=6d6628d463d157d7a81efb5c46b0fa241dcf4470;p=lhc%2Fweb%2Fwiklou.git diff --git a/resources/src/mediawiki.language/mediawiki.language.js b/resources/src/mediawiki.language/mediawiki.language.js index 7cf3eaef16..8fed6954f5 100644 --- a/resources/src/mediawiki.language/mediawiki.language.js +++ b/resources/src/mediawiki.language/mediawiki.language.js @@ -1,7 +1,7 @@ /* * Methods for transforming message syntax. */ -( function ( mw, $ ) { +( function () { /** * @class mw.language @@ -101,7 +101,7 @@ return forms[ form ][ word ]; } - transformations = mediaWiki.language.getData( userLanguage, 'grammarTransformations' ); + transformations = mw.language.getData( userLanguage, 'grammarTransformations' ); if ( !( transformations && transformations[ form ] ) ) { return word; @@ -163,18 +163,27 @@ }, /** - * Formats language tags according the BCP47 standard. + * Formats language tags according the BCP 47 standard. * See LanguageCode::bcp47 for the PHP implementation. * * @param {string} languageTag Well-formed language tag * @return {string} */ bcp47: function ( languageTag ) { - var formatted, + var bcp47Map, + formatted, + segments, isFirstSegment = true, - isPrivate = false, - segments = languageTag.split( '-' ); + isPrivate = false; + languageTag = languageTag.toLowerCase(); + + bcp47Map = mw.language.getData( mw.config.get( 'wgUserLanguage' ), 'bcp47Map' ); + if ( bcp47Map && Object.prototype.hasOwnProperty.call( bcp47Map, languageTag ) ) { + languageTag = bcp47Map[ languageTag ]; + } + + segments = languageTag.split( '-' ); formatted = segments.map( function ( segment ) { var newSegment; @@ -202,4 +211,4 @@ } } ); -}( mediaWiki, jQuery ) ); +}() );