Merge pull request #208 from wikimedia/207
Support language codes that are redirects
This commit is contained in:
@@ -245,21 +245,18 @@
|
|||||||
*/
|
*/
|
||||||
$.uls.data.getLanguagesByScriptGroup = function ( languages ) {
|
$.uls.data.getLanguagesByScriptGroup = function ( languages ) {
|
||||||
var languagesByScriptGroup = {},
|
var languagesByScriptGroup = {},
|
||||||
language, codeToAdd, langScriptGroup;
|
language, resolvedRedirect, langScriptGroup;
|
||||||
|
|
||||||
for ( language in languages ) {
|
for ( language in languages ) {
|
||||||
codeToAdd = $.uls.data.isRedirect( language ) || language;
|
resolvedRedirect = $.uls.data.isRedirect( language ) || language;
|
||||||
|
|
||||||
langScriptGroup = $.uls.data.getScriptGroupOfLanguage( codeToAdd );
|
langScriptGroup = $.uls.data.getScriptGroupOfLanguage( resolvedRedirect );
|
||||||
|
|
||||||
if ( !languagesByScriptGroup[langScriptGroup] ) {
|
if ( !languagesByScriptGroup[langScriptGroup] ) {
|
||||||
languagesByScriptGroup[langScriptGroup] = [];
|
languagesByScriptGroup[langScriptGroup] = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevent duplicate adding of redirects
|
languagesByScriptGroup[langScriptGroup].push( language );
|
||||||
if ( $.inArray( codeToAdd, languagesByScriptGroup[langScriptGroup] ) === -1 ) {
|
|
||||||
languagesByScriptGroup[langScriptGroup].push( codeToAdd );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return languagesByScriptGroup;
|
return languagesByScriptGroup;
|
||||||
|
|||||||
@@ -66,13 +66,13 @@
|
|||||||
* Adds language to the language list.
|
* Adds language to the language list.
|
||||||
* @param {string} langCode
|
* @param {string} langCode
|
||||||
* @param {string} [regionCode]
|
* @param {string} [regionCode]
|
||||||
* @return {bool} Whether the language was added.
|
* @return {boolean} Whether the language was added.
|
||||||
*/
|
*/
|
||||||
append: function ( langCode, regionCode ) {
|
append: function ( langCode, regionCode ) {
|
||||||
var lcd = this,
|
var lcd = this,
|
||||||
i, regions;
|
i, regions;
|
||||||
|
|
||||||
if ( !this.options.languages[ langCode ] ) {
|
if ( !$.uls.data.languages[ langCode ] ) {
|
||||||
// Language is unknown or not in the list of languages for this context.
|
// Language is unknown or not in the list of languages for this context.
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -227,8 +227,8 @@
|
|||||||
'vro': 'Võro' // Target after alias
|
'vro': 'Võro' // Target after alias
|
||||||
};
|
};
|
||||||
groupedLanguages = {
|
groupedLanguages = {
|
||||||
Latin: [ 'en', 'vro', 'sr-latn' ],
|
Latin: [ 'en', 'fiu-vro', 'sr-latn', 'sr-el', 'vro' ],
|
||||||
Cyrillic: [ 'ru', 'sr-cyrl' ]
|
Cyrillic: [ 'ru', 'sr', 'sr-cyrl' ]
|
||||||
};
|
};
|
||||||
|
|
||||||
assert.deepEqual( $.uls.data.getLanguagesByScriptGroup( languagesToGroup ), groupedLanguages,
|
assert.deepEqual( $.uls.data.getLanguagesByScriptGroup( languagesToGroup ), groupedLanguages,
|
||||||
|
|||||||
Reference in New Issue
Block a user