Prevent appearance of redirects in the rendered list

utils.getLanguagesByScriptGroup() runs on the object's languages
property and not on all the langdb languages. This caused
the redirects to be counted as languages. I fixed this,
and added a test to prevent it.

Also update JS langdb, because it went out of sync in of
the previous commits.
This commit is contained in:
Amir E. Aharoni
2013-01-08 23:11:05 +02:00
parent ca18edd0dd
commit 66a50931a5
4 changed files with 38 additions and 17 deletions

View File

@@ -220,7 +220,6 @@
return $.uls.data.getLanguagesByScriptGroupInRegions( [ region ] );
};
/**
* Returns an associative array of all languages,
* grouped by script group.
@@ -237,23 +236,20 @@
*/
$.uls.data.getLanguagesByScriptGroup = function ( languages ) {
var languagesByScriptGroup = {},
scriptGroup,
language,
langScriptGroup;
language, codeToAdd, langScriptGroup;
for ( scriptGroup in $.uls.data.scriptgroups ) {
for ( language in languages ) {
langScriptGroup = $.uls.data.getScriptGroupOfLanguage( language );
for ( language in languages ) {
codeToAdd = $.uls.data.isRedirect( language ) || language;
if ( langScriptGroup !== scriptGroup ) {
continue;
}
langScriptGroup = $.uls.data.getScriptGroupOfLanguage( codeToAdd );
if ( !languagesByScriptGroup[scriptGroup] ) {
languagesByScriptGroup[scriptGroup] = [];
}
if ( !languagesByScriptGroup[langScriptGroup] ) {
languagesByScriptGroup[langScriptGroup] = [];
}
languagesByScriptGroup[scriptGroup].push( language );
// Prevent duplicate adding of redirects
if ( $.inArray( codeToAdd, languagesByScriptGroup[langScriptGroup] ) === -1 ) {
languagesByScriptGroup[langScriptGroup].push( codeToAdd );
}
}