+(function () {
+ var lang_category = {
+ European: {
+ cs: { name: 'Czech' },
+ da: { name: 'Danish' },
+ el: { name: 'Greek' },
+ en: { name: 'English' },
+ eo: { name: 'Esperanto' },
+ fr: { name: 'French' },
+ grc: { name: 'ClassicGreek' },
+ hr: { name: 'Croatian' },
+ hy: { name: 'Armenian' },
+ ka: { name: 'Georgian' },
+ kk: { name: 'Kazakh' },
+ ru: { name: 'Russian' },
+ sk: { name: 'Slovak' },
+ sr: { name: 'Serbian' },
+ sv: { name: 'Swedish' },
+ vi: { name: 'Vietnamese' },
+ yi: { name: 'Yiddish' } },
+ MiddleEast: {
+ ar: { name: 'Arabic' },
+ dv: { name: 'Divehi' },
+ fa: { name: 'Persian' },
+ he: { name: 'Hebrew' },
+ kk: { name: 'Kazakh' },
+ ps: { name: 'Pushto' },
+ ug: { name: 'Uighur' },
+ yi: { name: 'Yiddish' } },
+ SouthAsia: {
+ as: { name: 'Assamese' },
+ bn: { name: 'Bengali' },
+ bo: { name: 'Tibetan' },
+ gu: { name: 'Gujarati' },
+ hi: { name: 'Hindi' },
+ kn: { name: 'Kannada' },
+ ks: { name: 'Kashmiri' },
+ ml: { name: 'Malayalam' },
+ mr: { name: 'Marathi' },
+ ne: { name: 'Nepali' },
+ or: { name: 'Oriya' },
+ pa: { name: 'Panjabi' },
+ sa: { name: 'Sanskirit' },
+ sd: { name: 'Sindhi' },
+ si: { name: 'Sinhalese' },
+ ta: { name: 'Tamil' },
+ te: { name: 'Telugu' },
+ ur: { name: 'Urdu' } },
+ SouthEastAsia: {
+ cmc: { name: 'Cham' },
+ km: { name: 'Khmer'},
+ lo: { name: 'Lao' },
+ my: { name: 'Burmese' },
+ tai: { name: 'Tai Viet' },
+ th: { name: 'Thai' },
+ vi: { name: 'Vietanamese' } },
+ EastAsia: {
+ ii: { name: 'Yii' },
+ ja: { name: 'Japanese' },
+ ko: { name: 'Korean' },
+ zh: { name: 'Chinese' } },
+ Other: {
+ am: { name: 'Amharic' },
+ ath: { name: 'Carrier' },
+ bla: { name: 'Blackfoot' },
+ cr: { name: 'Cree' },
+ eo: { name: 'Esperanto' },
+ iu: { name: 'Inuktitut' },
+ nsk: { name: 'Naskapi' },
+ oj: { name: 'Ojibwe' },
+ t: { name: 'Generic' } }
+ };
+
+ function categorize_im ()
+ {
+ var cat, lang, list, name;
+ for (lang in MIM.imlist)
+ {
+ list = null;
+ for (cat in lang_category)
+ if (lang_category[cat][lang])
+ {
+ list = lang_category[cat][lang].list;
+ if (! list)
+ list = lang_category[cat][lang].list = {};
+ break;
+ }
+ if (list)
+ for (name in MIM.imlist[lang])
+ list[name] = MIM.imlist[lang][name];
+ else
+ for (name in MIM.imlist[lang])
+ Xex.Log ('no category ' + lang + '-' + name);
+ }
+ }