function writeCurrentDictionary()
{
var q = document.location.search.substring(1);
var paramStrings = q.split("&");
var params = { };
for (var i = 0; i < paramStrings.length; i++) {
var asunder = paramStrings[i].split("=");
params[asunder[0]] = asunder[1];
}
var lang = (params.lang || 'en-US').toLowerCase();
if (!(lang in allDictionaries)) {
// Try just the language without region.
lang = lang.replace(/-.*/, "");
if (!(lang in allDictionaries))
return; // alas, nothing to be done...
}
dict = allDictionaries[lang];
var prettyName = dict.entry.name;
if (dict.entry.localName != dict.entry.name)
prettyName += " / " + dict.entry.localName;
document.write("
Install dictionary");
if (dict.size)
document.write(" (", dict.size, " KB)");
document.write("
");
}
function regionForCode(code)
{
var AB_CD = code.split("-");
var AB = AB_CD[0].toLowerCase();
var CD = (AB_CD.length > 1 ? AB_CD[1].toLowerCase() : "__");
var lang = gLanguages[AB];
if (!lang)
return {name: code, localName: code};
var region = lang[CD];
if (region)
return region;
/* If we don't have the right region, use the general form
* and append the language code to disambiguate.
*
* We take advantage of the regularity of the data here -- general
* language name followed optionally by parenthetical region -- so
* please mind your step.
*/
for (var any in lang) { // any child will do
region = lang[any];
var name = region.name.replace(/ \(.*/, "");
var localName = region.localName.replace(/ \(.*/, "") + " (" + code + ")";
return {name: name, localName: localName};
}
// Absolute last resort.
return { name: code, localName: code };
}
var allDictionariesOrdered = [];
var allDictionaries = { };
function addDictionary(code, link, size)
{
code = code.toLowerCase();
// Sometimes, there is more than one code in the name, yay
if (code.indexOf("_") != -1) {
var codes = code.split("_");
for (var i = 0; i < codes.length; i++) {
addDictionary(codes[i], link, size);
}
return;
}
var region = regionForCode(code);
var dict = {code: code, link: link, size: size, entry: region};
allDictionariesOrdered.push(dict);
allDictionaries[code] = dict;
}
function writeAllDictionaries()
{
for (var i = 0; i < allDictionariesOrdered.length; i++) {
var dict = allDictionariesOrdered[i];
var alt = i % 2 ? "even" : "odd";
var prettyName = dict.entry.name;
if (dict.entry.localName != dict.entry.name)
prettyName += " / " + dict.entry.localName;
document.write("");
document.write("| ", dict.entry.name, " | ");
document.write("", dict.entry.localName, " | ");
document.write("Install (", dict.size, " KB) |
");
}
}