Add isRedirect (from an old Gerrit commit)

This commit is contained in:
Amir E. Aharoni
2012-12-16 19:09:08 +02:00
parent 5f9a0c4a17
commit bdb1ef3b47
2 changed files with 31 additions and 3 deletions

View File

@@ -29,12 +29,28 @@
} }
} }
/**
* Is this language a redirect to another language?
* @param string language code
* @return Target language code if it's a redirect or false if it's not
*/
$.uls.data.isRedirect = function( language ) {
return ( $.uls.data.languages[language] !== undefined &&
$.uls.data.languages[language].length === 1 ) ? $.uls.data.languages[language][0] : false;
}
/** /**
* Returns the script of the language. * Returns the script of the language.
* @param string language code * @param string language code
* @return string * @return string
*/ */
$.uls.data.getScript = function( language ) { $.uls.data.getScript = function( language ) {
var target = $.uls.data.isRedirect( language );
if ( target ) {
return $.uls.data.getScript( target );
}
return $.uls.data.languages[language][0]; return $.uls.data.languages[language][0];
}; };
@@ -49,6 +65,12 @@
* @return array|string 'UNKNOWN' * @return array|string 'UNKNOWN'
*/ */
$.uls.data.getRegions = function( language ) { $.uls.data.getRegions = function( language ) {
var target = $.uls.data.isRedirect( language );
if ( target ) {
return $.uls.data.getRegions( target );
}
return ( $.uls.data.languages[language] && $.uls.data.languages[language][1] ) || 'UNKNOWN'; return ( $.uls.data.languages[language] && $.uls.data.languages[language][1] ) || 'UNKNOWN';
}; };
@@ -63,6 +85,12 @@
* @return string * @return string
*/ */
$.uls.data.getAutonym = function( language ) { $.uls.data.getAutonym = function( language ) {
var target = $.uls.data.isRedirect( language );
if ( target ) {
return $.uls.data.getAutonym( target );
}
return ( $.uls.data.languages[language] && $.uls.data.languages[language][2] ) || language; return ( $.uls.data.languages[language] && $.uls.data.languages[language][2] ) || language;
}; };

View File

@@ -94,8 +94,8 @@
"languages of region PA are selected correctly" ); "languages of region PA are selected correctly" );
assert.deepEqual( $.uls.data.getLanguagesInRegions( ["AM", "WW"] ), assert.deepEqual( $.uls.data.getLanguagesInRegions( ["AM", "WW"] ),
[ [
"akz", "arn", "aro", "ase", "avk", "ay", "cho", "chr", "chy", "cr-cans", "cr-latn", "akz", "arn", "aro", "ase", "avk", "ay", "cho", "chr", "chy", "cr", "cr-cans", "cr-latn",
"cr", "en-ca", "en", "eo", "es-419", "es-formal", "es", "esu", "fr", "gcf", "gn", "en-ca", "en", "eo", "es-419", "es-formal", "es", "esu", "fr", "gcf", "gn",
"guc", "haw", "ht", "ia", "ie", "ik", "ike-cans", "ike-latn", "io", "iu", "jam", "guc", "haw", "ht", "ia", "ie", "ik", "ike-cans", "ike-latn", "io", "iu", "jam",
"jbo", "kgp", "kl", "lad", "lfn", "mfe", "mic", "mus", "nah", "nl-informal", "nl", "jbo", "kgp", "kl", "lad", "lfn", "mfe", "mic", "mus", "nah", "nl-informal", "nl",
"nov", "nv", "pap", "pdc", "pdt", "ppl", "pt-br", "pt", "qu", "qug", "rap", "sei", "nov", "nv", "pap", "pdc", "pdt", "ppl", "pt-br", "pt", "qu", "qug", "rap", "sei",
@@ -124,7 +124,7 @@
var languagesByScriptInAM = $.uls.data.getLanguagesByScriptInRegion( "AM" ); var languagesByScriptInAM = $.uls.data.getLanguagesByScriptInRegion( "AM" );
assert.deepEqual( languagesByScriptInAM['Cans'], [ assert.deepEqual( languagesByScriptInAM['Cans'], [
"cr-cans", "cr", "ike-cans", "iu" "cr", "cr-cans", "ike-cans", "iu"
], "correct languages in Cans in AM selected" ); ], "correct languages in Cans in AM selected" );
assert.strictEqual( $.uls.data.getAutonym( 'pa' ), 'ਪੰਜਾਬੀ', 'Correct autonym of the Punjabi language was selected' ); assert.strictEqual( $.uls.data.getAutonym( 'pa' ), 'ਪੰਜਾਬੀ', 'Correct autonym of the Punjabi language was selected' );