Modul:bahasa
Roman
(Dialihin deri Modul:lang)
Dokumentasi untuk modul ini dapat dibuat di Modul:bahasa/doc
local p = {}
local langNames = {
["mul"] = "Antérobasa",
-- Kode basa hurup dua (ISO 639-1)
["aa"] = "Apar",
["ab"] = "Abhas",
["ae"] = "Awèstan",
["af"] = "Aprikan",
["ak"] = "Akan",
["am"] = "Amhara",
["an"] = "Aragon",
["ar"] = "Arab",
["as"] = "Asam",
["av"] = "Awar",
["ay"] = "Aymara",
["az"] = "Asèrbaijan",
["ba"] = "Baskir",
["be"] = "Rus Puti",
["bg"] = "Bulgari",
["bh"] = "Bihari",
["bi"] = "Bislama",
["bm"] = "Bambara",
["bn"] = "Benggala",
["bo"] = "Tibet",
["br"] = "Bréton",
-- ["bs"] = "Bosni", gabung ke [sh]
["ca"] = "Katalan",
["ce"] = "Cècèn",
["ch"] = "Camoru",
["co"] = "Korsika",
-- ["cr"] = "Kri", kudu dimasupin per logat
["co"] = "Korsika",
["cs"] = "Cèk",
["cv"] = "Cuwas",
["cy"] = "Walès",
["da"] = "Dèn",
["de"] = "Dèt",
["dv"] = "Diwéhi",
["dz"] = "Jongka",
["ee"] = "Éwé",
["el"] = "Yunani",
["en"] = "Inggris",
["eo"] = "Sepèranto",
["es"] = "Spanyol",
["et"] = "Èsti",
["eu"] = "Basken",
["fa"] = "Parsi",
["ff"] = "Pula",
["fi"] = "Pin",
["fj"] = "Piji",
["fo"] = "Pèrower",
["fr"] = "Prasman",
["fy"] = "Pris Kulon",
["ga"] = "Ir",
["gd"] = "Gaèlik Skot",
["gl"] = "Galisi",
["gn"] = "Guarani",
["gu"] = "Gujarat",
["gv"] = "Mang",
["ha"] = "Hausa",
["he"] = "Ibrani",
["hi"] = "Hindi",
["ho"] = "Hiri Motu",
-- ["hr"] = "Kroasi", gabung ama [sh]
["ht"] = "Peranakan Haiti",
["hu"] = "Honggari",
["hy"] = "Lemènder",
["hi"] = "Hindi",
["hz"] = "Héréro",
["ia"] = "Interlingua",
["id"] = "Indonésia",
["ie"] = "Interlingué",
["ig"] = "Igbo",
["ii"] = "Nuosu",
["ik"] = "Inupiak",
["io"] = "Ido",
["is"] = "Èslan",
["it"] = "Itali",
["iu"] = "Inuktitut",
["ja"] = "Jepang",
["jv"] = "Jawa",
["ka"] = "Géorgi",
["kg"] = "Konggo",
["ki"] = "Kikuyu",
["kj"] = "Kwanyama",
["kk"] = "Kasak",
["kl"] = "Grunlan",
["km"] = "Kemboja",
["kn"] = "Kanada",
["ko"] = "Koréa",
["kr"] = "Kanuri",
["ks"] = "Kasmir",
["ku"] = "Kurdi",
["kw"] = "Kornis",
["ky"] = "Kirgis",
["la"] = "Latèn",
["lb"] = "Leksembereh",
["lg"] = "Luganda",
["li"] = "Limbereh",
["ln"] = "Lingala",
["lo"] = "Laos",
["lt"] = "Litowen",
["lu"] = "Luba-Katanga",
["lv"] = "Lèt",
["mg"] = "Madagaskar",
["mh"] = "Marsèl",
["mi"] = "Maori",
["mk"] = "Makèdoni",
["ml"] = "Malayalam",
["mn"] = "Monggol",
["mr"] = "Marati",
["ms"] = "Melayu",
["mt"] = "Malta",
["my"] = "Birma",
["na"] = "Nauru",
["nb"] = "Nor Buku",
["nd"] = "Ndébélé Lor",
["ne"] = "Népal",
["ng"] = "Ndonga",
["nl"] = "Welanda",
["nn"] = "Nor Baru",
["no"] = "Nor",
["nr"] = "Ndébélé Kidul",
["nv"] = "Nabaho",
["ny"] = "Nyanja",
["oc"] = "Oksitan",
["oj"] = "Ojibwé",
["om"] = "Oromo",
["or"] = "Odia",
["os"] = "Oséti",
["pa"] = "Panjabi",
["pi"] = "Pali",
["pl"] = "Pol",
["ps"] = "Pastun",
["pt"] = "Portugis",
["qu"] = "Kécua",
["rm"] = "Romans",
["ro"] = "Rumèn",
["ru"] = "Rus",
["rw"] = "Rwanda-Rundi",
["sa"] = "Sangsekerta",
["sc"] = "Sardèni",
["sd"] = "Sindi",
["se"] = "Sami Lor",
["sg"] = "Sango",
["sh"] = "Sèrwi-Kroasi",
["si"] = "Singala",
["sk"] = "Slowak",
["sl"] = "Slowèn",
["sm"] = "Samoa",
["sn"] = "Sona",
["so"] = "Somali",
["sq"] = "Albani",
["ss"] = "Swasi",
["st"] = "Soto",
["su"] = "Sunda",
["sv"] = "Swèd",
["sw"] = "Swahili",
["ta"] = "Tamil",
["te"] = "Telugu",
["tg"] = "Tajik",
["th"] = "Siam",
["ti"] = "Tigrinya",
["tk"] = "Turkemèn",
["tl"] = "Tegalog",
["tn"] = "Cuana",
["to"] = "Tonga",
["tr"] = "Turki",
["ts"] = "Conga",
["tt"] = "Tatar",
["ty"] = "Taiti",
["ug"] = "Uygur",
["uk"] = "Ukrain",
["ur"] = "Urdu",
["uz"] = "Usbèk",
["ve"] = "Wènda",
["vi"] = "Piètnam",
["vo"] = "Wolapek",
["wa"] = "Walon",
["wo"] = "Wolop",
["xh"] = "Ngkosa",
["yi"] = "Yèdi",
["yo"] = "Yoruba",
["za"] = "Cueng",
["zh"] = "Tionghoa",
["zu"] = "Julu",
-- Kode basa hurup tiga (ISO 639-3)
["aaa"] = "Ghotuo",
["aab"] = "Alumu-Tesu",
["aac"] = "Ari",
["aad"] = "Amal",
["aaf"] = "Aranadan",
["aag"] = "Ambrak",
["aah"] = "Arapesh Abu'",
["aai"] = "Arifama-Miniafia",
["aak"] = "Ankave",
["aal"] = "Afade",
["aan"] = "Anambé",
["aap"] = "Arára Pará",
["aaq"] = "Penobscot",
["aas"] = "Aasax",
["aau"] = "Abau",
["aaw"] = "Solong",
["aax"] = "Mandobo Atas",
["aaz"] = "Amarasi",
["aba"] = "Abé",
["abb"] = "Bankon",
["abc"] = "Ayta Ambala",
["abd"] = "Agta Camarines Norte",
["abe"] = "Abenaki",
["abf"] = "Abai Sungé",
["abg"] = "Abaga",
["abh"] = "Arab Tajik",
["abi"] = "Abidji",
["abj"] = "Aka-Bea",
["abl"] = "Lampung Nyo",
["abm"] = "Abanyom",
["abn"] = "Abua",
["abo"] = "Abon",
["abp"] = "Ayta Abenlen",
["abq"] = "Abasa",
["abr"] = "Abron",
["abs"] = "Ambon",
["abt"] = "Ambulas",
["abu"] = "Abure",
["abv"] = "Arab Baharna",
["abw"] = "Pal",
["abx"] = "Inabaknon",
["aby"] = "Aneme Wake",
["abz"] = "Abui",
["aca"] = "Achagua",
["acb"] = "Áncá",
["acd"] = "Gikyode",
["ace"] = "Acé",
["ach"] = "Acoli",
["aci"] = "Aka-Cari",
["ack"] = "Aka-Kora",
["acl"] = "Akar-Bale",
["acm"] = "Arab Irak",
["acn"] = "Achang",
["acp"] = "Acipa Wètan",
["acr"] = "Achi",
["acs"] = "Acroá",
["acu"] = "Achuar",
["acv"] = "Achumawi",
["acw"] = "Arab Hijaz",
["acx"] = "Arab Oman",
["acy"] = "Arab Siprus",
["acz"] = "Acheron",
["ada"] = "Adangme",
["adb"] = "Adabe",
["add"] = "Dzodinka",
["ade"] = "Adele",
["adf"] = "Arab Dhofar",
["adg"] = "Andegerebinha",
["adh"] = "Adhola",
["adi"] = "Adi",
["adj"] = "Adioukrou",
["adl"] = "Galo",
["adn"] = "Adang",
["ado"] = "Abu",
["adp"] = "Adap",
["adq"] = "Adangbe",
["adr"] = "Adonara",
["ads"] = "Peta Adamorobe",
["adt"] = "Adnyamathanha",
["adu"] = "Aduge",
["adw"] = "Amondawa",
["ady"] = "Adigé",
["adz"] = "Adzera",
["aea"] = "Areba",
["aeb"] = "Arab Tunisia",
["aed"] = "Peta Argentina",
["aee"] = "Pashayi Lor-wètan",
["aek"] = "Haeke",
["ael"] = "Ambele",
["aem"] = "Arem",
["aen"] = "Peta Armenia",
["aeq"] = "Aer",
["aer"] = "Arrernte Wètan",
["aes"] = "Alsea",
["aeu"] = "Akeu",
["aew"] = "Ambakich",
["aey"] = "Amele",
["aez"] = "Aeka",
["afb"] = "Arab Teluk",
["afd"] = "Andai",
["afe"] = "Putukwam",
["afg"] = "Peta Afghan",
["afh"] = "Afrihili",
["afi"] = "Akrukay",
["afk"] = "Nanubae",
["afn"] = "Defaka",
["afo"] = "Eloyi",
["afp"] = "Tapei",
["afs"] = "Peranakan Apro-Seminoli",
["aft"] = "Afitti",
["afu"] = "Awutu",
["afz"] = "Obokuitai",
["aga"] = "Aguano",
["agb"] = "Legbo",
["agc"] = "Agatu",
["agd"] = "Agarabi",
["age"] = "Angal",
["agf"] = "Arguni",
["agg"] = "Angor",
["agh"] = "Ngelima",
["agi"] = "Agariya",
["agj"] = "Argobba",
["agk"] = "Agta Isarog",
["agl"] = "Fembe",
["agm"] = "Angaataha",
["agn"] = "Agutaynen",
["ago"] = "Tainae",
["agq"] = "Aghem",
["agr"] = "Aguaruna",
["ags"] = "Esimbi",
["agt"] = "Agta Cagayan Tenga",
["agu"] = "Aguacateca",
["agv"] = "Agta Remontado",
["agw"] = "Kahua",
["agx"] = "Aghul",
["agy"] = "Alta Kidul",
["agz"] = "Agta Mount Iriga",
["aha"] = "Ahanta",
["ahb"] = "Axamb",
["ahg"] = "Qimant",
["ahh"] = "Aghu",
["ahi"] = "Aizi Tiagbamrin",
["ahk"] = "Akha",
["ahl"] = "Igo",
["ahm"] = "Aizi Mobumrin",
["ahn"] = "Àhàn",
["aho"] = "Ahom",
["ahp"] = "Aizi Aproumu",
["ahr"] = "Ahirani",
["ahs"] = "Ashe",
["aht"] = "Ahtna",
["aia"] = "Arosi",
["aib"] = "Aynu",
["aic"] = "Ainbai",
["aid"] = "Alngith",
["aie"] = "Amara",
["aif"] = "Agi",
["aig"] = "Peranakan Inggris Antigua èn Barbuda",
["aih"] = "Ai-Cham",
["aii"] = "Neo-Aramaik Asur",
["aij"] = "Lishanid Noshan",
["aik"] = "Ake",
["ail"] = "Aimele",
["aim"] = "Aimol",
["ain"] = "Ainu",
["aio"] = "Aiton",
["aip"] = "Burumakok",
["air"] = "Airoran",
["ait"] = "Arikem",
["aiw"] = "Aari",
["aix"] = "Aighon",
["aiy"] = "Ali",
["aja"] = "Aja",
["ajg"] = "Adja",
["aji"] = "Ajië",
["ajn"] = "Andajin",
["ajp"] = "Arab Sam Kidul",
["ajw"] = "Ajawa",
["ajz"] = "Karbi Amri",
["akb"] = "Angkola",
["akl"] = "Aklanon",
["akm"] = "Aka-Bo",
["ako"] = "Akurio",
["akp"] = "Siwu",
["akq"] = "Ak",
["akr"] = "Araki",
["aks"] = "Akaselem",
["akt"] = "Akolet",
["aku"] = "Akum",
["akv"] = "Akhvakh",
["akw"] = "Akwa",
["akx"] = "Aka-Kede",
["aky"] = "Aka-Kol",
["akz"] = "Alabama",
["ala"] = "Alago",
["alc"] = "Kawésqar",
["ald"] = "Alladian",
["ale"] = "Aleut",
["alf"] = "Alege",
["alh"] = "Alawa",
["ali"] = "Amaimon",
["alj"] = "Alangan",
["alk"] = "Alak",
["all"] = "Allar",
["alm"] = "Amblong",
["alo"] = "Larike-Wakasihu",
["alp"] = "Aluné",
["alq"] = "Algonquin",
["alr"] = "Alutor",
["alt"] = "Altai Kidul",
["alu"] = "'Are'are",
["alw"] = "Alaba",
["alx"] = "Amol",
["aly"] = "Alyawarr",
["alz"] = "Alur",
["ama"] = "Amanayé",
["amb"] = "Ambo",
["amc"] = "Amahuaca",
["ame"] = "Yanesha'",
["amf"] = "Hamer-Banna",
["amg"] = "Amurdag",
["ami"] = "Amis",
["amj"] = "Amdang",
["amk"] = "Ambai",
["aml"] = "War-Jaintia",
["amm"] = "Ama",
["amn"] = "Amanab",
["amo"] = "Amo",
["amp"] = "Alamblak",
["amq"] = "Amahai",
["amr"] = "Amarakaeri",
["ams"] = "Amami-Oshima Kidul",
["amt"] = "Amto",
["amu"] = "Amuzgo Guerrero",
["amv"] = "Ambelau",
["amw"] = "Neo-Aramaik Kulon",
["amx"] = "Anmatyerre",
["amy"] = "Ami",
["amz"] = "Atampaya",
["ana"] = "Andaqui",
["anb"] = "Andoa",
["anc"] = "Ngas",
["and"] = "Ansus",
["ane"] = "Xârâcùù",
["anf"] = "Animere",
["anh"] = "Nend",
["ani"] = "Andi",
["anj"] = "Anor",
["ank"] = "Goemai",
["anl"] = "Anu",
["anm"] = "Anal",
["ann"] = "Obolo",
["ano"] = "Andoque",
["anp"] = "Angika",
["anq"] = "Jarawa",
["anr"] = "Andh",
["ans"] = "Anserma",
["ant"] = "Antakarinya",
["anu"] = "Anuak",
["anv"] = "Denya",
["anw"] = "Anaang",
["anx"] = "Andra-Hus",
["any"] = "Anyi",
["anz"] = "Anem",
["aoa"] = "Angolar",
["aob"] = "Abom",
["aoc"] = "Pemon",
["aod"] = "Andarum",
["aoe"] = "Angal Enen",
["aof"] = "Bragat",
["aog"] = "Angoram",
["aoi"] = "Anindilyakwa",
["aoj"] = "Mufian",
["aok"] = "Arhö",
["aol"] = "Alor",
["aom"] = "Ömie",
["aon"] = "Arapesh Bumbita",
["aor"] = "Aore",
["aos"] = "Taikat",
["aot"] = "Atong (India)",
["aou"] = "A'ou",
["aox"] = "Atorada",
["aoz"] = "Méto",
["apb"] = "Sa'a",
["apc"] = "Arab Syam Utara",
["apd"] = "Arab Sudan",
["ape"] = "Bukiyip",
["apf"] = "Agta Pahanan",
["apg"] = "Ampanang",
["aph"] = "Athpare",
["api"] = "Apiaká",
["apj"] = "Jicarilla",
["apk"] = "Apache Plains",
["apl"] = "Lipan",
["apm"] = "Chiricahua",
["apn"] = "Apinayé",
["apo"] = "Ambul",
["app"] = "Apma",
["apq"] = "A-Pucikwar",
["apr"] = "Arop-Lokep",
["aps"] = "Arop-Sissano",
["apt"] = "Apatani",
["apu"] = "Apurinã",
["apv"] = "Alapmunte",
["apw"] = "Apache Barat",
["apx"] = "Aputai",
["apy"] = "Apalaí",
["apz"] = "Safeyoka",
["aqc"] = "Archi",
["aqd"] = "Dogon Ampari",
["aqg"] = "Arigidi",
["aqm"] = "Atohwaim",
["aqn"] = "Alta Utara",
["aqp"] = "Atakapa",
["aqr"] = "Arhâ",
["aqt"] = "Angaité",
["aqz"] = "Akuntsu",
["arc"] = "Aramaik",
["ard"] = "Arabana",
["are"] = "Arrernte Barat",
["arh"] = "Arhuaco",
["ari"] = "Arikara",
["arj"] = "Arapaso",
["ark"] = "Arikapú",
["arl"] = "Arabela",
["arn"] = "Mapudungun",
["aro"] = "Araona",
["arp"] = "Arapaho",
["arq"] = "Arab Aljajaèr",
["arr"] = "Arara-Karo",
["ars"] = "Arab Najdi",
["aru"] = "Arua",
["arv"] = "Arbore",
["arw"] = "Arawak",
["arx"] = "Aruá",
["ary"] = "Arab Maroko",
["arz"] = "Arab Mesir",
["ast"] = "Asturi",
["ayh"] = "Arab Hadrami",
["bac"] = "Baduy",
["ban"] = "Bali",
["bbc"] = "Toba",
["bcl"] = "Bikol Tenga",
["bdq"] = "Bahnar",
["bdr"] = "Bajo Pesisir Kulon",
["bew"] = "Betawi",
["bgz"] = "Banggai",
["bhw"] = "Biak",
["bjn"] = "Banjar",
["bkr"] = "Bekumpé",
["bla"] = "Siksika",
["blj"] = "Bulungan",
["blz"] = "Belantak",
["bnd"] = "Bandan",
["bnn"] = "Bunun",
["bpz"] = "Bilba",
["brh"] = "Brahui",
["bsb"] = "Bisaya Bruné",
["bts"] = "Simelungun",
["btx"] = "Karo",
["bug"] = "Bugis",
["bve"] = "Bero",
["bvu"] = "Melayu Bukit",
["ceb"] = "Sèbu",
["cia"] = "Cia-Cia",
["cje"] = "Ceru",
["cjm"] = "Cam Wètan",
["ckt"] = "Cukci",
["cmn"] = "Mandarin",
["crh"] = "Tatar Krim",
["dbl"] = "Jirbal",
["dbn"] = "Duriankari",
["dru"] = "Rukay",
["dun"] = "Dusun Déah",
["duo"] = "Agta Dupaningan",
["ert"] = "Eritay",
["fon"] = "Pon",
["fos"] = "Siraya",
["frm"] = "Prasman Tengaan",
["gag"] = "Gagaos",
["gal"] = "Galoli",
["gay"] = "Gayo",
["gbi"] = "Galèla",
["gor"] = "Gorontalo",
["hak"] = "Khè'",
["haw"] = "Hawai",
["iba"] = "Iban",
["ill"] = "Iranun",
["ilo"] = "Iloko",
["itd"] = "Tidung Kidul",
["izh"] = "Ingri",
["jax"] = "Jambi",
["jmd"] = "Yamdéna",
["kab"] = "Kebél",
["kem"] = "Kemak",
["kge"] = "Kumering",
["kkv"] = "Kangèan",
["kmk"] = "Kalinga Limos",
["kmr"] = "Kurdi Lor",
["knb"] = "Kalinga Lubuagan",
["knx"] = "Kendayan",
["kxd"] = "Melayu Bruné",
["kzp"] = "Kaidipang-Bolangitang",
["lbx"] = "Lawangan-Pasèr",
["ljl"] = "Lio",
["ljp"] = "Lampung Api",
["lkj"] = "Remun",
["lmo"] = "Lombardi",
["lnd"] = "Lundayé",
["lti"] = "Léti",
["mad"] = "Medura",
["mak"] = "Mengkasar",
["max"] = "Melayu Maluku Lor",
["mba"] = "Higonon",
["mbb"] = "Manobo Bukidnon Kulon",
["mbf"] = "Melayu Baba",
["mbt"] = "Manobo Matigsalug",
["mdh"] = "Magindano",
["mdr"] = "Mandar",
["meo"] = "Melayu Kedah",
["mfa"] = "Melayu Kelantan-Petani",
["mhy"] = "Maanyan",
["min"] = "Minangkabo",
["mkn"] = "Melayu Kupang",
["mqg"] = "Kuté Udik",
["mqy"] = "Manggarai",
["mui"] = "Musi",
["mvp"] = "Duri",
["mvv"] = "Murut Tagal",
["nia"] = "Nias",
["nij"] = "Ngaju",
["otd"] = "Ot Danum",
["pag"] = "Pengasinan",
["pam"] = "Papanggo",
["pap"] = "Papiamèntu",
["pey"] = "Peco",
["plh"] = "Paulohi",
["plm"] = "Pelèmbang", --aselinya udah apkir, cuming masing kita paké
["pmf"] = "Pamona",
["pms"] = "Pimontès",
["pmy"] = "Melayu Papua",
["ppu"] = "Papora",
["pse"] = "Melayu Tenga",
["ptu"] = "Bambam",
["pwn"] = "Paiwan",
["rej"] = "Rejang",
["rob"] = "Taé'",
["ryu"] = "Okinawa",
["sas"] = "Sasak",
["scn"] = "Sisili",
["sco"] = "Skot",
["sda"] = "Toraja",
["slr"] = "Salar",
["smr"] = "Simelur",
["smw"] = "Sumbawa",
["sxn"] = "Sangir",
["szy"] = "Sakijaya",
["tao"] = "Yami",
["tay"] = "Atayal",
["tby"] = "Tabaru",
["tes"] = "Tengger",
["tet"] = "Tètun",
["tnt"] = "Tontemboan",
["tok"] = "Toki Pona",
["tpi"] = "Tok Pisin",
["trv"] = "Taroko",
["tsg"] = "Suluk",
["tvl"] = "Tuwalu",
["tvx"] = "Tayboan",
["txn"] = "Tarangan Kulon",
["vkt"] = "Kuté Ilir",
["vot"] = "Wot",
["wlo"] = "Wolio",
["wod"] = "Wolani",
["xmm"] = "Menado",
["xxt"] = "Tambora",
["yka"] = "Yakan",
["yue"] = "Kanton",
-- Kode basa bikinan
["ms-baz"] = "Melayu Pasar",
["ms-cla"] = "Melayu Tinggi",
["nan-hbl"] = "Hokkièn",
-- Kode basa lama
["ang"] = "Inggris Kolot",
["cu"] = "Slawèn Geréja Kolot",
["kaw"] = "Jawa Kolot",
["omy"] = "Melayu Kolot",
["osn"] = "Sunda Kolot",
["ota"] = "Turki Usmani",
-- Kode basa pongkol
["aav-khs-pro"] = "Pongkol Kasi",
["aav-nic-pro"] = "Pongkol Nikobar",
["aav-pkl-pro"] = "Pongkol Penar-Kasi-Lingam",
["aav-pro"] = "Pongkol Ostroasia",
["afa-pro"] = "Pongkol Aproasia",
["alg-pro"] = "Pongkol Kealgonkian",
["ine-pro"] = "Pongkol Hindi-Èropa",
["map-pro"] = "Pongkol Ostronési",
["poz-pro"] = "Pongkol Melayu-Polinési",
["poz-mly-pro"] = "Pongkol Kemelayuan",
-- Rungkun basa
["ine"] = "Hindi-Èropa",
["map"] = "Ostronési",
["ms-eit"] = "Melayu Pasar Indonésia Belètan",
["poz"] = "Melayu-Polinési",
["poz-mly"] = "Kemelayuan"
}
local protoLangs = {
["ine-pro"] = true,
["map-pro"] = true,
["poz-pro"] = true,
["poz-mly-pro"] = true
}
local langFamilies = {
["ine"] = true,
["map"] = true,
["ms-eit"] = true,
["poz"] = true,
["poz-mly"] = true
}
-- Interwiki table
local interwikis = {
aa = true, ab = true, af = true, ak = true, am = true, an = true, ang = true,
ar = true, as = true, ast = true, av = true, ay = true, az = true, bcl = true,
be = true, bg = true, bh = true, bi = true, bjn = true, blk = true, bm = true,
bn = true, bo = true, br = true, bs = true, btm = true, ca = true, ch = true,
chr = true, ckb = true, co = true, cr = true, cs = true, csb = true, cy = true,
da = true, de = true, diq = true, dv = true, dz = true, el = true, en = true,
eo = true, es = true, et = true, eu = true, fa = true, fi = true, fj = true,
fo = true, fr = true, fy = true, ga = true, gd = true, gl = true, gn = true,
gom = true, gor = true, gu = true, guw = true, gv = true, ha = true, he = true,
hi = true, hif = true, hr = true, hsb = true, hu = true, hy = true, ia = true,
id = true, ie = true, ig = true, ik = true, ["io"] = true, ["is"] = true, it = true,
iu = true, ja = true, jbo = true, jv = true, ka = true, kaa = true, kbd = true,
kcg = true, kk = true, kl = true, km = true, kn = true, ko = true, ks = true,
ku = true, kw = true, ky = true, la = true, lb = true, li = true, lmo = true,
ln = true, lo = true, lt = true, lv = true, mad = true, mg = true, mh = true,
mi = true, ["min"] = true, mk = true, ml = true, mn = true, mni = true, mnw = true,
mr = true, ms = true, mt = true, my = true, na = true, nah = true, nds = true,
ne = true, nia = true, nl = true, nn = true, no = true, oc = true, om = true,
["or"] = true, pa = true, pi = true, pl = true, pnb = true, ps = true, pt = true,
qu = true, rm = true, rn = true, ro = true, ru = true, rw = true, sa = true,
sat = true, sc = true, scn = true, sd = true, sg = true, sh = true, shn = true,
shy = true, si = true, sk = true, skr = true, sl = true, sm = true, sn = true,
so = true, sq = true, sr = true, ss = true, st = true, su = true, sv = true,
sw = true, ta = true, tcy = true, te = true, tg = true, th = true, ti = true,
tk = true, tl = true, tn = true, to = true, tpi = true, tr = true, ts = true,
tt = true, tw = true, ug = true, uk = true, ur = true, uz = true, vec = true,
vi = true, vo = true, wa = true, wo = true, xh = true, yi = true, yo = true,
za = true, zh = true, zu = true,
-- Mapped codes
mly = "ms", msa = "ms", msi = "ms", zlm = "ms", zsm = "ms"
}
-- Return interwiki link
function p.getInterwikiLink(lang, title)
local targetLang = interwikis[lang]
if targetLang == nil then
return lang
elseif targetLang == true then
return string.format("[[:%s:%s|%s]]", lang, title, lang)
else
return string.format("[[:%s:%s|%s]]", targetLang, title, lang)
end
end
-- Get full language name (returns nil if invalid)
function p.getLangName(frame)
local args = frame.args
local code = mw.text.trim(args[1] or "")
local nocap = args.nocap or ""
local name = langNames[code]
if not name then return nil end
local prefix = ""
if langFamilies[code] then
prefix = "Rungkun basa "
elseif code ~= "mul" then
prefix = "Basa "
end
local fullName = prefix .. name
if nocap == "1" and mw.ustring.len(fullName) > 0 then
local first = mw.ustring.sub(fullName, 1, 1)
local rest = mw.ustring.sub(fullName, 2)
fullName = mw.ustring.lower(first) .. rest
end
return fullName
end
-- Get language code (returns nil if invalid)
function p.getLangCode(frame)
local code = mw.text.trim((frame.args and frame.args[1]) or "")
if langNames[code] then
return code
else
return nil
end
end
-- Expose tables
p.langFamilies = langFamilies
p.protoLangs = protoLangs
p.langNames = langNames
p.interwikis = interwikis
return p