Updates jquery.uls to upstream

This makes the functional change of grouping languages in each
region by script group.

Updating to
2c1b2dd1b8

Bug: T189090
Change-Id: Ia0947e2ac6601ddc2da2448bff3a47af12f2fcac
This commit is contained in:
Amire80
2018-05-22 17:56:35 +03:00
parent 5d683bd79e
commit 4270e993ea
2 changed files with 28 additions and 8 deletions

View File

@@ -145,25 +145,22 @@
/** /**
* Get the given list of languages grouped by script. * Get the given list of languages grouped by script.
* @param {string} languages Array of language codes * @param {string[]} languages Array of language codes to group
* @return {Object} Array of languages indexed by script codes * @return {string[]} Array of language codes
*/ */
$.uls.data.getLanguagesByScriptGroup = function ( languages ) { $.uls.data.getLanguagesByScriptGroup = function ( languages ) {
var languagesByScriptGroup = {}, var languagesByScriptGroup = {},
language, resolvedRedirect, langScriptGroup; language, languageIndex, resolvedRedirect, langScriptGroup;
for ( language in languages ) { for ( languageIndex = 0; languageIndex < languages.length; languageIndex++ ) {
language = languages[ languageIndex ];
resolvedRedirect = $.uls.data.isRedirect( language ) || language; resolvedRedirect = $.uls.data.isRedirect( language ) || language;
langScriptGroup = $.uls.data.getScriptGroupOfLanguage( resolvedRedirect ); langScriptGroup = $.uls.data.getScriptGroupOfLanguage( resolvedRedirect );
if ( !languagesByScriptGroup[ langScriptGroup ] ) { if ( !languagesByScriptGroup[ langScriptGroup ] ) {
languagesByScriptGroup[ langScriptGroup ] = []; languagesByScriptGroup[ langScriptGroup ] = [];
} }
languagesByScriptGroup[ langScriptGroup ].push( language ); languagesByScriptGroup[ langScriptGroup ].push( language );
} }
return languagesByScriptGroup; return languagesByScriptGroup;
}; };
@@ -226,6 +223,25 @@
return $.uls.data.getGroupOfScript( $.uls.data.getScript( language ) ); return $.uls.data.getGroupOfScript( $.uls.data.getScript( language ) );
}; };
/**
* Return the list of languages sorted by script groups.
* @param {string[]} languages Array of language codes to sort
* @return {string[]} Array of language codes
*/
$.uls.data.sortByScriptGroup = function ( languages ) {
var groupedLanguages, scriptGroups, i,
allLanguages = [];
groupedLanguages = $.uls.data.getLanguagesByScriptGroup( languages );
scriptGroups = Object.keys( groupedLanguages ).sort();
for ( i = 0; i < scriptGroups.length; i++ ) {
allLanguages = allLanguages.concat( groupedLanguages[ scriptGroups[ i ] ] );
}
return allLanguages;
};
/** /**
* A callback for sorting languages by autonym. * A callback for sorting languages by autonym.
* Can be used as an argument to a sort function. * Can be used as an argument to a sort function.

View File

@@ -229,6 +229,10 @@
columns = [], columns = [],
rows = []; rows = [];
languages = $.uls.data.sortByScriptGroup(
languages.sort( $.uls.data.sortByAutonym )
);
if ( columnsPerRow === 1 ) { if ( columnsPerRow === 1 ) {
columnsClasses = 'twelve columns'; columnsClasses = 'twelve columns';
} else if ( columnsPerRow === 2 ) { } else if ( columnsPerRow === 2 ) {