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
This commit is contained in:
Niklas Laxström
2014-01-23 23:01:09 +00:00
committed by Nikerabbit
parent 9df061c692
commit 15b3c31029
5 changed files with 22 additions and 41 deletions

View File

@@ -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',

View File

@@ -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)

View File

@@ -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..."
}

View File

@@ -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 );
}
};

View File

@@ -231,7 +231,7 @@
// Get the html of the link by wrapping it in div first
link = $( '<div>' ).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 = $( '<span>' )
.addClass( 'uls-settings-trigger' )
.attr( 'title', $.i18n( 'ext-uls-language-settings-title' ) );
$ulsTrigger = $( '<span>' ).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'