Cross-language language name search

Implementation of Also Written As language name
search algorithm.
See http://etherpad.wikimedia.org/l10n-uls-language-search

Change-Id: Iff84408c531b650a44d031b63d5c823737cceafc
This commit is contained in:
Santhosh Thottingal
2012-07-24 15:43:56 +05:30
parent fb11c720b5
commit 08c14dafa4
9 changed files with 319 additions and 19 deletions

View File

@@ -31,27 +31,39 @@
LanguageCategoryDisplay.prototype = {
constructor: LanguageCategoryDisplay,
append: function( langCode, regionCode ) {
append: function( langCode, regionCode, languageName ) {
var that = this;
this.addToRegion( langCode, regionCode );
this.addToRegion( langCode, regionCode, languageName );
},
/**
* Check whether a language code is already displayed or not.
* @param langCode
* @return boolean
*/
exists: function( langCode ) {
return this.$element.find( 'li' ).filter(function() {
return $(this).data('code') === langCode;
} ).length > 0;
},
/**
* Add the language to a region.
* If the region parameter is given , add to that region alone
* Otherwise to all regions that this language belongs.
* @param langCode
* @param region
* @param region Optional region
* @param languageName Optional languageName
*/
addToRegion: function( langCode, region ) {
var that = this,
language = that.options.languages[langCode];
var langName = $.uls.data.autonym( langCode )
|| that.options.languages[langCode]
|| langCode;
var regions = [];
addToRegion: function( langCode, region, languageName) {
var that = this;
if ( that.exists( langCode ) ) {
return;
}
var language = $.uls.data.languages[langCode],
langName = languageName
|| $.uls.data.autonym( langCode )
|| that.options.languages[langCode]
|| langCode,
regions = [];
if ( region ) {
regions.push( region );
} else {