Return target of redirect languages in mw.uls.getFrequentLanguageList
When mw.uls.getFrequentLanguageList() is requested sometimes the language that is a redirect returned causing other codebases (like Wikibase) to show an invalid language to the user. Bug: T217770 Change-Id: I49c802d584081aa5992dd0ba76144059bcac56c8
This commit is contained in:
committed by
jenkins-bot
parent
cc4c09ed67
commit
76551ed4a7
@@ -180,7 +180,7 @@
|
||||
* @return {Array} List of language codes without duplicates.
|
||||
*/
|
||||
mw.uls.getFrequentLanguageList = function ( countryCode ) {
|
||||
var i, j, lang,
|
||||
var i, j, lang, target,
|
||||
ret = [],
|
||||
lists = [
|
||||
[
|
||||
@@ -200,6 +200,11 @@
|
||||
for ( i = 0; i < lists.length; i++ ) {
|
||||
for ( j = 0; j < lists[ i ].length; j++ ) {
|
||||
lang = lists[ i ][ j ];
|
||||
target = $.uls.data.isRedirect( lang );
|
||||
if ( target ) {
|
||||
lang = target;
|
||||
}
|
||||
|
||||
// Make flat, make unique, and ignore unknown/unsupported languages
|
||||
if ( ret.indexOf( lang ) === -1 && $.uls.data.getAutonym( lang ) !== lang ) {
|
||||
ret.push( lang );
|
||||
|
||||
@@ -90,4 +90,34 @@
|
||||
'Tagalog is one of the languages presented to users in the Philippines.'
|
||||
);
|
||||
} );
|
||||
|
||||
QUnit.test( 'Add redirect target', function ( assert ) {
|
||||
var i, foundTagalog, languages, foundFil;
|
||||
|
||||
foundTagalog = false;
|
||||
foundFil = false;
|
||||
mw.uls.getBrowserLanguage = function () {
|
||||
return 'fil';
|
||||
};
|
||||
|
||||
languages = mw.uls.getFrequentLanguageList();
|
||||
|
||||
for ( i = 0; i < languages.length; i++ ) {
|
||||
if ( languages[ i ] === 'tl' ) {
|
||||
foundTagalog = true;
|
||||
}
|
||||
|
||||
if ( languages[ i ] === 'fil' ) {
|
||||
foundFil = true;
|
||||
}
|
||||
}
|
||||
assert.ok(
|
||||
foundTagalog,
|
||||
'Tagalog is one of the languages presented to users when "fil" language is requested'
|
||||
);
|
||||
assert.notOk(
|
||||
foundFil,
|
||||
'"fil" language is redirected to Tagalog'
|
||||
);
|
||||
} );
|
||||
}() );
|
||||
|
||||
Reference in New Issue
Block a user