Santhosh has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/240957

Change subject: Interlanguage link: Avoid the requirement of jquery.uls.data 
module on page load
......................................................................

Interlanguage link: Avoid the requirement of jquery.uls.data module on page load

This is an improved version of Ic1ad144b44 and does not require
jquery.uls.data before we see that we need to show a gray interlanguage link.

Bug: T113650
Change-Id: If8bae978308fbf472371393b0fe9b50bb5679012
---
M modules/entrypoint/ext.cx.interlanguagelink.js
1 file changed, 17 insertions(+), 7 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ContentTranslation 
refs/changes/57/240957/1

diff --git a/modules/entrypoint/ext.cx.interlanguagelink.js 
b/modules/entrypoint/ext.cx.interlanguagelink.js
index 2fcf858..166c81f 100644
--- a/modules/entrypoint/ext.cx.interlanguagelink.js
+++ b/modules/entrypoint/ext.cx.interlanguagelink.js
@@ -22,15 +22,23 @@
         * @return {string[]} target languages
         */
        function getSuggestedTargetLanguages() {
-               var specialCode, specialCodes, specialCodeIndex,
+               var i, specialCode, specialCodes, specialCodeIndex,
                        uniquePossibleTargetLanguages,
+                       acceptLanguages,
                        possibleTargetLanguages = [],
                        pageLanguage = mw.config.get( 'wgPageContentLanguage' );
 
                possibleTargetLanguages.push( mw.config.get( 'wgUserLanguage' ) 
);
                possibleTargetLanguages.push( mw.uls.getBrowserLanguage() );
 
-               $.merge( possibleTargetLanguages, 
mw.uls.getAcceptLanguageList() );
+               acceptLanguages = mw.uls.getAcceptLanguageList();
+               // Accept language codes can have country extensions like en-US.
+               // So remove them so that it is in mediawiki language code 
format.
+               for ( i = 0; i < acceptLanguages.length; i++ ) {
+                       acceptLanguages[ i ] = acceptLanguages[ i ].split( '-' 
)[ 0 ];
+               }
+
+               $.merge( possibleTargetLanguages, acceptLanguages );
                $.merge( possibleTargetLanguages, mw.uls.getPreviousLanguages() 
);
 
                // Replace possibly non-standard, macro and duplicate language 
codes
@@ -51,9 +59,7 @@
                uniquePossibleTargetLanguages = mw.cx.unique( 
possibleTargetLanguages );
 
                return $.grep( uniquePossibleTargetLanguages, function ( 
language ) {
-                       return language !== pageLanguage &&
-                               // Known language for ULS
-                               language !== $.uls.data.getAutonym( language );
+                       return language !== pageLanguage;
                } );
        }
 
@@ -77,7 +83,6 @@
                } else {
                        autonym = $.uls.data.getAutonym( code );
                }
-
                // TODO: This should be done more robustly.
                // We can't use something like wgContentLanguage because this
                // will fail for a wiki like simple.wikipedia.org, where
@@ -119,6 +124,8 @@
 
                mw.hook( 'mw.cx.cta.shown' ).fire( campaign );
 
+               // We load the below modules only when required to show gray 
interlanguage links.
+               // It is important since gray interlanguage links appear in 
along with articles.
                dependencies = [ 'ext.cx.entrypoint', 'jquery.uls.data' ];
 
                mw.loader.using( dependencies, function () {
@@ -133,7 +140,10 @@
 
                        $pLangList = $( '#p-lang ul' );
                        $.each( suggestedTargetLanguages, function ( i, code ) {
-                               if ( !pageInLanguageExists( code ) ) {
+                               if ( !pageInLanguageExists( code ) &&
+                                       // Known language for ULS
+                                       code !== $.uls.data.getAutonym( code )
+                               ) {
                                        $newItem = createCXInterlanguageItem( 
code );
                                        $pLangList.prepend( $newItem );
                                        $newItem.cxEntryPoint( {

-- 
To view, visit https://gerrit.wikimedia.org/r/240957
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If8bae978308fbf472371393b0fe9b50bb5679012
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ContentTranslation
Gerrit-Branch: master
Gerrit-Owner: Santhosh <santhosh.thottin...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to