diff --git a/src/jquery.uls.data.utils.js b/src/jquery.uls.data.utils.js index 8836edce..c53fc1de 100644 --- a/src/jquery.uls.data.utils.js +++ b/src/jquery.uls.data.utils.js @@ -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. diff --git a/test/index.html b/test/index.html index 2babd88f..f4c2e3f2 100644 --- a/test/index.html +++ b/test/index.html @@ -12,7 +12,6 @@ - @@ -32,4 +31,3 @@
- diff --git a/test/jquery.uls.test.js b/test/jquery.uls.test.js index 587bcc74..a3c45495 100644 --- a/test/jquery.uls.test.js +++ b/test/jquery.uls.test.js @@ -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'