User:Proteins/translateinterwikicodes.js

// // 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_index45) { // 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', ''); }); //