//<pre>
// Translate interwiki codes such as "simple" and "ar"
//
// To use this script, add "importScript('User:Proteins/translateinterwikicodes.js');" to your monobook.js subpage
// under your user page, as you can see at User:Proteins/monobook.js
var interwiki_English_names = {
"aa" : "Afar",
"ab" : "Abkhazian", // or Abkhaz
"ace" : "Achinese",
"ae" : "Avestan",
"af" : "Afrikaans",
"ak" : "Akan",
"aln" : "Gheg Albanian",
"als" : "Alemannic", // same as gsw
"am" : "Amharic",
"an" : "Aragonese",
"ang" : "Old English",
"ar" : "Arabic",
"arc" : "Aramaic", // or Assyrian Neo-Aramaic
"arn" : "Mapudungun", // or Araucanian (Araucano), Mapuche, Mapudungu
"arv" : "Kotava",
"arz" : "Egyptian Spoken Arabic",
"as" : "Assamese",
"ast" : "Asturian",
"av" : "Avar", // or Avaric
"avk" : "Kotava",
"ay" : "Aymara",
"az" : "Azerbaijani",
"ba" : "Bashkir",
"bar" : "Bavarian", // Austro-Bavarian and South Tyrolean
"bat-smg" : "Samogitian", // 639-2: bat
"bcc" : "Southern Balochi",
"bcl" : "Central Bicolano", // or Bikol
"bcr" : "Babine",
"be" : "Belarusian",
"be-x-old" : "Belarusian (Tarashkevitsa)",
"be-tarask" : "Belarusian (Tarashkevitsa)", // same as be-x-old; 639-3: bel
"bg" : "Bulgarian",
"bh" : "Bihari",
"bi" : "Bislama",
"bm" : "Bambara",
"bn" : "Bengali",
"bo" : "Tibetan",
"bpy" : "Bishnupriya Manipuri",
"br" : "Breton",
"bs" : "Bosnian",
"bto" : "Iriga Bicolano",
"bug" : "Buginese", // or Bugis
"byp" : "Bumaji",
"bxr" : "Buryat (Russia)",
"ca" : "Catalan",
"cbk-zam" : "Zamboanga Chavacano", // or Zamboangueño; cbk is the 639-3 code for Chavacano
"cdo" : "Min Dong Chinese",
"ce" : "Chechen",
"ceb" : "Cebuano",
"ch" : "Chamorro",
"cho" : "Choctaw",
"chr" : "Cherokee",
"chy" : "Cheyenne",
"co" : "Corsican",
"cop" : "Coptic",
"cr" : "Cree",
"crh" : "Crimean Turkish", // or Crimean Tatar
"crh-cyrl" : "Crimean Turkish (Cyrillic)",
"crh-latn" : "Crimean Turkish (Latin)",
"cs" : "Czech",
"csb" : "Kashubian",
"cu" : "Church Slavic", // or Old Church Slavonic
"cv" : "Chuvash",
"cy" : "Welsh",
"da" : "Danish",
"de" : "German",
"de-formal" : "Formal German",
"diq" : "Dimli",
"dsb" : "Lower Sorbian",
"dv" : "Divehi",
"dz" : "Dzongkha",
"ee" : "Ewe",
"el" : "Greek",
"eml" : "Emilian-Romagnol", // or Emiliano-Romagnolo
"en" : "English",
"en-gb" : "British English",
"eo" : "Esperanto",
"es" : "Spanish",
"et" : "Estonian",
"eu" : "Basque",
"ext" : "Extremaduran",
"fa" : "Persian",
"ff" : "Fulah",
"fi" : "Finnish",
"fiu-vro" : "Võro", // fiu is the 639-2 code for Baltic-Finnic
"fj" : "Fijian",
"fo" : "Faroese",
"fr" : "French",
"frc" : "Cajun French",
"frp" : "Franco-Provençal",
"fur" : "Friulian",
"fy" : "Frisian", // or Western Frisian
"ga" : "Irish",
"gag" : "Gagauz",
"gan" : "Gan", // or Gan Chinese
"gd" : "Scottish Gaelic",
"gl" : "Galician",
"glk" : "Gilaki",
"gn" : "Guaraní",
"got" : "Gothic",
"grc" : "Ancient Greek",
"gsw" : "Alemannic", // same as als
"gu" : "Gujarati",
"gv" : "Manx",
"ha" : "Hausa",
"hak" : "Hakka Chinese",
"haw" : "Hawaiian",
"he" : "Hebrew",
"hi" : "Hindi",
"hif" : "Fiji Hindi", // or Fijian Hindustani
"hif-deva" : "Fiji Hindi (Devangari)",
"hif-latn" : "Fiji Hindi (Latin)",
"hil" : "Hiligaynon",
"ho" : "Hiri Motu",
"hr" : "Croatian",
"hsb" : "Upper Sorbian",
"ht" : "Haitian", // or Haitian Creole French
"hu" : "Hungarian",
"hy" : "Armenian",
"hz" : "Herero",
"ia" : "Interlingua", // IALA
"id" : "Indonesian",
"ie" : "Interlingue",
"ig" : "Igbo",
"ii" : "Sichuan Yi",
"ik" : "Inupiak", // or Inupiatun
"ike-cans" : "Eastern Canadian", // or Inuit (Unified Canadian Aboriginal Syllabics)
"ike-latn" : "Eastern Canadian Inuktitut (Latin)", // 639-3: ike; 639-1: iu and 639-2: iku for Inuktitut
"ikt" : "Western Canadian Inuktitut",
"ilo" : "Iloko",
"inh" : "Ingush",
"io" : "Ido",
"is" : "Icelandic",
"it" : "Italian",
"iu" : "Inuktitut",
"ja" : "Japanese",
"jbo" : "Lojban",
"jut" : "Jutish", // or Jutlandic
"jv" : "Javanese",
"ka" : "Georgian",
"kaa" : "Kara-Kalpak",
"kab" : "Kabyle",
"kg" : "Kongo",
"ki" : "Kikuyu",
"kj" : "Kwanyama",
"kk" : "Kazakh",
"kk-arab" : "Kazakh (Arabic script)",
"kk-cyrl" : "Kazakh (Cyrillic script)",
"kk-latn" : "Kazakh (Latin script)",
"kk-cn" : "Kazakh (China)",
"kk-kz" : "Kazakh (Kazakhstan)",
"kk-tr" : "Kazakh (Turkey)",
"kl" : "Greenlandic", // or Kalaallisut iso 639-3 is kal
"km" : "Khmer",
"kn" : "Kannada",
"ko" : "Korean",
"kr" : "Kanuri",
"kri" : "Krio",
"krj" : "Kinaray-A",
"ks" : "Kashmiri",
"ksh" : "Kölsch",
"ku" : "Kurdish",
"ku-arab" : "Northern Kurdish Arabic",
"ku-latn" : "Northern Kurdish Latin",
"kv" : "Komi",
"kw" : "Cornish",
"ky" : "Kirghiz",
"la" : "Latin",
"lad" : "Ladino",
"lb" : "Luxembourgish",
"lbe" : "Lak",
"lez" : "Lezghian",
"lfn" : "Lingua Franca Nova", // 639-2: art
"lg" : "Ganda",
"li" : "Limburgish",
"lij" : "Ligurian",
"lld" : "Ladin", // 639-2: roa
"lmo" : "Lombard",
"ln" : "Lingala",
"lo" : "Lao",
"loz" : "Lozi",
"lt" : "Lithuanian",
"lu" : "Luba-Katanga",
"lv" : "Latvian",
"lzz" : "Laz",
"mad" : "Madurese",
"mai" : "Maithili",
"map-bms" : "Banyumasan",
"mc" : "Murcian",
"mdf" : "Moksha",
"mg" : "Malagasy",
"mh" : "Marshallese",
"mi" : "Māori",
"mk" : "Macedonian",
"ml" : "Malayalam",
"mn" : "Mongolian",
"mo" : "Moldavian",
"mr" : "Marathi",
"ms" : "Malay",
"mt" : "Maltese",
"mus" : "Creek",
"mwl" : "Mirandese",
"my" : "Burmese",
"myv" : "Erzya",
"mzn" : "Mazanderani",
"na" : "Nauru",
"nah" : "Nahuatl languages",
"nan" : "Min-nan", // same as zh-min-nan; nan is the 639-3 code
"nap" : "Neapolitan",
"nb" : "Norwegian (Bokmål)", // same as no
"nd" : "North Ndebele",
"nds" : "Low Saxon", // or Low German
"nds-nl" : "Dutch Low Saxon", // nds is the 639-3 code for Low Saxon
"ne" : "Nepali",
"new" : "Newar", // Nepal Bhasa
"ng" : "Owambo",
"niu" : "Niuean",
"nl" : "Dutch",
"nn" : "Norwegian (Nynorsk)",
"no" : "Norwegian (Bokmål)", // same as nb
"non" : "Old Norse",
"nov" : "Novial",
"nr" : "South Ndebele",
"nrm" : "Narom",
"nso" : "Northern Sotho", // or Pedi or Sepedi
"nv" : "Navajo",
"ny" : "Chichewa",
"oc" : "Occitan",
"och" : "Classical Chinese", // or Literary Chinese; same as zh-classical
"oj" : "Ojibwa",
"om" : "Oromo",
"or" : "Oriya",
"os" : "Ossetian",
"pa" : "Panjabi",
"pag" : "Pangasinan",
"pam" : "Kapampangan", // or Pampanga
"pap" : "Papiamento",
"pdc" : "Pennsylvania German",
"pdt" : "Plautdietsch",
"pfl" : "Pfaelzisch",
"pi" : "Pali",
"pih" : "Pitcairn-Norfolk",
"pl" : "Polish",
"plm" : "Palembang",
"pms" : "Piemontese",
"pnt" : "Pontic",
"ps" : "Pashto",
"pt" : "Portuguese",
"pt-br" : "Brazilian Portuguese",
"qu" : "Quechua",
"rif" : "Tarifit",
"rm" : "Raeto-Romance",
"rmy" : "Vlax Romani",
"rn" : "Kirundi",
"ro" : "Romanian",
"roa-rup" : "Aromanian", // rup is the 639-2/3 code; roa is the 639-2 code for Romance (Other)
"roa-tara" : "Tarantino",
"ru" : "Russian",
"ruq" : "Romanian", // or Megleno-Romanian
"ruq-cyrl" : "Megleno-Romanian (Cyrillic script)",
"ruq-grek" : "Megleno-Romanian (Greek script)",
"ruq-latn" : "Megleno-Romanian (Latin script)",
"rw" : "Kinyarwanda",
"sa" : "Sanskrit",
"sah" : "Yakut",
"sc" : "Sardinian",
"scn" : "Sicilian",
"sco" : "Scots",
"sd" : "Sindhi",
"sdc" : "Sardinian", // or Sassarese
"se" : "Northern Sami",
"sei" : "Seri",
"sg" : "Sango",
"sh" : "Serbo-Croatian",
"shi" : "Tachelhit",
"si" : "Sinhala",
"simple" : "Simple English",
"sk" : "Slovak",
"sl" : "Slovenian",
"sm" : "Samoan",
"sma" : "Southern Sami",
"sn" : "Shona",
"so" : "Somali",
"sq" : "Albanian",
"sr" : "Serbian",
"sr-ec" : "Serbian ekavian (Cyrillic script)",
"sr-el" : "Serbian ekavian (Latin script)",
"srn" : "Sranan Tongo",
"ss" : "Swati",
"st" : "Sotho", // or Southern Sotho
"stq" : "Saterland Frisian", // or Saterfriesisch
"su" : "Sundanese",
"sv" : "Swedish",
"sw" : "Swahili",
"szl" : "Silesian",
"ta" : "Tamil",
"te" : "Telugu",
"tet" : "Tetum",
"tg" : "Tajik",
"tg-cyrl" : "Tajiki (Cyrillic script)",
"tg-latn" : "Tajiki (Latin script)",
"th" : "Thai",
"ti" : "Tigrinya",
"tk" : "Turkmen",
"tl" : "Tagalog",
"tlh" : "Klingon",
"tn" : "Tswana",
"to" : "Tonga",
"tokipona" : "Toki Pona",
"tpi" : "Tok Pisin",
"tr" : "Turkish",
"ts" : "Tsonga",
"tt" : "Tatar",
"tt-cyrl" : "Tatar (Cyrillic script)",
"tt-latn" : "Tatar (Latin script)",
"ttt" : "Tati",
"tum" : "Tumbuka",
"tw" : "Twi",
"ty" : "Tahitian",
"tyv" : "Tyvan",
"tzm" : "Central Morocco Tamazight",
"udm" : "Udmurt",
"ug" : "Uighur",
"uk" : "Ukrainian",
"ur" : "Urdu",
"uz" : "Uzbek",
"ve" : "Venda",
"vec" : "Venetian",
"vi" : "Vietnamese",
"vls" : "Vlaams",
"vo" : "Volapük",
"vrm" : "Värmlandic",
"wa" : "Walloon",
"war" : "Waray", // or Wáray-Wáray / Waráy
"wo" : "Wolof",
"wuu" : "Wu Chinese",
"xal" : "Kalmyk",
"xh" : "Xhosa",
"xmf" : "Mingrelian",
"yao" : "Yao",
"yap" : "Yapese",
"ydd" : "Eastern Yiddish",
"yi" : "Yiddish",
"yo" : "Yoruba",
"yue" : "Cantonese", // or Yue Chinese; same as zh-yue
"yux" : "Southern Yukaghir",
"za" : "Zhuang",
"zea" : "Zeeuws",
"zh" : "Chinese", // or Mandarin / Standard Chinese; cmn is the 639-3 code
"zh-classical" : "Classical Chinese", // or Literary Chinese; same as och
"zh-cn" : "Chinese (PRC)",
"zh-hans" : "Simplified Chinese",
"zh-hant" : "Traditional Chinese",
"zh-hk" : "Chinese (Hong Kong)",
"zh-min-nan" : "Min-nan", // same as nan
"zh-mo" : "Chinese (Macau)",
"zh-my" : "Chinese (Malaysia)",
"zh-sg" : "Chinese (Singapore)",
"zh-tw" : "Chinese (Taiwan)", // or Taiwanese Mandarin
"zh-yue" : "Cantonese", // or Yue Chinese; same as yue
"zu" : "Zulu"
};
function translateInterwikiCodes() {
var alert_string;
var num_lines_printed = 0;
var describe_results = false;
var on_main_page = false;
var translate_all_extiw_hyperlinks = true;
var parent_node;
var interwiki_portlet;
var hyperlinks;
var temp_hyperlink;
var hyperlink_index;
var hyperlink_counter;
var num_hyperlinks = 0;
var language_code;
var English_translation;
var num_interwiki_links_translated = 0;
var interwiki_link_string = "interwiki link";
// Check whether we're on the Main Page
on_main_page = false;
if (document.getElementById("mp-topbanner")) {
on_main_page = true;
// window.alert("We're reading the Main Page.");
}
// Loop over the interwiki links
alert_string = "";
num_lines_printed = 0;
num_hyperlinks = 0;
interwiki_portlet = document.getElementById("p-lang");
if (!interwiki_portlet) {
alert_string += "Interwiki portlet is undefined.\n";
} else {
hyperlinks = interwiki_portlet.getElementsByTagName("A");
if (!hyperlinks) {
alert_string += "Interwiki hyperlinks are undefined.\n";
} else {
num_hyperlinks = hyperlinks.length;
}
}
interwiki_link_string = "interwiki link";
if (num_hyperlinks != 1) { interwiki_link_string += "s"; };
alert_string += "This page has " + num_hyperlinks + " potential " + interwiki_link_string + ".\n\n";
num_lines_printed += 2;
// window.alert(alert_string); alert_string = "";
hyperlink_counter = 0;
for (hyperlink_index=0; hyperlink_index<num_hyperlinks; hyperlink_index++) {
temp_hyperlink = hyperlinks[hyperlink_index];
if (num_lines_printed>45) { // in cases of many error messages
if (describe_results) { window.alert(alert_string); }
alert_string = "";
num_lines_printed = 0;
}
parent_node = temp_hyperlink.parentNode;
if (!parent_node) {
alert_string += "No parent node in hyperlink " + hyperlink_index + "\n";
num_lines_printed++;
continue;
}
if (parent_node.nodeName != "LI") {
alert_string += "No LI parent node in hyperlink " + hyperlink_index + "\n";
num_lines_printed++;
continue;
}
if (!parent_node.className) {
// alert_string += "No className for parent node in hyperlink " + hyperlink_index + "\n";
num_lines_printed++;
continue;
}
language_code = parent_node.className.replace(/interwiki-/, "");
language_code = language_code.replace(/\sFA/, "");
English_translation = interwiki_English_names[language_code];
if (!English_translation) {
alert_string += "No English translation for " + language_code + " in hyperlink " + hyperlink_index + "\n";
num_lines_printed++;
continue;
}
hyperlink_counter++;
if ((hyperlink_counter%40 == 1) && (hyperlink_counter > 1)) {
if (describe_results) { window.alert(alert_string); }
alert_string = "Continued...\n\n";
}
alert_string += "Interwiki link " + hyperlink_counter + " : " + language_code + " => " + English_translation + "\n";
temp_hyperlink.innerHTML = English_translation;
} // closes loop over interwiki links
num_interwiki_links_translated = hyperlink_counter;
interwiki_link_string = "interwiki link";
if (num_interwiki_links_translated != 1) { interwiki_link_string += "s"; };
alert_string += "\nTranslated " + num_interwiki_links_translated + " " + interwiki_link_string + " into English.";
if (describe_results) { window.alert(alert_string); }
// Translate other interwiki links; removed restriction to the Main Page
alert_string = "";
translate_all_extiw_hyperlinks = true;
if ((translate_all_extiw_hyperlinks) || (on_main_page)) {
num_hyperlinks = 0;
hyperlinks = document.getElementsByTagName("A"); // earlier code was restricted to mp-lang on Main Page
if (!hyperlinks) {
alert_string += "Document hyperlinks are undefined.\n";
} else {
num_hyperlinks = hyperlinks.length; // number of potential extiw hyperlinks
}
hyperlink_counter = 0;
for (hyperlink_index=0; hyperlink_index<num_hyperlinks; hyperlink_index++) {
temp_hyperlink = hyperlinks[hyperlink_index];
if (temp_hyperlink.className != "extiw") { continue; }
if (temp_hyperlink.title == "m:List of Wikipedias") { continue; }
language_code = temp_hyperlink.title.replace(/:/, "");
English_translation = interwiki_English_names[language_code];
if (!English_translation) {
alert_string += "No English translation for " + language_code + " in hyperlink " + hyperlink_index + "\n";
continue;
}
hyperlink_counter++;
if ((hyperlink_counter%40 == 1) && (hyperlink_counter > 1)) {
if (describe_results) { window.alert(alert_string); }
alert_string = "Continued...\n\n";
}
alert_string += "Interwiki link " + hyperlink_counter + " : " + language_code + " => " + English_translation + "\n";
temp_hyperlink.innerHTML = English_translation;
} // closes loop over interwiki links
num_interwiki_links_translated += hyperlink_counter; // Increment the number translated
interwiki_link_string = "interwiki link";
if (hyperlink_counter != 1) { interwiki_link_string += "s"; };
alert_string += "\nTranslated " + hyperlink_counter + " " + interwiki_link_string + " at the bottom of the Main Page into English.";
if (describe_results) { window.alert(alert_string); }
} // closes check for being on the Main Page
// Minimal acknowledgment message
if (!describe_results) {
interwiki_link_string = "interwiki link";
if (num_interwiki_links_translated != 1) { interwiki_link_string += "s"; };
alert_string = "\nTranslated " + num_interwiki_links_translated + " " + interwiki_link_string + " into English.";
window.alert(alert_string);
}
} // closes function translateInterwikiCodes()
$(function () {
mw.util.addPortletLink('p-tb', 'javascript:translateInterwikiCodes()', 'Translate interwiki links', 'ca-translate', 'Translates interwiki links into English', 'i', '');
});
//</pre>