Wikipedia polyglot dictionary (English Version)

By Koumei_S Last update Feb 13, 2009 — Installed 473 times. Daily Installs: 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0

There are 4 previous versions of this script.

// ==UserScript==
// @name          Wikipedia polyglot dictionary (English Version)
// @namespace     http://d.hatena.ne.jp/Koumei_S/
// @description	  uses Wikipedia(and other Wikimedia Projects) as a polyglot dictionary
// @include       http://*.wikipedia.org/wiki/*
// @include       http://*.wikimedia.org/wiki/*
// @include       http://*.wiktionary.org/wiki/*
// @include       http://*.wikibooks.org/wiki/*
// @include       http://*.wikiquote.org/wiki/*
// @include       http://*.wikisource.org/wiki/*
// @include       http://*.wikinews.org/wiki/*
// @include       http://*.wikiversity.org/wiki/*
// @version       1.3
// ==/UserScript==

/*
ver 1.0
	Release
ver 1.1
	adds Tooltip
ver 1.2
	fixed a bug(wikiemdia?)
ver 1.3
	incorporated alala's idea. Thanks (:->)
*/
(function(){
	var langlist = {
	'en':'English',
	'de':'German',
	'fr':'French',
	'pl':'Polish',
	'ja':'Japanese',
	'it':'Italian',
	'nl':'Dutch',
	'pt':'Portuguese',
	'es':'Spanish',
	'sv':'Swedish',
	'ru':'Russian',
	'zh':'Chinese',
	'fi':'Finnish',
	'no':'Norwegian (Bokm\u00e5l)',
	'tr':'Turkish',
	'eo':'Esperanto',
	'sk':'Slovak',
	'cs':'Czech',
	'ro':'Romanian',
	'ca':'Catalan',
	'uk':'Ukrainian',
	'da':'Danish',
	'hu':'Hungarian',
	'id':'Indonesian',
	'he':'Hebrew',
	'lmo':'Lombard',
	'sl':'Slovenian',
	'lt':'Lithuanian',
	'sr':'Serbian',
	'bg':'Bulgarian',
	'ko':'Korean',
	'et':'Estonian',
	'ar':'Arabic',
	'hr':'Croatian',
	'ceb':'Cebuano',
	'te':'Telugu',
	'vo':'Volap\u00fck',
	'gl':'Galician',
	'new':'Newar / Nepal Bhasa',
	'el':'Greek',
	'th':'Thai',
	'nn':'Norwegian (Nynorsk)',
	'fa':'Persian',
	'ms':'Malay',
	'vi':'Vietnamese',
	'bs':'Bosnian',
	'eu':'Basque',
	'bpy':'Bishnupriya Manipuri',
	'simple':'Simple English',
	'sq':'Albanian',
	'is':'Icelandic',
	'lb':'Luxembourgish',
	'bn':'Bengali',
	'ka':'Georgian',
	'io':'Ido',
	'br':'Breton',
	'la':'Latin',
	'nap':'Neapolitan',
	'hi':'Hindi',
	'su':'Sundanese',
	'az':'Azeri',
	'sh':'Serbo-Croatian',
	'ta':'Tamil',
	'mk':'Macedonian',
	'cy':'Welsh',
	'mr':'Marathi',
	'nds':'Low Saxon',
	'scn':'Sicilian',
	'jv':'Javanese',
	'lv':'Latvian',
	'ku':'Kurdish',
	'oc':'Occitan',
	'wa':'Walloon',
	'ast':'Asturian',
	'pms':'Piedmontese',
	'tg':'Tajik',
	'af':'Afrikaans',
	'be-x-old':'Belarusian (Tarashkevitsa)',
	'ru-sib':'Siberian/North Russian',
	'ht':'Haitian',
	'ksh':'Ripuarian',
	'an':'Aragonese',
	'tl':'Tagalog',
	'ur':'Urdu',
	'be':'Belarusian',
	'cv':'Chuvash',
	'uz':'Uzbek',
	'sw':'Swahili',
	'co':'Corsican',
	'ga':'Irish',
	'vec':'Venetian',
	'fy':'West Frisian',
	'kn':'Kannada',
	'gd':'Scottish Gaelic',
	'zh-yue':'Cantonese',
	'yi':'Yiddish',
	'tt':'Tatar',
	'sa':'Sanskrit',
	'yo':'Yoruba',
	'ia':'Interlingua',
	'pam':'Kapampangan',
	'hy':'Armenian',
	'li':'Limburgian',
	'ml':'Malayalam',
	'map-bms':'Banyumasan',
	'als':'Alemannic',
	'am':'Amharic',
	'qu':'Quechua',
	'zh-min-nan':'Min Nan',
	'nrm':'Norman',
	'bat-smg':'Samogitian',
	'hsb':'Upper Sorbian',
	'fo':'Faroese',
	'nds-nl':'Dutch Low Saxon',
	'bh':'Bihari',
	'pag':'Pangasinan',
	'pi':'Pali',
	'se':'Northern Sami',
	'ilo':'Ilokano',
	'fur':'Friulian',
	'war':'Waray-Waray',
	'nov':'Novial',
	'sco':'Scots',
	'frp':'Franco-Proven\u00e7al/Arpitan',
	'nah':'Nahuatl',
	'vls':'West Flemish',
	'os':'Ossetian',
	'lij':'Ligurian',
	'dv':'Divehi',
	'zh-classical':'Classical Chinese',
	'csb':'Kashubian',
	'diq':'Zazaki',
	'mt':'Maltese',
	'pdc':'Pennsylvania German',
	'ne':'Nepali',
	'kw':'Cornish',
	'fiu-vro':'V\u00f5ro',
	'to':'Tongan',
	'lad':'Ladino',
	'ps':'Pashto',
	'bar':'Bavarian',
	'tk':'Turkmen',
	'ang':'Anglo-Saxon',
	'kk':'Kazakh',
	'ln':'Lingala',
	'mi':'Maori',
	'mn':'Mongolian',
	'jbo':'Lojban',
	'ty':'Tahitian',
	'arc':'Assyrian Neo-Aramaic',
	'rm':'Romansh',
	'mo':'Moldovan',
	'ky':'Kirghiz',
	'wo':'Wolof',
	'ks':'Kashmiri',
	'kab':'Kabyle',
	'gu':'Gujarati',
	'roa-rup':'Aromanian',
	'tpi':'Tok Pisin',
	'zea':'Zealandic',
	'wuu':'Wu',
	'km':'Khmer',
	'ie':'Interlingue',
	'glk':'Gilaki',
	'kg':'Kongo',
	'tet':'Tetum',
	'ig':'Igbo',
	'udm':'Udmurt',
	'pa':'Punjabi',
	'sc':'Sardinian',
	'rmy':'Romani',
	'eml':'Emilian-Romagnol',
	'na':'Nauruan',
	'cu':'Old Church Slavonic',
	'so':'Somali',
	'mg':'Malagasy',
	'iu':'Inuktitut',
	'bo':'Tibetan',
	'gv':'Manx',
	'chr':'Cherokee',
	'si':'Sinhalese',
	'lo':'Lao',
	'cbk-zam':'Zamboanga Chavacano',
	'got':'Gothic',
	'sd':'Sindhi',
	'om':'Oromo',
	'ti':'Tigrinya',
	'ba':'Bashkir',
	'as':'Assamese',
	'sm':'Samoan',
	'hak':'Hakka',
	'av':'Avar',
	'ee':'Ewe',
	'cdo':'Min Dong',
	'bm':'Bambara',
	'cr':'Cree',
	'ce':'Chechen',
	'pap':'Papiamentu',
	'zu':'Zulu',
	'tlh':'Klingon',
	'nv':'Navajo',
	'my':'Burmese',
	'ik':'Inupiak',
	've':'Venda',
	'dz':'Dzongkha',
	'ay':'Aymara',
	'roa-tara':'Tarantino',
	'pih':'Norfolk',
	'ab':'Abkhazian',
	'xh':'Xhosa',
	'kl':'Greenlandic',
	'bug':'Buginese',
	'haw':'Hawaiian',
	'bxr':'Buryat (Russia)',
	'ss':'Swati',
	'xal':'Kalmyk',
	'ak':'Akan',
	'kv':'Komi',
	'bi':'Bislama',
	'rw':'Kinyarwanda',
	'ug':'Uyghur',
	'mzn':'Mazandarani',
	'gn':'Guarani',
	'st':'Sesotho',
	'tw':'Twi',
	'tn':'Tswana',
	'fj':'Fijian',
	'or':'Oriya',
	'ny':'Chichewa',
	'hz':'Herero',
	'ha':'Hausa',
	'tum':'Tumbuka',
	'sn':'Shona',
	'sg':'Sango',
	'ki':'Kikuyu',
	'ff':'Fula',
	'za':'Zhuang',
	'lg':'Luganda',
	'ii':'Sichuan Yi',
	'lbe':'Lak',
	'rn':'Kirundi',
	'cho':'Choctaw',
	'mh':'Marshallese',
	'aa':'Afar',
	'ch':'Chamorro',
	'chy':'Cheyenne',
	'ts':'Tsonga',
	'ng':'Ndonga',
	'kj':'Kuanyama',
	'ho':'Hiri Motu',
	'mus':'Muscogee',
	'kr':'Kanuri',
	};

	var linklist = document.evaluate("//li[starts-with(@class,'interwiki-')]//a", document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
	for(var i=0;i<linklist.snapshotLength;i++){
		var item = linklist.snapshotItem(i);
		var item_lang = item.host.match(/^[\w-]{2,}(?=\.)/);
		var item_word = decodeURI(item.href.match(/\/wiki\/(.*)$/)[1]);
		if(langlist[item_lang]){
			if(item_word){
				item.innerHTML = langlist[item_lang] + ': ' + item_word.replace("_"," ");
				item.title = item.innerHTML; //item_word.replace(/_/g," ") + ' [' + langlist[item_lang] + ']';
			}
			else{
				item.innerHTML = langlist[item_lang];
				item.title = langlist[item_lang];
			}
		}
	}
})();