jenkins-bot has submitted this change and it was merged.
Change subject: Allow loading redirects in Common languages
..
Allow loading redirects in Common languages
Bug: 49847
Change-Id: Ia2380a77ebad789a2f70a7a88a1bb9970199b1c5
---
M resources/js/ext.uls.init.js
M tests/qunit/ext.uls.tests.js
2 files changed, 55 insertions(+), 5 deletions(-)
Approvals:
Nikerabbit: Looks good to me, approved
jenkins-bot: Verified
diff --git a/resources/js/ext.uls.init.js b/resources/js/ext.uls.init.js
index 083711f..3c5f389 100644
--- a/resources/js/ext.uls.init.js
+++ b/resources/js/ext.uls.init.js
@@ -75,9 +75,20 @@
return mw.config.get( 'wgULSAcceptLanguageList' );
};
- mw.uls.getFrequentLanguageList = function () {
- var countryCode,
- unique = [],
+ /**
+* Get a list of codes for languages to show in
+* the Common languages section of the ULS.
+* The list consists of the user's current selected language,
+* the wiki's content language, the browser' UI language
+* and Accept-Language, user's previous selected languages
+* and finally, the languages of countryCode taken from the CLDR,
+* taken by default from the user's geolocation.
+*
+* @param {String} [countryCode] Uppercase country code.
+* @return {Array} List of language codes without duplicates.
+*/
+ mw.uls.getFrequentLanguageList = function ( countryCode ) {
+ var unique = [],
list = [
mw.config.get( 'wgUserLanguage' ),
mw.config.get( 'wgContentLanguage' ),
@@ -86,7 +97,7 @@
.concat( mw.uls.getPreviousLanguages() )
.concat( mw.uls.getAcceptLanguageList() );
- countryCode = mw.uls.getCountryCode();
+ countryCode = countryCode || mw.uls.getCountryCode();
if ( countryCode ) {
list = list.concat( $.uls.data.getLanguagesInTerritory(
countryCode ) );
@@ -100,7 +111,24 @@
// Filter out unknown and unsupported languages
unique = $.grep( unique, function ( langCode ) {
- return $.fn.uls.defaults.languages[langCode];
+ var target;
+
+ // If the language is already known and defined, just
use it
+ if ( $.fn.uls.defaults.languages[langCode] !==
undefined ) {
+ return true;
+ }
+
+ // If the language is not immediately known,
+ // try to check is as a redirect
+ target = $.uls.data.isRedirect( langCode );
+
+ if ( target ) {
+ // Check that the redirect's target is known
+ // to this instance of ULS
+ return $.fn.uls.defaults.languages[target] !==
undefined;
+ }
+
+ return false;
} );
return unique;
diff --git a/tests/qunit/ext.uls.tests.js b/tests/qunit/ext.uls.tests.js
index ffb6974..4d9d211 100644
--- a/tests/qunit/ext.uls.tests.js
+++ b/tests/qunit/ext.uls.tests.js
@@ -63,4 +63,26 @@
prefs.set( prefName, undefined );
prefs.save();
} );
+
+ QUnit.test( '-- Common languages', 1, function ( assert ) {
+ var i, foundTagalog, languagesInPH;
+
+ // Bug 49847
+ foundTagalog = false;
+ languagesInPH = mw.uls.getFrequentLanguageList( 'PH' );
+
+ for ( i = 0; i languagesInPH.length; i++ ) {
+ if ( $.uls.data.isRedirect( languagesInPH[i] ) === 'tl'
||
+ languagesInPH[i] === 'tl'
+ ) {
+ foundTagalog = true;
+
+ break;
+ }
+ }
+ assert.ok(
+ foundTagalog,
+ 'Tagalog is one of the languages presented to users in
the Philippines.'
+ );
+ } );
}( jQuery, mediaWiki ) );
--
To view, visit https://gerrit.wikimedia.org/r/69613
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ia2380a77ebad789a2f70a7a88a1bb9970199b1c5
Gerrit-PatchSet: 7
Gerrit-Project: mediawiki/extensions/UniversalLanguageSelector
Gerrit-Branch: master
Gerrit-Owner: Amire80 amir.ahar...@mail.huji.ac.il
Gerrit-Reviewer: Nikerabbit niklas.laxst...@gmail.com
Gerrit-Reviewer: Santhosh santhosh.thottin...@gmail.com
Gerrit-Reviewer: jenkins-bot
___