From 15b3c31029e1ebfee958dcc15a2ca16479abc1d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Laxstr=C3=B6m?= Date: Thu, 23 Jan 2014 23:01:09 +0000 Subject: [PATCH] Avoid loading of jquery.i18n and messages until trigger clicked Use RL for trigger tooltip messages to avoid using jquery.i18n just to display the triggers. Reordered dependencies so that messages are loaded for the setting panels and ime menu. Change-Id: Ic9518f7b63699542deb02a413e03c28344c99fa4 --- Resources.php | 20 +++++++++++--------- UniversalLanguageSelector.i18n.php | 3 +++ i18n/en.json | 5 +---- resources/js/ext.uls.init.js | 25 +++---------------------- resources/js/ext.uls.interface.js | 10 ++++------ 5 files changed, 22 insertions(+), 41 deletions(-) diff --git a/Resources.php b/Resources.php index 81dafcb6..b06a8f17 100644 --- a/Resources.php +++ b/Resources.php @@ -17,7 +17,8 @@ $wgResourceModules['ext.uls.languagenames'] = array( ); $wgResourceModules['ext.uls.messages'] = array( - 'class' => 'ResourceLoaderULSJsonMessageModule' + 'class' => 'ResourceLoaderULSJsonMessageModule', + 'dependencies' => 'ext.uls.i18n', ); $wgResourceModules['ext.uls.buttons'] = array( @@ -28,11 +29,10 @@ $wgResourceModules['ext.uls.displaysettings'] = array( 'scripts' => 'resources/js/ext.uls.displaysettings.js', 'styles' => 'resources/css/ext.uls.displaysettings.css', 'dependencies' => array( - 'ext.uls.buttons', + // Common dependencies come from languagesettings 'ext.uls.languagesettings', - 'ext.uls.webfonts', 'ext.uls.mediawiki', - 'jquery.i18n', + 'ext.uls.webfonts', 'mediawiki.api.parse', ), ) + $resourcePaths; @@ -47,6 +47,7 @@ $wgResourceModules['ext.uls.ime'] = array( 'ext.uls.init', 'ext.uls.preferences', 'ext.uls.mediawiki', + 'ext.uls.messages', 'jquery.ime', ), 'messages' => array( @@ -72,7 +73,6 @@ $wgResourceModules['ext.uls.init'] = array( 'jquery.client', 'jquery.json', 'jquery.cookie', - 'ext.uls.messages', ), 'position' => 'top', ) + $resourcePaths; @@ -94,12 +94,11 @@ $wgResourceModules['ext.uls.inputsettings'] = array( 'scripts' => 'resources/js/ext.uls.inputsettings.js', 'styles' => 'resources/css/ext.uls.inputsettings.css', 'dependencies' => array( - 'ext.uls.buttons', - 'ext.uls.languagesettings', 'ext.uls.ime', + // Common dependencies come from languagesettings + 'ext.uls.languagesettings', 'ext.uls.mediawiki', 'jquery.ime', - 'jquery.i18n', ), ) + $resourcePaths; @@ -116,6 +115,9 @@ $wgResourceModules['ext.uls.interface'] = array( ), 'messages' => array( 'uls-plang-title-languages', + 'ext-uls-select-language-settings-icon-tooltip', + 'ext-uls-undo-language-tooltip-text', + 'ext-uls-language-settings-preferences-link', ), 'position' => 'top', ) + $resourcePaths; @@ -125,6 +127,7 @@ $wgResourceModules['ext.uls.languagesettings'] = array( 'styles' => 'resources/css/ext.uls.languagesettings.css', 'dependencies' => array( 'ext.uls.buttons', + 'ext.uls.messages', 'ext.uls.preferences', // The grid styles are used here, // but ULS itself is lazy-loaded @@ -203,7 +206,6 @@ $wgResourceModules['ext.uls.mediawiki'] = array( 'scripts' => 'resources/js/ext.uls.mediawiki.js', 'dependencies' => array( 'jquery.uls', - 'jquery.i18n', 'mediawiki.util', 'ext.uls.init', 'ext.uls.languagenames', diff --git a/UniversalLanguageSelector.i18n.php b/UniversalLanguageSelector.i18n.php index ce3270b9..3e3b0246 100644 --- a/UniversalLanguageSelector.i18n.php +++ b/UniversalLanguageSelector.i18n.php @@ -34,6 +34,9 @@ $messages['en'] = array( 'uls-plang-title-languages' => 'Languages', 'uls-ime-helppage' => 'https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Extension:UniversalLanguageSelector/Input_methods/$1', 'uls-preference' => 'Enable the [https://www.mediawiki.org/wiki/Special:MyLanguage/Universal_Language_Selector Universal Language Selector]', + 'ext-uls-select-language-settings-icon-tooltip' => 'Language settings', + 'ext-uls-undo-language-tooltip-text' => 'Language changed from $1', + 'ext-uls-language-settings-preferences-link' => 'More language settings', ); /** Message documentation (Message documentation) diff --git a/i18n/en.json b/i18n/en.json index 61a7b816..0366fc87 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -11,8 +11,6 @@ "ext-uls-display-settings-fonts-tab": "Fonts", "ext-uls-display-settings-title-short": "Display", "ext-uls-display-settings-desc": "Set language used for menus and fonts.", -"ext-uls-select-language-settings-icon-tooltip": "Language settings", -"ext-uls-undo-language-tooltip-text": "Language changed from $1", "ext-uls-language-settings-title": "Language settings", "ext-uls-language-settings-apply": "Apply settings", "ext-uls-language-settings-cancel": "Cancel", @@ -47,6 +45,5 @@ "ext-uls-input-disable-notification-undo": "Undo", "ext-uls-input-disable-notification-info-personal": "You can enable the input tools at any time from the language settings.", "ext-uls-input-disable-notification-info-interlanguage": "You can enable the input tools at any time from the language settings next to the language list.", -"ext-uls-language-settings-applying": "Applying...", -"ext-uls-language-settings-preferences-link": "More language settings" +"ext-uls-language-settings-applying": "Applying..." } diff --git a/resources/js/ext.uls.init.js b/resources/js/ext.uls.init.js index a4a8d836..b2d769e5 100644 --- a/resources/js/ext.uls.init.js +++ b/resources/js/ext.uls.init.js @@ -40,11 +40,6 @@ }() ); } - - var jsonLoader = null, - initialized = false, - currentLang = mw.config.get( 'wgUserLanguage' ); - mw.uls = mw.uls || {}; mw.uls.previousLanguagesCookie = 'uls-previous-languages'; mw.uls.previousLanguageAutonymCookie = 'uls-previous-language-autonym'; @@ -230,33 +225,19 @@ } /** - * Initialize ULS front-end and its i18n. + * Initialize ULS front-end if browser is supported. * * @param {Function} callback callback function to be called after initialization. */ mw.uls.init = function ( callback ) { - - callback = callback || $.noop; - - if ( initialized ) { - callback.call( this ); - - return; - } - if ( !isBrowserSupported() ) { $( '#pt-uls' ).hide(); return; } - if ( !jsonLoader ) { - jsonLoader = mw.uls.loadLocalization( currentLang ); - } else { - jsonLoader.done( function () { - initialized = true; - } ); - jsonLoader.done( callback ); + if ( callback ) { + callback.call( this ); } }; diff --git a/resources/js/ext.uls.interface.js b/resources/js/ext.uls.interface.js index c6a2e4c7..11706a0b 100644 --- a/resources/js/ext.uls.interface.js +++ b/resources/js/ext.uls.interface.js @@ -231,7 +231,7 @@ // Get the html of the link by wrapping it in div first link = $( '
' ).html( link ).html(); - return $.i18n( 'ext-uls-undo-language-tooltip-text', link ); + return mw.msg( 'ext-uls-undo-language-tooltip-text', link ); } } ); @@ -321,9 +321,7 @@ // The interlanguage links section $pLang = $( '#p-lang' ); // Add an element near the interlanguage links header - $ulsTrigger = $( '' ) - .addClass( 'uls-settings-trigger' ) - .attr( 'title', $.i18n( 'ext-uls-language-settings-title' ) ); + $ulsTrigger = $( '' ).addClass( 'uls-settings-trigger' ); // Append ULS cog to languages section, but make sure it is visible. $pLang.show().prepend( $ulsTrigger ); // Take care of any other elements with this class. @@ -344,7 +342,7 @@ } $ulsTrigger.attr( { - title: $.i18n( 'ext-uls-select-language-settings-icon-tooltip' ) + title: mw.msg( 'ext-uls-select-language-settings-icon-tooltip' ) } ); $ulsTrigger.on( 'click', function ( e, eventParams ) { @@ -461,7 +459,7 @@ // Bind language settings to preferences page link $( '#uls-preferences-link' ) - .text( $.i18n( 'ext-uls-language-settings-preferences-link' ) ) + .text( mw.msg( 'ext-uls-language-settings-preferences-link' ) ) .click( function () { $ulsTrigger.trigger( 'click', { source: 'preferences'