User:Vuh/ls.js

window.Langscan = { buffer: true, threads: 10, running: 0, queue: [],

domain: window.location.host,

style: { checking: {}, failed: { background: '#a00', color: '#fff', },		found: { background: '#13a', color: '#fff', },		connected: { background: '#0c0', color: '#fff', },	},	text: { unknown: '', checking: 'Checking...', failed: 'Does not exist', found: 'Exists but is not connected', connected: 'Exists & Connected', },

/* pulled from http://wlb.wikia.com/wiki/Portal:Main/language_names var str = ''; for(var i = 1; i < trs.length; i++) { lang = trs[i].children[0].textContent; lang = lang.substring(lang.indexOf('-') + 1, lang.length - 3); text = trs[i].children[2].textContent.trim; for(var i = text.indexOf('\); i != -1; i = text.indexOf('\, i + 2)) {text = text.substring(0, i) + '\\\'' + text.substring(i + 1);} str += '\t\t\ + lang + '\': {lang: \ + lang + '\', text: \'' + text + '\', status: \'unknown\'},\n'; }	str; */	langs: { 'aa': {lang: 'aa', text: 'Afar', status: 'unknown'}, 'ab': {lang: 'ab', text: 'Abkhaz', status: 'unknown'}, 'ace': {lang: 'ace', text: 'Acehnese', status: 'unknown'}, 'af': {lang: 'af', text: 'Afrikaans', status: 'unknown'}, 'ak': {lang: 'ak', text: 'Akan', status: 'unknown'}, 'aln': {lang: 'aln', text: 'Gheg', status: 'unknown'}, 'als': {lang: 'als', text: 'Tosk Albanian', status: 'unknown'}, 'am': {lang: 'am', text: 'Amharic', status: 'unknown'}, 'an': {lang: 'an', text: 'Aragonese', status: 'unknown'}, 'ang': {lang: 'ang', text: 'Old English', status: 'unknown'}, 'anp': {lang: 'anp', text: 'Angika', status: 'unknown'}, 'ar': {lang: 'ar', text: 'Arabic', status: 'unknown'}, 'arc': {lang: 'arc', text: 'Aramaic', status: 'unknown'}, 'arn': {lang: 'arn', text: 'Mapudungün', status: 'unknown'}, 'ary': {lang: 'ary', text: 'Moroccan Arabic', status: 'unknown'}, 'arz': {lang: 'arz', text: 'Egyptian Arabic', status: 'unknown'}, 'as': {lang: 'as', text: 'Assamese', status: 'unknown'}, 'ast': {lang: 'ast', text: 'Asturian', status: 'unknown'}, 'av': {lang: 'av', text: 'Avar', status: 'unknown'}, 'avk': {lang: 'avk', text: 'Kotava', status: 'unknown'}, 'ay': {lang: 'ay', text: 'Aymara', status: 'unknown'}, 'az': {lang: 'az', text: 'Azerbaijani', status: 'unknown'}, 'ba': {lang: 'ba', text: 'Bashkir', status: 'unknown'}, 'bal': {lang: 'bal', text: 'Balochi', status: 'unknown'}, 'bar': {lang: 'bar', text: 'Bavarian', status: 'unknown'}, 'bat-smg': {lang: 'bat-smg', text: 'Samogitian', status: 'unknown'}, 'bcc': {lang: 'bcc', text: 'Southern Balochi', status: 'unknown'}, 'bcl': {lang: 'bcl', text: 'Central Bikol', status: 'unknown'}, 'be': {lang: 'be', text: 'Belarusian', status: 'unknown'}, 'be-tarask': {lang: 'be-tarask', text: 'Belarusian (Trasianka)', status: 'unknown'}, 'be-x-old': {lang: 'be-x-old', text: 'Belarusian (Trasianka)', status: 'unknown'}, 'bg': {lang: 'bg', text: 'Bulgarian', status: 'unknown'}, 'bh': {lang: 'bh', text: 'Bihari', status: 'unknown'}, 'bho': {lang: 'bho', text: 'Bhojpuri', status: 'unknown'}, 'bi': {lang: 'bi', text: 'Bislama', status: 'unknown'}, 'bjm': {lang: 'bjm', text: 'Bajelani', status: 'unknown'}, 'bjn': {lang: 'bjn', text: 'Banjar', status: 'unknown'}, 'bm': {lang: 'bm', text: 'Bambara', status: 'unknown'}, 'bn': {lang: 'bn', text: 'Bengali', status: 'unknown'}, 'bo': {lang: 'bo', text: 'Tibetan', status: 'unknown'}, 'bpy': {lang: 'bpy', text: 'Bishnupriya Manipuri', status: 'unknown'}, 'bqi': {lang: 'bqi', text: 'Bakhtiari', status: 'unknown'}, 'br': {lang: 'br', text: 'Breton', status: 'unknown'}, 'brh': {lang: 'brh', text: 'Brahui', status: 'unknown'}, 'bs': {lang: 'bs', text: 'Bosnian', status: 'unknown'}, 'bug': {lang: 'bug', text: 'Buginese', status: 'unknown'}, 'bxr': {lang: 'bxr', text: 'Buryat', status: 'unknown'}, 'ca': {lang: 'ca', text: 'Catalan', status: 'unknown'}, 'cbk': {lang: 'cbk', text: 'Chavacano', status: 'unknown'}, 'cbk-zam': {lang: 'cbk-zam', text: 'Chavacano (Zamboanga)', status: 'unknown'}, 'cdo': {lang: 'cdo', text: 'Eastern Min', status: 'unknown'}, 'ce': {lang: 'ce', text: 'Chechen', status: 'unknown'}, 'ceb': {lang: 'ceb', text: 'Cebuano', status: 'unknown'}, 'ch': {lang: 'ch', text: 'Chamorro', status: 'unknown'}, 'cho': {lang: 'cho', text: 'Choctaw', status: 'unknown'}, 'chr': {lang: 'chr', text: 'Cherokee', status: 'unknown'}, 'chy': {lang: 'chy', text: 'Cheyenne', status: 'unknown'}, 'ckb': {lang: 'ckb', text: 'Central Kurdish', status: 'unknown'}, 'cmn': {lang: 'cmn', text: 'Mandarin', status: 'unknown'}, 'co': {lang: 'co', text: 'Corsican', status: 'unknown'}, 'cps': {lang: 'cps', text: 'Capiznon', status: 'unknown'}, 'cr': {lang: 'cr', text: 'Cree', status: 'unknown'}, 'crh': {lang: 'crh', text: 'Crimean Tatar', status: 'unknown'}, 'crh-cyrl': {lang: 'crh-cyrl', text: 'Crimean Tatar (Cyrillic)', status: 'unknown'}, 'crh-latn': {lang: 'crh-latn', text: 'Crimean Tatar (Latin)', status: 'unknown'}, 'cs': {lang: 'cs', text: 'Czech', status: 'unknown'}, 'csb': {lang: 'csb', text: 'Kashubian', status: 'unknown'}, 'cu': {lang: 'cu', text: 'Old Church Slavonic', status: 'unknown'}, 'cv': {lang: 'cv', text: 'Chuvash', status: 'unknown'}, 'cy': {lang: 'cy', text: 'Welsh', status: 'unknown'}, 'da': {lang: 'da', text: 'Danish', status: 'unknown'}, 'de': {lang: 'de', text: 'German', status: 'unknown'}, 'diq': {lang: 'diq', text: 'Dimli', status: 'unknown'}, 'dsb': {lang: 'dsb', text: 'Lower Sorbian', status: 'unknown'}, 'dtp': {lang: 'dtp', text: 'Kadazan Dusun', status: 'unknown'}, 'dv': {lang: 'dv', text: 'Dhivehi', status: 'unknown'}, 'dz': {lang: 'dz', text: 'Dzongkha', status: 'unknown'}, 'ee': {lang: 'ee', text: 'Ewe', status: 'unknown'}, 'el': {lang: 'el', text: 'Greek', status: 'unknown'}, 'eml': {lang: 'eml', text: 'Emilian-Romagnol', status: 'unknown'}, 'en': {lang: 'en', text: 'English', status: 'unknown'}, 'en-au': {lang: 'en-au', text: 'Australian English', status: 'unknown'}, 'en-ca': {lang: 'en-ca', text: 'Canadian English', status: 'unknown'}, 'en-gb': {lang: 'en-gb', text: 'British English', status: 'unknown'}, 'en-us': {lang: 'en-us', text: 'American English', status: 'unknown'}, 'eo': {lang: 'eo', text: 'Esperanto', status: 'unknown'}, 'es': {lang: 'es', text: 'Spanish', status: 'unknown'}, 'es-la': {lang: 'es-la', text: 'Spanish (Latin America)', status: 'unknown'}, 'et': {lang: 'et', text: 'Estonian', status: 'unknown'}, 'eu': {lang: 'eu', text: 'Basque', status: 'unknown'}, 'ext': {lang: 'ext', text: 'Extremaduran', status: 'unknown'}, 'fa': {lang: 'fa', text: 'Persian', status: 'unknown'}, 'ff': {lang: 'ff', text: 'Fula', status: 'unknown'}, 'fi': {lang: 'fi', text: 'Finnish', status: 'unknown'}, 'fiu-vro': {lang: 'fiu-vro', text: 'Võro', status: 'unknown'}, 'fj': {lang: 'fj', text: 'Fijian', status: 'unknown'}, 'fo': {lang: 'fo', text: 'Faroese', status: 'unknown'}, 'fr': {lang: 'fr', text: 'French', status: 'unknown'}, 'fr-ca': {lang: 'fr-ca', text: 'Canadian French', status: 'unknown'}, 'frp': {lang: 'frp', text: 'Franco-Provençal', status: 'unknown'}, 'frr': {lang: 'frr', text: 'North Frisian', status: 'unknown'}, 'fur': {lang: 'fur', text: 'Friulian', status: 'unknown'}, 'fy': {lang: 'fy', text: 'Frisian', status: 'unknown'}, 'ga': {lang: 'ga', text: 'Irish', status: 'unknown'}, 'gag': {lang: 'gag', text: 'Gagauz', status: 'unknown'}, 'gan': {lang: 'gan', text: 'Gan', status: 'unknown'}, 'gan-hans': {lang: 'gan-hans', text: 'Gan (Simplified)', status: 'unknown'}, 'gan-hant': {lang: 'gan-hant', text: 'Gan (Traditional)', status: 'unknown'}, 'gd': {lang: 'gd', text: 'Scottish Gaelic', status: 'unknown'}, 'gl': {lang: 'gl', text: 'Galician', status: 'unknown'}, 'glk': {lang: 'glk', text: 'Gilaki', status: 'unknown'}, 'gn': {lang: 'gn', text: 'Guarani', status: 'unknown'}, 'got': {lang: 'got', text: 'Gothic', status: 'unknown'}, 'grc': {lang: 'grc', text: 'Ancient Greek', status: 'unknown'}, 'gsw': {lang: 'gsw', text: 'Alemannic German', status: 'unknown'}, 'gu': {lang: 'gu', text: 'Gujarati', status: 'unknown'}, 'gv': {lang: 'gv', text: 'Manx', status: 'unknown'}, 'ha': {lang: 'ha', text: 'Hausa', status: 'unknown'}, 'hak': {lang: 'hak', text: 'Hakka', status: 'unknown'}, 'haw': {lang: 'haw', text: 'Hawaiian', status: 'unknown'}, 'he': {lang: 'he', text: 'Hebrew', status: 'unknown'}, 'hes': {lang: 'hes', text: 'Hessian', status: 'unknown'}, 'hi': {lang: 'hi', text: 'Hindi', status: 'unknown'}, 'hif': {lang: 'hif', text: 'Fiji Hindi', status: 'unknown'}, 'hif-latn': {lang: 'hif-latn', text: 'Fiji Hindi (Latin)', status: 'unknown'}, 'hil': {lang: 'hil', text: 'Hiligaynon', status: 'unknown'}, 'ho': {lang: 'ho', text: 'Hiri Motu', status: 'unknown'}, 'hr': {lang: 'hr', text: 'Croatian', status: 'unknown'}, 'hsb': {lang: 'hsb', text: 'Upper Sorbian', status: 'unknown'}, 'ht': {lang: 'ht', text: 'Haitian Creole', status: 'unknown'}, 'hu': {lang: 'hu', text: 'Hungarian', status: 'unknown'}, 'hy': {lang: 'hy', text: 'Armenian', status: 'unknown'}, 'hz': {lang: 'hz', text: 'Herero', status: 'unknown'}, 'ia': {lang: 'ia', text: 'Interlingua', status: 'unknown'}, 'id': {lang: 'id', text: 'Indonesian', status: 'unknown'}, 'ie': {lang: 'ie', text: 'Occidental', status: 'unknown'}, 'ig': {lang: 'ig', text: 'Igbo', status: 'unknown'}, 'ii': {lang: 'ii', text: 'Nuosu', status: 'unknown'}, 'ik': {lang: 'ik', text: 'Inupiat', status: 'unknown'}, 'ike-cans': {lang: 'ike-cans', text: 'Inuktitut (Inuktitut syllabics)', status: 'unknown'}, 'ike-latn': {lang: 'ike-latn', text: 'Inuktitut (Latin)', status: 'unknown'}, 'ilo': {lang: 'ilo', text: 'Ilocano', status: 'unknown'}, 'inh': {lang: 'inh', text: 'Ingush', status: 'unknown'}, 'io': {lang: 'io', text: 'Ido', status: 'unknown'}, 'is': {lang: 'is', text: 'Icelandic', status: 'unknown'}, 'it': {lang: 'it', text: 'Italian', status: 'unknown'}, 'iu': {lang: 'iu', text: 'Inuktitut', status: 'unknown'}, 'ja': {lang: 'ja', text: 'Japanese', status: 'unknown'}, 'jam': {lang: 'jam', text: 'Jamaican Patois', status: 'unknown'}, 'jbo': {lang: 'jbo', text: 'Lojban', status: 'unknown'}, 'jut': {lang: 'jut', text: 'Jutlandic', status: 'unknown'}, 'jv': {lang: 'jv', text: 'Javanese', status: 'unknown'}, 'ka': {lang: 'ka', text: 'Georgian', status: 'unknown'}, 'kaa': {lang: 'kaa', text: 'Karakalpak', status: 'unknown'}, 'kab': {lang: 'kab', text: 'Kabyle', status: 'unknown'}, 'kbd': {lang: 'kbd', text: 'Kabardian', status: 'unknown'}, 'kbd-cyrl': {lang: 'kbd-cyrl', text: 'Kabardian (Cyrillic)', status: 'unknown'}, 'kca': {lang: 'kca', text: 'Khanty', status: 'unknown'}, 'kg': {lang: 'kg', text: 'Kongo', status: 'unknown'}, 'khw': {lang: 'khw', text: 'Khowar', status: 'unknown'}, 'ki': {lang: 'ki', text: 'Kikuyu', status: 'unknown'}, 'kiu': {lang: 'kiu', text: 'Kirmanjki', status: 'unknown'}, 'kj': {lang: 'kj', text: 'Kwanyama', status: 'unknown'}, 'kk': {lang: 'kk', text: 'Kazakh', status: 'unknown'}, 'kk-arab': {lang: 'kk-arab', text: 'Kazakh (Arabic)', status: 'unknown'}, 'kk-cn': {lang: 'kk-cn', text: 'Kazakh (People\'s Republic of China)', status: 'unknown'}, 'kk-cyrl': {lang: 'kk-cyrl', text: 'Kazakh (Cyrillic)', status: 'unknown'}, 'kk-kz': {lang: 'kk-kz', text: 'Kazakh (Kazakhstan)', status: 'unknown'}, 'kk-latn': {lang: 'kk-latn', text: 'Kazakh (Latin)', status: 'unknown'}, 'kk-tr': {lang: 'kk-tr', text: 'Kazakh (Turkish)', status: 'unknown'}, 'kl': {lang: 'kl', text: 'Greenlandic', status: 'unknown'}, 'km': {lang: 'km', text: 'Khmer', status: 'unknown'}, 'kn': {lang: 'kn', text: 'Kannada', status: 'unknown'}, 'ko': {lang: 'ko', text: 'Korean', status: 'unknown'}, 'koi': {lang: 'koi', text: 'Komi-Permyak', status: 'unknown'}, 'ko-kp': {lang: 'ko-kp', text: 'Korean (North Korea)', status: 'unknown'}, 'kr': {lang: 'kr', text: 'Kanuri', status: 'unknown'}, 'krc': {lang: 'krc', text: 'Karachay-Balkar', status: 'unknown'}, 'kri': {lang: 'kri', text: 'Krio', status: 'unknown'}, 'krj': {lang: 'krj', text: 'Karay-a', status: 'unknown'}, 'ks': {lang: 'ks', text: 'Kashmiri', status: 'unknown'}, 'ks-arab': {lang: 'ks-arab', text: 'Kashmiri (Arabic)', status: 'unknown'}, 'ks-deva': {lang: 'ks-deva', text: 'Kashmiri (Devanagari)', status: 'unknown'}, 'ksh': {lang: 'ksh', text: 'Ripuarian', status: 'unknown'}, 'ku': {lang: 'ku', text: 'Kurdish', status: 'unknown'}, 'ku-arab': {lang: 'ku-arab', text: 'Kurdish (Arabic)', status: 'unknown'}, 'ku-latn': {lang: 'ku-latn', text: 'Kurdish (Latin)', status: 'unknown'}, 'kv': {lang: 'kv', text: 'Komi', status: 'unknown'}, 'kw': {lang: 'kw', text: 'Cornish', status: 'unknown'}, 'ky': {lang: 'ky', text: 'Kyrgyz', status: 'unknown'}, 'la': {lang: 'la', text: 'Latin', status: 'unknown'}, 'lad': {lang: 'lad', text: 'Judaeo-Spanish', status: 'unknown'}, 'lb': {lang: 'lb', text: 'Luxembourgish', status: 'unknown'}, 'lbe': {lang: 'lbe', text: 'Lak', status: 'unknown'}, 'lez': {lang: 'lez', text: 'Lezgian', status: 'unknown'}, 'lfn': {lang: 'lfn', text: 'Lingua Franca Nova', status: 'unknown'}, 'lg': {lang: 'lg', text: 'Luganda', status: 'unknown'}, 'li': {lang: 'li', text: 'Limburgish', status: 'unknown'}, 'lij': {lang: 'lij', text: 'Ligurian', status: 'unknown'}, 'liv': {lang: 'liv', text: 'Livonian', status: 'unknown'}, 'lmo': {lang: 'lmo', text: 'Lombard', status: 'unknown'}, 'ln': {lang: 'ln', text: 'Lingala', status: 'unknown'}, 'lo': {lang: 'lo', text: 'Lao', status: 'unknown'}, 'loz': {lang: 'loz', text: 'Lozi', status: 'unknown'}, 'lt': {lang: 'lt', text: 'Lithuanian', status: 'unknown'}, 'ltg': {lang: 'ltg', text: 'Latgalian', status: 'unknown'}, 'lv': {lang: 'lv', text: 'Latvian', status: 'unknown'}, 'lzh': {lang: 'lzh', text: 'Classical Chinese', status: 'unknown'}, 'lzz': {lang: 'lzz', text: 'Laz', status: 'unknown'}, 'mai': {lang: 'mai', text: 'Maithili', status: 'unknown'}, 'map-bms': {lang: 'map-bms', text: 'Banyumasan', status: 'unknown'}, 'mdf': {lang: 'mdf', text: 'Moksha', status: 'unknown'}, 'mg': {lang: 'mg', text: 'Malagasy', status: 'unknown'}, 'mh': {lang: 'mh', text: 'Marshallese', status: 'unknown'}, 'mhr': {lang: 'mhr', text: 'Meadow Mari', status: 'unknown'}, 'mi': {lang: 'mi', text: 'Māori', status: 'unknown'}, 'min': {lang: 'min', text: 'Minangkabau', status: 'unknown'}, 'mk': {lang: 'mk', text: 'Macedonian', status: 'unknown'}, 'ml': {lang: 'ml', text: 'Malayalam', status: 'unknown'}, 'mn': {lang: 'mn', text: 'Mongolian', status: 'unknown'}, 'mns': {lang: 'mns', text: 'Mansi', status: 'unknown'}, 'mo': {lang: 'mo', text: 'Moldovan', status: 'unknown'}, 'mr': {lang: 'mr', text: 'Marathi', status: 'unknown'}, 'mrj': {lang: 'mrj', text: 'Hill Mari', status: 'unknown'}, 'ms': {lang: 'ms', text: 'Malay', status: 'unknown'}, 'mt': {lang: 'mt', text: 'Maltese', status: 'unknown'}, 'mus': {lang: 'mus', text: 'Muscogee', status: 'unknown'}, 'mwl': {lang: 'mwl', text: 'Mirandese', status: 'unknown'}, 'my': {lang: 'my', text: 'Burmese', status: 'unknown'}, 'myv': {lang: 'myv', text: 'Erzya', status: 'unknown'}, 'mzn': {lang: 'mzn', text: 'Mazanderani', status: 'unknown'}, 'na': {lang: 'na', text: 'Nauruan', status: 'unknown'}, 'nb': {lang: 'nb', text: 'Bokmål', status: 'unknown'}, 'nah': {lang: 'nah', text: 'Nahuatl', status: 'unknown'}, 'nan': {lang: 'nan', text: 'Southern Min', status: 'unknown'}, 'nap': {lang: 'nap', text: 'Neapolitan', status: 'unknown'}, 'nds': {lang: 'nds', text: 'Low German', status: 'unknown'}, 'nds-nl': {lang: 'nds-nl', text: 'Dutch Low Saxon', status: 'unknown'}, 'ne': {lang: 'ne', text: 'Nepali', status: 'unknown'}, 'new': {lang: 'new', text: 'Newar', status: 'unknown'}, 'ng': {lang: 'ng', text: 'Ndonga', status: 'unknown'}, 'nio': {lang: 'nio', text: 'Nganasan', status: 'unknown'}, 'niu': {lang: 'niu', text: 'Niuean', status: 'unknown'}, 'nl': {lang: 'nl', text: 'Dutch', status: 'unknown'}, 'nl-informal': {lang: 'nl-informal', text: 'Dutch (informal)', status: 'unknown'}, 'nn': {lang: 'nn', text: 'Nynorsk', status: 'unknown'}, 'no': {lang: 'no', text: 'Norwegian', status: 'unknown'}, 'non': {lang: 'non', text: 'Old Norse', status: 'unknown'}, 'nov': {lang: 'nov', text: 'Novial', status: 'unknown'}, 'nrm': {lang: 'nrm', text: 'Narom', status: 'unknown'}, 'nso': {lang: 'nso', text: 'Northern Sotho', status: 'unknown'}, 'nv': {lang: 'nv', text: 'Navajo', status: 'unknown'}, 'ny': {lang: 'ny', text: 'Chewa', status: 'unknown'}, 'oc': {lang: 'oc', text: 'Occitan', status: 'unknown'}, 'om': {lang: 'om', text: 'Oromo', status: 'unknown'}, 'or': {lang: 'or', text: 'Odia', status: 'unknown'}, 'os': {lang: 'os', text: 'Ossetian', status: 'unknown'}, 'pa': {lang: 'pa', text: 'Punjabi', status: 'unknown'}, 'pag': {lang: 'pag', text: 'Pangasinan', status: 'unknown'}, 'pam': {lang: 'pam', text: 'Kapampangan', status: 'unknown'}, 'pap': {lang: 'pap', text: 'Papiamento', status: 'unknown'}, 'pcd': {lang: 'pcd', text: 'Picard', status: 'unknown'}, 'pdc': {lang: 'pdc', text: 'Pennsylvania German', status: 'unknown'}, 'pdt': {lang: 'pdt', text: 'Plautdietsch', status: 'unknown'}, 'pfl': {lang: 'pfl', text: 'Palatine German', status: 'unknown'}, 'pi': {lang: 'pi', text: 'Pali', status: 'unknown'}, 'pih': {lang: 'pih', text: 'Pitcairnese', status: 'unknown'}, 'pl': {lang: 'pl', text: 'Polish', status: 'unknown'}, 'pms': {lang: 'pms', text: 'Piedmontese', status: 'unknown'}, 'pnb': {lang: 'pnb', text: 'Punjabi', status: 'unknown'}, 'pnt': {lang: 'pnt', text: 'Pontic Greek', status: 'unknown'}, 'prg': {lang: 'prg', text: 'Old Prussian', status: 'unknown'}, 'ps': {lang: 'ps', text: 'Pashto', status: 'unknown'}, 'pt': {lang: 'pt', text: 'Portuguese', status: 'unknown'}, 'pt-br': {lang: 'pt-br', text: 'Brazilian Portuguese', status: 'unknown'}, 'pt-pt': {lang: 'pt-pt', text: 'European Portuguese', status: 'unknown'}, 'qu': {lang: 'qu', text: 'Quechua', status: 'unknown'}, 'qug': {lang: 'qug', text: 'Kichwa', status: 'unknown'}, 'rgn': {lang: 'rgn', text: 'Romagnolo', status: 'unknown'}, 'rif': {lang: 'rif', text: 'Riffian', status: 'unknown'}, 'rm': {lang: 'rm', text: 'Romansh', status: 'unknown'}, 'rmy': {lang: 'rmy', text: 'Vlax Romani', status: 'unknown'}, 'rn': {lang: 'rn', text: 'Kirundi', status: 'unknown'}, 'ro': {lang: 'ro', text: 'Romanian', status: 'unknown'}, 'roa-rup': {lang: 'roa-rup', text: 'Aromanian', status: 'unknown'}, 'roa-tara': {lang: 'roa-tara', text: 'Tarantino', status: 'unknown'}, 'rot': {lang: 'rot', text: 'Rothons', status: 'unknown'}, 'ru': {lang: 'ru', text: 'Russian', status: 'unknown'}, 'rue': {lang: 'rue', text: 'Rusyn', status: 'unknown'}, 'rup': {lang: 'rup', text: 'Aromanian', status: 'unknown'}, 'ruq': {lang: 'ruq', text: 'Megleno-Romanian', status: 'unknown'}, 'ruq-cyrl': {lang: 'ruq-cyrl', text: 'Megleno-Romanian (Cyrillic)', status: 'unknown'}, 'ruq-latn': {lang: 'ruq-latn', text: 'Megleno-Romanian (Latin)', status: 'unknown'}, 'rw': {lang: 'rw', text: 'Kinyarwanda', status: 'unknown'}, 'sa': {lang: 'sa', text: 'Sanskrit', status: 'unknown'}, 'sah': {lang: 'sah', text: 'Yakut', status: 'unknown'}, 'sc': {lang: 'sc', text: 'Sardinian', status: 'unknown'}, 'scn': {lang: 'scn', text: 'Sicilian', status: 'unknown'}, 'sco': {lang: 'sco', text: 'Scots', status: 'unknown'}, 'sd': {lang: 'sd', text: 'Sindhi', status: 'unknown'}, 'sdc': {lang: 'sdc', text: 'Sassarese', status: 'unknown'}, 'se': {lang: 'se', text: 'Northern Sami', status: 'unknown'}, 'sei': {lang: 'sei', text: 'Seri', status: 'unknown'}, 'sg': {lang: 'sg', text: 'Sango', status: 'unknown'}, 'sgs': {lang: 'sgs', text: 'Samogitian', status: 'unknown'}, 'sh': {lang: 'sh', text: 'Serbo-Croatian', status: 'unknown'}, 'shi': {lang: 'shi', text: 'Shilha', status: 'unknown'}, 'shi-latn': {lang: 'shi-latn', text: 'Shilha (Latin)', status: 'unknown'}, 'shi-tfng': {lang: 'shi-tfng', text: 'Shilha (Tifinagh)', status: 'unknown'}, 'si': {lang: 'si', text: 'Sinhalese', status: 'unknown'}, 'sk': {lang: 'sk', text: 'Slovak', status: 'unknown'}, 'sl': {lang: 'sl', text: 'Slovene', status: 'unknown'}, 'sli': {lang: 'sli', text: 'Lower Silesian / German Silesian', status: 'unknown'}, 'sm': {lang: 'sm', text: 'Samoan', status: 'unknown'}, 'sma': {lang: 'sma', text: 'Southern Sami', status: 'unknown'}, 'sn': {lang: 'sn', text: 'Shona', status: 'unknown'}, 'so': {lang: 'so', text: 'Somali', status: 'unknown'}, 'sq': {lang: 'sq', text: 'Albanian', status: 'unknown'}, 'sqi': {lang: 'sqi', text: 'Albanian', status: 'unknown'}, 'sr': {lang: 'sr', text: 'Serbian', status: 'unknown'}, 'sr-ec': {lang: 'sr-ec', text: 'Serbian (Cyrillic)', status: 'unknown'}, 'sr-el': {lang: 'sr-el', text: 'Serbian (Latin)', status: 'unknown'}, 'srn': {lang: 'srn', text: 'Sranan', status: 'unknown'}, 'ss': {lang: 'ss', text: 'Swazi', status: 'unknown'}, 'st': {lang: 'st', text: 'Sotho', status: 'unknown'}, 'stq': {lang: 'stq', text: 'Saterland Frisian', status: 'unknown'}, 'su': {lang: 'su', text: 'Sundanese', status: 'unknown'}, 'sv': {lang: 'sv', text: 'Swedish', status: 'unknown'}, 'sw': {lang: 'sw', text: 'Swahili', status: 'unknown'}, 'szl': {lang: 'szl', text: 'Silesian', status: 'unknown'}, 'ta': {lang: 'ta', text: 'Tamil', status: 'unknown'}, 'tcy': {lang: 'tcy', text: 'Tulu', status: 'unknown'}, 'te': {lang: 'te', text: 'Telugu', status: 'unknown'}, 'tet': {lang: 'tet', text: 'Tetum', status: 'unknown'}, 'tg': {lang: 'tg', text: 'Tajik', status: 'unknown'}, 'tg-cyrl': {lang: 'tg-cyrl', text: 'Tajik (Cyrillic)', status: 'unknown'}, 'tg-latn': {lang: 'tg-latn', text: 'Tajik (Latin)', status: 'unknown'}, 'th': {lang: 'th', text: 'Thai', status: 'unknown'}, 'ti': {lang: 'ti', text: 'Tigrinya', status: 'unknown'}, 'tk': {lang: 'tk', text: 'Turkmen', status: 'unknown'}, 'tl': {lang: 'tl', text: 'Tagalog', status: 'unknown'}, 'tlh': {lang: 'tlh', text: 'Klingon', status: 'unknown'}, 'tly': {lang: 'tly', text: 'Talysh', status: 'unknown'}, 'tn': {lang: 'tn', text: 'Tswana', status: 'unknown'}, 'to': {lang: 'to', text: 'Tongan', status: 'unknown'}, 'tpi': {lang: 'tpi', text: 'Tok Pisin', status: 'unknown'}, 'tr': {lang: 'tr', text: 'Turkish', status: 'unknown'}, 'ts': {lang: 'ts', text: 'Tsonga', status: 'unknown'}, 'tt': {lang: 'tt', text: 'Tatar', status: 'unknown'}, 'tt-cyrl': {lang: 'tt-cyrl', text: 'Tatar (Cyrillic)', status: 'unknown'}, 'tt-latn': {lang: 'tt-latn', text: 'Tatar (Latin)', status: 'unknown'}, 'tum': {lang: 'tum', text: 'Tumbuka', status: 'unknown'}, 'tw': {lang: 'tw', text: 'Twi', status: 'unknown'}, 'ty': {lang: 'ty', text: 'Tahitian', status: 'unknown'}, 'tyv': {lang: 'tyv', text: 'Tuvan', status: 'unknown'}, 'udm': {lang: 'udm', text: 'Udmurt', status: 'unknown'}, 'ug': {lang: 'ug', text: 'Uyghur', status: 'unknown'}, 'ug-arab': {lang: 'ug-arab', text: 'Uyghur (Arabic)', status: 'unknown'}, 'ug-latn': {lang: 'ug-latn', text: 'Uyghur (Latin)', status: 'unknown'}, 'uk': {lang: 'uk', text: 'Ukrainian', status: 'unknown'}, 'ur': {lang: 'ur', text: 'Urdu', status: 'unknown'}, 'uz': {lang: 'uz', text: 'Uzbek', status: 'unknown'}, 'val': {lang: 'val', text: 'Valencian', status: 'unknown'}, 've': {lang: 've', text: 'Venda', status: 'unknown'}, 'vec': {lang: 'vec', text: 'Venetian', status: 'unknown'}, 'vep': {lang: 'vep', text: 'Veps', status: 'unknown'}, 'vi': {lang: 'vi', text: 'Vietnamese', status: 'unknown'}, 'vls': {lang: 'vls', text: 'West Flemish', status: 'unknown'}, 'vmf': {lang: 'vmf', text: 'Main-Franconian', status: 'unknown'}, 'vo': {lang: 'vo', text: 'Volapük', status: 'unknown'}, 'vot': {lang: 'vot', text: 'Votic', status: 'unknown'}, 'vro': {lang: 'vro', text: 'Võro', status: 'unknown'}, 'wa': {lang: 'wa', text: 'Walloon', status: 'unknown'}, 'war': {lang: 'war', text: 'Waray', status: 'unknown'}, 'wo': {lang: 'wo', text: 'Wolof', status: 'unknown'}, 'wuu': {lang: 'wuu', text: 'Wu', status: 'unknown'}, 'xal': {lang: 'xal', text: 'Kalmyk', status: 'unknown'}, 'xh': {lang: 'xh', text: 'Xhosa', status: 'unknown'}, 'xlp': {lang: 'xlp', text: 'Lepontic', status: 'unknown'}, 'xmf': {lang: 'xmf', text: 'Mingrelian', status: 'unknown'}, 'yi': {lang: 'yi', text: 'Yiddish', status: 'unknown'}, 'yo': {lang: 'yo', text: 'Yoruba', status: 'unknown'}, 'yrk': {lang: 'yrk', text: 'Nenets / Yurak', status: 'unknown'}, 'yue': {lang: 'yue', text: 'Cantonese', status: 'unknown'}, 'za': {lang: 'za', text: 'Zhuang', status: 'unknown'}, 'zea': {lang: 'zea', text: 'Zeelandic', status: 'unknown'}, 'zh': {lang: 'zh', text: 'Chinese', status: 'unknown'}, 'zh-cn': {lang: 'zh-cn', text: 'Chinese (People\'s Republic of China)', status: 'unknown'}, 'zh-hans': {lang: 'zh-hans', text: 'Chinese (simplified)', status: 'unknown'}, 'zh-hant': {lang: 'zh-hant', text: 'Chinese (traditional)', status: 'unknown'}, 'zh-hk': {lang: 'zh-hk', text: 'Chinese (Hong Kong)', status: 'unknown'}, 'zh-min-nan': {lang: 'zh-min-nan', text: 'Southern Min', status: 'unknown'}, 'zh-mo': {lang: 'zh-mo', text: 'Chinese (Macau)', status: 'unknown'}, 'zh-my': {lang: 'zh-my', text: 'Malaysian Chinese', status: 'unknown'}, 'zh-sg': {lang: 'zh-sg', text: 'Singaporean Chinese', status: 'unknown'}, 'zh-tw': {lang: 'zh-tw', text: 'Chinese (Taiwan)', status: 'unknown'}, 'zh-yue': {lang: 'zh-yue', text: 'Cantonese', status: 'unknown'}, 'zu': {lang: 'zu', text: 'Zulu', status: 'unknown'}, 'zza': {lang: 'zza', text: 'Zaza', status: 'unknown'}, }, }; if(Langscan.langs[Langscan.domain.substring(0, Langscan.domain.indexOf('.'))]) {Langscan.domain = Langscan.domain.substring(Langscan.domain.indexOf('.') + 1);}

Langscan.onload = function { if(wgCanonicalNamespace == 'Special' && wgTitle == 'Langscan') { document.title = 'Langscan - ' + wgSiteName; if(window.skin == 'oasis') { var body = 'WikiaArticle'; if(document.getElementById('WikiaPageHeader')) { document.getElementById('WikiaPageHeader').getElementsByTagName('h1')[0].innerHTML = 'Langscan'; document.getElementById('WikiaPageHeader').getElementsByTagName('h2')[0].innerHTML = 'Scans langs'; }		}		else { var body = 'bodyContent'; document.getElementById('firstHeading').innerHTML = 'Langscan'; }		while(document.getElementById(body).children.length > 0) {document.getElementById(body).removeChild(document.getElementById(body).firstChild);} if(document.getElementById('AdminDashboardHeader')) { var div = document.createElement('div'); div.classList.add('AdminDashboardGeneralHeader'); div.classList.add('AdminDashboardArticleHeader'); var h1 = document.createElement('h1'); h1.textContent = 'Langscan'; div.appendChild(h1); document.getElementById(body).appendChild(div); }

var div = document.createElement('div'); div.id = 'langscan-button'; var button = document.createElement('button'); button.type = 'button'; button.textContent = 'Scan'; button.addEventListener('click', Langscan.scan); div.appendChild(button); var button = document.createElement('button'); button.type = 'button'; button.textContent = 'Filter table'; button.addEventListener('click', Langscan.filter_table); div.appendChild(button); document.getElementById(body).appendChild(div); var table = document.createElement('table'); table.id = 'langscan-table'; table.classList.add('article-table'); table.style.width = '100%'; var thead = document.createElement('thead'); var tr = document.createElement('tr'); var th = document.createElement('th'); th.textContent = 'Language'; tr.appendChild(th); var th = document.createElement('th'); th.textContent = 'Language Code'; tr.appendChild(th); var th = document.createElement('th'); th.textContent = 'Link'; tr.appendChild(th); var th = document.createElement('th'); th.textContent = 'Status'; tr.appendChild(th); thead.appendChild(tr); table.appendChild(thead); var tbody = document.createElement('tbody'); for(var i in Langscan.langs) { var tr = document.createElement('tr'); tr.id = 'langscan-lang-' + i;						tr.classList.add('langscan-row-unknown'); var td = document.createElement('td'); td.textContent = Langscan.langs[i].text; tr.appendChild(td); var td = document.createElement('td'); td.textContent = i;						tr.appendChild(td); var td = document.createElement('td'); var a = document.createElement('a'); a.href = 'http://' + i + '.' + Langscan.domain + '/wiki/'; a.target = '_blank'; a.textContent = i + '.' + Langscan.domain + '/wiki/'; td.appendChild(a); tr.appendChild(td); var td = document.createElement('td'); td.textContent = Langscan.text.unknown; tr.appendChild(td); tbody.appendChild(tr); }			table.appendChild(tbody); document.getElementById(body).appendChild(table);

var xhr = new XMLHttpRequest; xhr.addEventListener('loadend', function {			if(this.status == 200 && !this.response.error) {				var wikis = this.response.query.interwikimap;				for(var i = 0; i < wikis.length; i++) {					if(wikis[i].language) {Langscan.mark(wikis[i].prefix, 'connected');}				}			}			else {				if(this.status != 200) {document.getElementById('langscan-button').textContent = 'Could not access interwikimap for this wiki. (Status: ' + this.status + ')';}				else if(this.response.error) {document.getElementById('langscan-button').textContent = 'Could not access interwikimap for this wiki. (' + this.response.error.code + ': ' + this.response.error.message + ')';}				document.getElementById('langscan-button').classList.remove('confirm');				document.getElementById('langscan-button').classList.add('error');			}		}); xhr.open('GET', '/api.php?action=query&meta=siteinfo&siprop=interwikimap&sifilteriw=local&format=json', true); xhr.responseType = 'json'; xhr.setRequestHeader('Api-Client', 'Langscan/1.0'); xhr.send; } };

Langscan.jsonp = function(lang) { if(Langscan.langs[lang].status != 'unknown') {return;} var script = document.createElement('script'); script.src = '//' + lang + '.' + Langscan.domain + '/api.php?action=query&meta=siteinfo&format=json&callback='; script.type = 'text/javascript'; script.setAttribute('data-lang', lang); script.addEventListener('error', Langscan.failure_callback); script.addEventListener('load', Langscan.success_callback); document.head.appendChild(script); Langscan.mark(lang, 'checking'); Langscan.running++; }; Langscan.success_callback = function { Langscan.mark(this.getAttribute('data-lang'), 'found'); this.parentNode.removeChild(this); Langscan.running--; while(Langscan.queue.length > 0 && Langscan.running < Langscan.threads) {Langscan.jsonp(Langscan.queue.shift);} }; Langscan.failure_callback = function { Langscan.mark(this.getAttribute('data-lang'), 'failed'); this.parentNode.removeChild(this); Langscan.running--; while(Langscan.queue.length > 0 && Langscan.running < Langscan.threads) {Langscan.jsonp(Langscan.queue.shift);} };

Langscan.mark = function(lang, mode) { Langscan.langs[lang].status = mode; var row = document.getElementById('langscan-lang-' + lang); for(var i in Langscan.style[mode]) {row.style[i] = Langscan.style[mode][i];} row.lastChild.textContent = Langscan.text[mode]; row.className = ''; row.classList.add('langscan-row-' + mode); };

Langscan.filter_table = function { var rows = document.getElementById('langscan-table').getElementsByTagName('tbody')[0].getElementsByTagName('tr'); for(var i = 0; i < rows.length; i++) { if(rows[i].classList.contains('langscan-row-failed')) {rows[i].style.display = 'none';} } };

Langscan.scan = function { for(var i in Langscan.langs) { if(!Langscan.buffer || Langscan.running < Langscan.threads) {Langscan.jsonp(i);} else {Langscan.queue.push(i);} } }; if(document.readyState == 'complete') {Langscan.onload;} else {window.addEventListener('load', Langscan.onload);}