Merge "Make use of \File::getArchiveRel to avoid code duplication"
[lhc/web/wiklou.git] / resources / src / mediawiki.language / mediawiki.language.js
index 7cf3eae..8fed695 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Methods for transforming message syntax.
  */
-( function ( mw, $ ) {
+( function () {
 
        /**
         * @class mw.language
                                return forms[ form ][ word ];
                        }
 
-                       transformations = mediaWiki.language.getData( userLanguage, 'grammarTransformations' );
+                       transformations = mw.language.getData( userLanguage, 'grammarTransformations' );
 
                        if ( !( transformations && transformations[ form ] ) ) {
                                return word;
                },
 
                /**
-                * 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;
 
                }
        } );
 
-}( mediaWiki, jQuery ) );
+}() );