Fix Bug 39535 Recent languages in languages settings
* Refactor the code for frequent languages and introduce mw.uls.getFrequentLanguageList * Use it for showing previous languages in language settings * Show the frequent/common language list in the language selector opened from display settings. Change-Id: Ic0f8ea6b9e9ba137b22649e8425fce8014ad456c
This commit is contained in:
committed by
Niklas Laxström
parent
c3201d95a7
commit
472cb8ba55
@@ -141,9 +141,6 @@
|
|||||||
// Pick only the first elements, because we don't have room for more
|
// Pick only the first elements, because we don't have room for more
|
||||||
var that = this,
|
var that = this,
|
||||||
quickList = this.options.quickList;
|
quickList = this.options.quickList;
|
||||||
quickList = $.grep( quickList, function( langCode, index ) {
|
|
||||||
return that.options.languages[langCode];
|
|
||||||
} );
|
|
||||||
quickList = quickList.slice( 0, 16 );
|
quickList = quickList.slice( 0, 16 );
|
||||||
quickList.sort( $.uls.data.sortByAutonym );
|
quickList.sort( $.uls.data.sortByAutonym );
|
||||||
var $quickListsection = $( '<div>' ).addClass( 'twelve columns uls-lcd-region-section' ).prop( 'id', 'uls-lcd-quicklist' );
|
var $quickListsection = $( '<div>' ).addClass( 'twelve columns uls-lcd-region-section' ).prop( 'id', 'uls-lcd-quicklist' );
|
||||||
|
|||||||
@@ -103,7 +103,7 @@
|
|||||||
var that = this;
|
var that = this;
|
||||||
var $languages = this.$template.find( 'div.uls-ui-languages' );
|
var $languages = this.$template.find( 'div.uls-ui-languages' );
|
||||||
$languages.empty();
|
$languages.empty();
|
||||||
var previousLanguages = this.previousLanguages();
|
var previousLanguages = this.frequentLanguageList();
|
||||||
var languages = [this.uiLanguage];
|
var languages = [this.uiLanguage];
|
||||||
for ( var lang in previousLanguages ) {
|
for ( var lang in previousLanguages ) {
|
||||||
if ( previousLanguages[lang] === this.uiLanguage ) {
|
if ( previousLanguages[lang] === this.uiLanguage ) {
|
||||||
@@ -169,6 +169,9 @@
|
|||||||
that.$parent.show();
|
that.$parent.show();
|
||||||
that.prepareUIFonts();
|
that.prepareUIFonts();
|
||||||
that.prepareLanguages();
|
that.prepareLanguages();
|
||||||
|
},
|
||||||
|
quickList: function() {
|
||||||
|
return mw.uls.getFrequentLanguageList();
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
@@ -181,9 +184,8 @@
|
|||||||
* Get previous languages
|
* Get previous languages
|
||||||
* @returns {Array}
|
* @returns {Array}
|
||||||
*/
|
*/
|
||||||
previousLanguages: function () {
|
frequentLanguageList: function () {
|
||||||
// FIXME
|
return mw.uls.getFrequentLanguageList();
|
||||||
return [ $.cookie( 'uls-previous-language' ) || 'he', 'hi', 'ml', 'ta'];
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -63,6 +63,28 @@
|
|||||||
return mw.config.get( "wgULSAcceptLanguageList" );
|
return mw.config.get( "wgULSAcceptLanguageList" );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mw.uls.getFrequentLanguageList = function() {
|
||||||
|
var unique = [],
|
||||||
|
list = [ mw.config.get( 'wgUserLanguage' ),
|
||||||
|
mw.config.get( 'wgContentLanguage' ),
|
||||||
|
mw.uls.getBrowserLanguage() ]
|
||||||
|
.concat( mw.uls.getPreviousLanguages() )
|
||||||
|
.concat( mw.uls.getAcceptLanguageList() );
|
||||||
|
if ( window.GEO ) {
|
||||||
|
list = list.concat( $.uls.data.languagesInTerritory( window.GEO.country_code ) );
|
||||||
|
}
|
||||||
|
$.each( list, function( i, v ) {
|
||||||
|
if ( $.inArray( v, unique ) === -1 ) {
|
||||||
|
unique.push( v );
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
// Filter out unknown and unsupported languages
|
||||||
|
unique = $.grep( unique, function( langCode, index ) {
|
||||||
|
return $.fn.uls.defaults.languages[langCode];
|
||||||
|
} );
|
||||||
|
return unique;
|
||||||
|
};
|
||||||
|
|
||||||
$( document ).ready( function() {
|
$( document ).ready( function() {
|
||||||
var $ulsTrigger = $( '.uls-trigger' ),
|
var $ulsTrigger = $( '.uls-trigger' ),
|
||||||
previousLanguages = mw.uls.getPreviousLanguages() || [],
|
previousLanguages = mw.uls.getPreviousLanguages() || [],
|
||||||
@@ -106,23 +128,7 @@
|
|||||||
languages: mw.config.get( 'wgULSLanguages' ),
|
languages: mw.config.get( 'wgULSLanguages' ),
|
||||||
searchAPI: mw.util.wikiScript( 'api' ) + "?action=languagesearch",
|
searchAPI: mw.util.wikiScript( 'api' ) + "?action=languagesearch",
|
||||||
quickList: function() {
|
quickList: function() {
|
||||||
var unique = [],
|
return mw.uls.getFrequentLanguageList();
|
||||||
list = [
|
|
||||||
mw.config.get( 'wgUserLanguage' ),
|
|
||||||
mw.config.get( 'wgContentLanguage' ),
|
|
||||||
mw.uls.getBrowserLanguage()
|
|
||||||
]
|
|
||||||
.concat( mw.uls.getPreviousLanguages() )
|
|
||||||
.concat( mw.uls.getAcceptLanguageList() );
|
|
||||||
if ( window.GEO ) {
|
|
||||||
list = list.concat( $.uls.data.languagesInTerritory( window.GEO.country_code ) );
|
|
||||||
}
|
|
||||||
$.each( list, function ( i, v ) {
|
|
||||||
if ( $.inArray( v, unique ) === -1 ) {
|
|
||||||
unique.push( v );
|
|
||||||
}
|
|
||||||
} );
|
|
||||||
return unique;
|
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user