Remove regionfilter related utility methods

Change-Id: I1ab96280fa71cac3745eb7e7210b15a1e5bc78f8
This commit is contained in:
Santhosh Thottingal
2016-05-17 15:25:53 +05:30
parent 7dcdab7f9c
commit ed2427ba2d
3 changed files with 2 additions and 239 deletions

View File

@@ -99,21 +99,6 @@
return autonymsByCode;
};
/**
* Returns an array of all region codes.
* @return array
*/
$.uls.data.getAllRegions = function () {
var region,
allRegions = [];
for ( region in $.uls.data.regiongroups ) {
allRegions.push( region );
}
return allRegions;
};
/**
* Returns all languages written in script.
* @param script string
@@ -148,77 +133,6 @@
return languagesInScripts;
};
/**
* Returns all languages in a given region.
* @param region string
* @return array of strings (languages codes)
*/
$.uls.data.getLanguagesInRegion = function ( region ) {
return $.uls.data.getLanguagesInRegions( [ region ] );
};
/**
* Returns all languages in given regions.
* @param regions array of strings.
* @return array of strings (languages codes)
*/
$.uls.data.getLanguagesInRegions = function ( regions ) {
var language, i,
languagesInRegions = [];
for ( language in $.uls.data.languages ) {
if ( $.uls.data.isRedirect( language ) ) {
continue;
}
for ( i = 0; i < regions.length; i++ ) {
if ( $.inArray( regions[i], $.uls.data.getRegions( language ) ) !== -1 ) {
languagesInRegions.push( language );
break;
}
}
}
return languagesInRegions;
};
/**
* Returns all languages in a region group.
* @param groupNum number.
* @return array of strings (languages codes)
*/
$.uls.data.getLanguagesInRegionGroup = function ( groupNum ) {
return $.uls.data.getLanguagesInRegions( $.uls.data.getRegionsInGroup( groupNum ) );
};
/**
* Returns an associative array of languages in a region,
* grouped by script.
* @param region string Region code
* @return associative array
*/
$.uls.data.getLanguagesByScriptInRegion = function ( region ) {
var language, script,
languagesByScriptInRegion = {};
for ( language in $.uls.data.languages ) {
if ( $.uls.data.isRedirect( language ) ) {
continue;
}
if ( $.inArray( region, $.uls.data.getRegions( language ) ) !== -1 ) {
script = $.uls.data.getScript( language );
if ( languagesByScriptInRegion[script] === undefined ) {
languagesByScriptInRegion[script] = [];
}
languagesByScriptInRegion[script].push( language );
}
}
return languagesByScriptInRegion;
};
/**
* Returns an associative array of languages in a region,
* grouped by script group.
@@ -229,15 +143,6 @@
return $.uls.data.getLanguagesByScriptGroupInRegions( [ region ] );
};
/**
* Returns an associative array of all languages,
* grouped by script group.
* @return associative array
*/
$.uls.data.getAllLanguagesByScriptGroup = function () {
return $.uls.data.getLanguagesByScriptGroupInRegions( $.uls.data.getAllRegions() );
};
/**
* Get the given list of languages grouped by script.
* @param languages Array of language codes
@@ -294,72 +199,6 @@
return languagesByScriptGroupInRegions;
};
/**
* Returns an array of languages grouped by region group,
* region, script group and script.
* @return associative array
*/
$.uls.data.getAllLanguagesByRegionAndScript = function () {
var region, regionGroup, language,
script, scriptGroup, regions, regionNum,
allLanguagesByRegionAndScript = {};
for ( region in $.uls.data.regiongroups ) {
regionGroup = $.uls.data.regiongroups[region];
if ( allLanguagesByRegionAndScript[regionGroup] === undefined ) {
allLanguagesByRegionAndScript[regionGroup] = {};
}
allLanguagesByRegionAndScript[regionGroup][region] = {};
}
for ( language in $.uls.data.languages ) {
if ( $.uls.data.isRedirect( language ) ) {
continue;
}
script = $.uls.data.getScript( language );
scriptGroup = $.uls.data.getGroupOfScript( script );
regions = $.uls.data.getRegions( language );
for ( regionNum = 0; regionNum < regions.length; regionNum++ ) {
region = regions[regionNum];
regionGroup = $.uls.data.regiongroups[region];
if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] === undefined ) {
allLanguagesByRegionAndScript[regionGroup][region][scriptGroup] = {};
}
if ( allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] === undefined ) {
allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script] = [];
}
allLanguagesByRegionAndScript[regionGroup][region][scriptGroup][script].push( language );
}
}
return allLanguagesByRegionAndScript;
};
/**
* Returns all regions in a region group.
* @param groupNum int
* @return array of strings
*/
$.uls.data.getRegionsInGroup = function ( groupNum ) {
var region,
regionsInGroup = [];
for ( region in $.uls.data.regiongroups ) {
if ( $.uls.data.regiongroups[region] === groupNum ) {
regionsInGroup.push( region );
}
}
return regionsInGroup;
};
/**
* Returns the script group of a script or 'Other' if it doesn't
* belong to any group.

View File

@@ -12,7 +12,6 @@
<script src="../src/jquery.uls.data.utils.js"></script>
<script src="../src/jquery.uls.lcd.js"></script>
<script src="../src/jquery.uls.languagefilter.js"></script>
<script src="../src/jquery.uls.regionfilter.js"></script>
<script src="../src/jquery.uls.core.js"></script>
<!-- Test framework -->
@@ -32,4 +31,3 @@
<div id="qunit"></div>
</body>
</html>

View File

@@ -99,14 +99,9 @@
assert.ok( $.fn.uls, '$.fn.uls is defined' );
} );
test( '-- $.uls.data testing', 47, function ( assert ) {
test( '-- $.uls.data testing', 30, function ( assert ) {
var autonyms,
allLanguagesByRegionAndScript,
languagesInEU,
languagesByScriptInAM, languagesByScriptInEU,
languagesToGroup, groupedLanguages,
languagesByScriptGroupInEMEA,
allLanguagesByScriptGroup;
languagesToGroup, groupedLanguages;
// Add a language in run time.
// This is done early to make sure that it doesn't break other functions.
@@ -150,36 +145,6 @@
], 'Correct regions of the Laz language were selected' );
assert.strictEqual( $.uls.data.getRegions( 'no-such-language' ), 'UNKNOWN', 'The region of an invalid language is "UNKNOWN"' );
allLanguagesByRegionAndScript = $.uls.data.getAllLanguagesByRegionAndScript();
assert.deepEqual( allLanguagesByRegionAndScript['4']['AS']['SouthEastAsian']['Bugi'], [
'bug'
], 'All languages in the Buginese script in Asia were selected' );
assert.deepEqual( allLanguagesByRegionAndScript['4']['AS']['SouthAsian']['Guru'], [
'pa-guru'
], 'Only language pa-guru appears as a language in script Guru in SouthAsian languages in Asia' );
languagesInEU = $.uls.data.getLanguagesInRegion( 'EU' );
assert.strictEqual( $.inArray( 'sr-ec', languagesInEU ), -1, 'Language "sr-ec" does not appear in languages of region EU, because it is a redirect' );
assert.ok( $.inArray( 'sr-cyrl', languagesInEU ) > -1, 'Language "sr-cyrl" appears in languages of region EU, because it is not a redirect' );
assert.deepEqual( $.uls.data.getLanguagesInRegion( 'PA' ),
[
'ace', 'bi', 'ch', 'en-gb', 'en', 'fj', 'haw', 'hif', 'ho', 'jv', 'jv-java',
'mh', 'mi', 'na', 'niu', 'pih', 'pis', 'pt', 'rtm', 'sm', 'tet',
'to', 'tpi', 'ty', 'wls'
],
'languages of region PA are selected correctly' );
assert.deepEqual( $.uls.data.getLanguagesInRegions( ['AM', 'WW'] ),
[
'acf', 'akz', 'arn', 'aro', 'ase', 'avk', 'ay', 'cho', 'chr', 'chy', 'ciw', 'cr', 'cr-latn', 'en-ca',
'en', 'eo', 'es-419', 'es-formal', 'es', 'esu', 'fr', 'frc', 'gcf', 'gn', 'guc', 'haw', 'hrx', 'ht', 'ia',
'ie', 'ik', 'ike-cans', 'ike-latn', 'io', 'iu', 'jam', 'jbo', 'kgp', 'kl', 'lad-latn', 'lad-hebr', 'lfn',
'lkt', 'lut', 'mfe', 'mic', 'miq', 'mus', 'nah', 'nl-informal', 'nl', 'nov', 'nv', 'pap', 'pbb', 'pdc',
'pdt', 'ppl', 'pt-br', 'pt', 'qu', 'qug', 'rap', 'sei', 'simple', 'srn', 'tokipona', 'tzl', 'vo', 'yi', 'yrl', 'yua'
],
'languages of regions AM and WW are selected correctly'
);
assert.deepEqual( $.uls.data.getLanguagesInScript( 'Knda' ), [
'kn', 'tcy'
], 'languages in script Knda are selected correctly' );
@@ -192,27 +157,6 @@
'languages in scripts Geor and Armn are selected correctly'
);
assert.deepEqual( $.uls.data.getRegionsInGroup( 3 ), [
'EU', 'ME', 'AF'
], 'regions in group 3 are selected correctly' );
assert.deepEqual( $.uls.data.getRegionsInGroup( 2 ), [
'AM'
], 'regions in group 2 are selected correctly' );
assert.deepEqual( $.uls.data.getRegionsInGroup( 1 ), [
'WW', 'SP'
], 'regions in group 1 are selected correctly' );
languagesByScriptInAM = $.uls.data.getLanguagesByScriptInRegion( 'AM' );
assert.deepEqual( languagesByScriptInAM['Cans'], [
'cr', 'ike-cans', 'iu'
], 'correct languages in Cans in AM selected' );
languagesByScriptInEU = $.uls.data.getLanguagesByScriptInRegion( 'EU' );
assert.strictEqual( $.inArray( 'sr-el', languagesByScriptInEU['Latn'] ), -1,
'Language "sr-el" does not appear as a Latin-script language in EU, because it is a redirect' );
assert.ok( $.inArray( 'sr-latn', languagesByScriptInEU['Latn'] ) > -1,
'Language "sr-latn" appears as a Latin-script language in EU, because it is not a redirect' );
assert.strictEqual( $.uls.data.getAutonym( 'pa' ), 'ਪੰਜਾਬੀ', 'Correct autonym of the Punjabi language was selected using code pa.' );
assert.strictEqual( $.uls.data.getAutonym( 'pa-guru' ), 'ਪੰਜਾਬੀ', 'Correct autonym of the Punjabi language was selected using code pa-guru.' );
@@ -234,24 +178,6 @@
assert.deepEqual( $.uls.data.getLanguagesByScriptGroup( languagesToGroup ), groupedLanguages,
'A custom list of languages is grouped correctly using getLanguagesByScriptGroup.' );
languagesByScriptGroupInEMEA = $.uls.data.getLanguagesByScriptGroupInRegions( $.uls.data.getRegionsInGroup( 3 ) );
assert.deepEqual( languagesByScriptGroupInEMEA['WestCaucasian'], [
'hy', 'ka', 'xmf'
], 'Correct languages in WestCaucasian script group in EMEA selected' );
assert.strictEqual( $.inArray( 'sr-ec', languagesByScriptGroupInEMEA['Cyrillic'] ), -1,
'Language "sr-ec" does not appear as a Cyrillic-scriptgroup language in EMEA, because it is a redirect' );
assert.ok( $.inArray( 'sr-cyrl', languagesByScriptGroupInEMEA['Cyrillic'] ) > -1,
'Language "sr-cyrl" appears as a Cyrillic-scriptgroup language in EMEA, because it is not a redirect' );
allLanguagesByScriptGroup = $.uls.data.getAllLanguagesByScriptGroup();
assert.deepEqual( allLanguagesByScriptGroup['Greek'], [
'el', 'grc', 'pnt', 'ruq-grek', 'tsd'
], 'All languages in the Greek script found' );
assert.deepEqual( $.uls.data.getAllRegions(), [
'WW', 'SP', 'AM', 'EU', 'ME', 'AF', 'AS', 'PA'
], 'All regions found' );
// autonyms: gn: avañe'ẽ, de: deutsch, hu: magyar, fi: suomi
assert.deepEqual( ['de', 'fi', 'gn', 'hu'].sort( $.uls.data.sortByAutonym ), [
'gn', 'de', 'hu', 'fi'