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