模組:Lang/data

--[[--------------------------< L A N G _ N A M E _ T A B L E >------------------------------------------------

primary table of tables that decode:
	lang -> language tags and namesodule:Language/data/iana language
	script -> ISO 15924 script tags
	region -> ISO 3166 region tags
	variant -> iana registered variant tags
	suppressed -> map of scripts tags and their associated language tags
	
all of these data come from separate modules that are derived from the IANA language-subtag-registry file

key_to_lower() avoids the metatable trap and sets all keys in the subtables to lowercase. Many language codes
have multiple associated names; Module:lang is only concerned with the first name so key_to_lower() only fetches
the first name.

TODO: instead of returning:
	["key"] = {"name"}
where each table has only one name, return
	["key"] = "name"
requires changes in Module:Lang.

]]

local function key_to_lower (module, src_type)
	local out = {};
	local source = (('var_sup' == src_type) and require (module)) or mw.loadData (module);		-- fetch data from this module; require() avoids metatable trap for variant data
	if 'var_sup' == src_type then
		for k, v in pairs (source) do
			out[k:lower()] = v;													-- for variant, everything is needed
		end

	elseif 'lang' == src_type and source.active then							-- for ~/iana_languages (active)
		for k, v in pairs (source.active) do
			out[k:lower()] = {v[1]};											-- ignore multiple names; take first name only
		end

	elseif 'lang_dep' == src_type and source.deprecated then					-- for ~/iana_languages (deprecated)
		for k, v in pairs (source.deprecated) do
			out[k:lower()] = {v[1]};											-- ignore multiple names; take first name only
		end

	else																		-- here for all other sources
		for k, v in pairs (source) do
			out[k:lower()] = {v[1]};											-- ignore multiple names; take first name only
		end
	end
	return out;
end

local lang_name_table = {
	lang = key_to_lower ('Module:Language/data/iana languages', 'lang'),
	lang_dep = key_to_lower ('Module:Language/data/iana languages', 'lang_dep'),
	script = key_to_lower ('Module:Language/data/iana scripts'),				-- script keys are capitalized; set to lower
	region = key_to_lower ('Module:Language/data/iana regions'),				-- region keys are uppercase; set to lower
	variant = key_to_lower ('Module:Language/data/iana variants', 'var_sup'),
	suppressed = key_to_lower ('Module:Language/data/iana suppressed scripts', 'var_sup'),		-- script keys are capitalized; set to lower
	}

local lang_data = {};


--[[--------------------------< O V E R R I D E >--------------------------------------------------------------

Language codes and names in this table override the BCP47 names in Module:Language/name/data.

code indexes in this table shall always be lower case
]]

local override = {
	--显示中文及查找目录所用,必须使用繁体中文
	["aa"] = {"阿法爾語"},														-- Afar
	["ab"] = {"阿布哈茲語"},													-- Abkhazian
	["ae"] = {"阿維斯陀語"},													-- Avestan
	["af"] = {"南非語"},														-- Afrikaans
	["ak"] = {"阿坎語"},														-- Akan
	["am"] = {"阿姆哈拉語"},													-- Amharic
	["an"] = {"亞拉岡語"},														-- Aragonese
    ["ar"] = {"阿拉伯語"},
    ["as"] = {"阿薩姆語"},
	["av"] = {"阿瓦爾語"},														-- Avaric
    ["ay"] = {"艾馬拉語"},														-- Aymara
    ["az"] = {"亞塞拜然語"},													-- Azerbaijani
    ["ba"] = {"巴什基爾語"},													-- Bashkir
    ["be"] = {"白俄羅斯語"},													
    ["bg"] = {"保加利亞語"},													
	["bh"] = {"比哈爾語"},														-- Bihari languages; collective
    ["bi"] = {"比斯拉馬語"},
    ["bm"] = {"班巴拉語"},														-- Bambara, Bamanankan
    ["bn"] = {"孟加拉語"},
	["bo"] = {"標準藏語"},														-- Tibetan
	["br"] = {"布列塔尼語"},													-- Brezhoneg
    ["bs"] = {"波斯尼亞語"},
    ["bua"] = {"布里亞特語"},													-- Syriac
    ["ca"] = {"加泰隆尼亞語"},
    ["ce"] = {"車臣語"},
    ["ceb"] = {"宿霧語"},
    ["ch"] = {"查莫羅語"},
	["cim"] = {"辛布里語"},														-- Cimbrian
    ["co"] = {"科西嘉語"},
    ["cr"] = {"克里語"},
    ["cs"] = {"捷克語"},
	["cu"] = {"教會斯拉夫語"},													-- Church Slavic, Church Slavonic, Old Bulgarian, Old Church Slavonic, Old Slavonic'
    ["cv"] = {"楚瓦什語"},
    ["cy"] = {"威爾斯語"},
    ["da"] = {"丹麥語"},
    ["de"] = {"德語"},
	["de-AT"] = {"奧地利德語"},
	["dv"] = {"迪維希語"},
	["dz"] = {"不丹語"},
	["ee"] = {"埃維語"},
	["el"] = {"希臘語"},														-- Modern Greek (1453-)
	["elx"] = {"埃蘭語"},														-- Elamite
	["en"] = {"英語"},
	["en-AU"] = {"澳洲英語"},
	["en-CA"] = {"加拿大英語"},
	["en-GB"] = {"英國英語"},
	["en-IE"] = {"愛爾蘭英語"},
	["en-NZ"] = {"紐西蘭英語"},
	["en-SA"] = {"南非英語"},
	["en-US"] = {"美國英語"},
	["eo"] = {"世界語"},
    ["es"] = {"西班牙語"},
    ["et"] = {"愛沙尼亞語"},
    ["eu"] = {"巴斯克語"},
    ["evn"] = {"鄂温克语"},														-- Classical Syriac
    ["fa"] = {"波斯語"},
	["ff"] = {"富拉語"},														-- Fulah
	["fi"] = {"芬蘭語"},
	["fj"] = {"斐濟語"},
	["fo"] = {"法羅語"},
	["fr"] = {"法語"},
	["fy"] = {"菲士蘭語"},														-- Western Frisian
    ["ga"] = {"愛爾蘭語"},
    ["gd"] = {"蘇格蘭蓋爾語"},
    ["gl"] = {"加利西亞語"},
    ["gn"] = {"瓜拉尼語"},
    ["gu"] = {"古吉拉特語"},
    ["gv"] = {"曼島語"},
    ["ha"] = {"豪薩語"},
    ["he"] = {"希伯來語"},
    ["hi"] = {"印地語"},	
    ["ho"] = {"希里木托語"},
    ["hr"] = {"克羅埃西亞語"},
	["ht"] = {"海地克里奧爾語"},												-- Haitian, Haitian Creole
    ["hu"] = {"匈牙利語"},	
    ["hy"] = {"亞美尼亞語"},	
	["hz"] = {"赫雷羅語"},														-- Herero
	["ia"] = {"因特語"},												    	-- Interlingua (International Auxiliary Language Association)
    ["id"] = {"印尼語"},
    ["ie"] = {"西方國際語"},
    ["ig"] = {"伊博語"},													    -- Igbo
	["ii"] = {"彝語北部方言"},													-- Sichuan Yi, Nuosu
	["ik"] = {"依努庇亞克語"},	
	["io"] = {"伊多語"},	
	["is"] = {"冰島語"},	
	["it"] = {"義大利語"},	
	["iu"] = {"伊努克提圖特語"},
	["ja"] = {"日語"},
	["jv"] = {"爪哇語"},
	["ka"] = {"喬治亞語"},
	["kg"] = {"剛果語"},
	["ki"] = {"基庫尤語"},														-- Kikuyu, Gikuyu
	["kj"] = {"寬亞瑪語"},														-- Kwanyama, Oshikwanyama
	["kk"] = {"哈薩克語"},														-- Kazakh; same, delete?
	["kl"] = {"格陵蘭語"},														-- Kalaallisut, Greenlandic
	["km"] = {"高棉語"},														-- Central Khmer
	["kn"] = {"卡納達語"},														-- Kannaḍa
	["ko"] = {"韓語"},															-- Korean
	["ks"] = {"喀什米爾語"},													-- Kashmiri
	["ku"] = {"庫德語"},														-- Kurdish
	["kv"] = {"科米語"},														-- Komi
	["kw"] = {"康瓦爾語"},														-- Cornish, Kernowek
	["ky"] = {"吉爾吉斯語"},													-- Kirghiz, Kyrgyz
    ["la"] = {"拉丁語"},
    ["lb"] = {"盧森堡語"},
	["lg"] = {"盧干達語"},														-- Ganda
	["li"] = {"林堡語"},														-- Limburgan, Limburger, Limburgish
	["lmo"] = {"倫巴第語"},														-- Lombard
	["ln"] = {"林格拉語"},		
	["lo"] = {"寮語"},
	["lt"] = {"立陶宛語"},
	["lu"] = {"盧巴卡丹加語"},
	["lv"] = {"拉脫維亞語"},
	["mg"] = {"馬達加斯加語"},
	["mh"] = {"馬紹爾語"},
	["mi"] = {"毛利語"},														-- Maori
    ["mk"] = {"馬其頓語"},
    ["ml"] = {"馬拉雅拉姆語"},
    ["mn"] = {"蒙古語"},
    ["mo"] = {"摩爾多瓦語"},
    ["mr"] = {"馬拉提語"},														-- Marathi
	["ms"] = {"馬來語"},														-- Malay (macrolanguage)
    ["mt"] = {"馬爾他語"},
    ["my"] = {"緬甸語"},
    ["myv"] = {"埃爾齊亞語"},													-- Erzya
	["na"] = {"諾魯語"},														-- Nauru
	["nap"] = {"那不勒斯語"},													-- Neapolitan
	["nb"] = {"書面挪威語"},													-- Norwegian Bokmål
	["nd"] = {"北恩德貝勒語"},													-- North Ndebele
	["ne"] = {"尼泊爾語"},														-- Nepali (macrolanguage)
	["ng"] = {"恩敦加語"},
    ["nl"] = {"荷蘭語"},
	["nn"] = {"新挪威語"},														-- Norwegian Nynorsk
    ["no"] = {"挪威語"},	
	["nr"] = {"南恩德貝勒語"},													-- South Ndebele <not found in Chinese Wikipedia>
	["nv"] = {"納瓦荷語"},	
	["ny"] = {"齊切瓦語"},														-- Nyanja, Chewa, Chichewa
	["oc"] = {"奧克語"},														-- Occitan (post 1500)
	["oj"] = {"奧吉布瓦語"},													-- Ojibwa
	["om"] = {"奧羅莫語"},
	["or"] = {"奧里亞語"},														-- Oriya (macrolanguage), Odia (macrolanguage)
    ["os"] = {"奧塞梯語"},
	["pa"] = {"旁遮普語"},														-- Panjabi, Punjabi
	["pag"] = {"邦阿西楠語"},													-- Pangasinan
	["pi"] = {"巴利語"},														-- Pali; same, delete?
	["pl"] = {"波蘭語"},
    ["ps"] = {"普什圖語"},
    ["pt"] = {"葡萄牙語"},
    ["qu"] = {"奇楚瓦語"},
    ["rm"] = {"羅曼什語"},														-- Romansh
	["rn"] = {"克倫地語"},														-- Rundi
	["ro"] = {"羅馬尼亞語"},													-- Romanian, Moldavian, Moldovan; same as first in IANA list, delete?
	["ru"] = {"俄語"},		
	["rw"] = {"盧安達語"},														-- Kinyarwanda; same, delete?
    ["sa"] = {"梵語"},
    ["sc"] = {"薩丁尼亞語"},
    ["sd"] = {"信德語"},
    ["se"] = {"北薩米語"},
    ["sg"] = {"桑戈語"},
    ["sh"] = {"塞爾維亞-克羅埃西亞語"},
	["si"] = {"僧伽羅語"},														-- Sinhala, Sinhalese
    ["sk"] = {"斯洛伐克語"},
    ["sl"] = {"斯洛維尼亞語"},													-- Slovenian
    ["sm"] = {"薩摩亞語"},
    ["sn"] = {"紹納語"},
    ["so"] = {"索馬利亞語"},
    ["sq"] = {"阿爾巴尼亞語"},
    ["sr"] = {"塞爾維亞語"},
	["sr-Cyrl"] = {"塞爾維亞語西里爾字母"},										-- sr = Serbian; Cyrillic is the alphabet
	["ss"] = {"史瓦濟語"},														-- Swati
	["st"] = {"索托語"},														-- Southern Sotho
	["su"] = {"巽他語"},
    ["sv"] = {"瑞典語"},	
	["sw"] = {"斯瓦希里語"},													-- Swahili (macrolanguage)
    ["ta"] = {"坦米爾語"},
    ["te"] = {"泰盧固語"},
    ["tg"] = {"塔吉克語"},
    ["th"] = {"泰語"},
    ["ti"] = {"提格利尼亞語"},
    ["tk"] = {"土庫曼語"},
    ["tl"] = {"他加祿語"},
    ["tn"] = {"札那語"},
    ["to"] = {"東加語"},
    ["tr"] = {"土耳其語"},
	["to"] = {"東加語"},														-- Tonga (Tonga Islands)
	["ts"] = {"聰加語"},														-- Tsonga, Xitsonga
	["tt"] = {"韃靼語"},														-- Tatar	
	["tw"] = {"契維語"},	
	["ty"] = {"大溪地語"},
	["ug"] = {"維吾爾語"},
	["uk"] = {"烏克蘭語"},
	["ur"] = {"烏爾都語"},
	["uz"] = {"烏茲別克語"},
	["ve"] = {"文達語"},
    ["vi"] = {"越南語"},
    ["vo"] = {"沃拉普克語"},
    ["wa"] = {"瓦隆語"},	
    ["wo"] = {"沃洛夫語"},	
    ["xh"] = {"科薩語"},	
    ["yi"] = {"意第緒語"},	
    ["yo"] = {"約魯巴語"},	
	["za"] = {"壯語"},															-- Zhuang, Chuang; ; same as first in IANA list, delete?
	["zh"] = {"中文"},	
	["zu"] = {"祖魯語"},	
	
-- ISO 639-2 codes
	["ber"] = {"柏柏爾語"},														-- Berber languages
	["cel"] = {"原始凱爾特語"},													-- Celtic languages
	["chr"] = {"切羅基語"},
    ["cop"] = {"科普特語"},														-- Coptic languages
    ["fil"] = {"菲律賓語"},
    ["frs"] = {"東菲士蘭下薩克森語"},											-- East Frisian Low Saxon
	["gem"] = {"原始日耳曼語"},													-- Germanic languages
	["gil"] = {"吉里巴斯語"},													-- Gilbertesehif
	["haw"] = {"夏威夷語"},
    ["hit"] = {"西臺語"},
	["jbo"] = {"邏輯語"},													    -- Lojban
	["kmb"] = {"姆本杜語"},
	["kum"] = {"庫梅克語"},
	["myn"] = {"瑪雅語系"},														-- Mayan languages
	["nah"] = {"納瓦特爾語"},													-- Nahuatl languages
    ["pfl"] = {"普法爾茨方言"},                                                 -- Palatine German language
	["pra"] = {"普拉克里特諸語言"},												-- Prakrit languages
--	["roa"] = {"澤西語"},														-- Romance languages
	["sal"] = {"薩利希語系"},													-- Salishan languages
	["sat"] = {"桑塔利語"},	
	["sla"] = {"斯拉夫語族"},													-- Slavic languages
	["son"] = {"桑海語族"},														-- Songhai languages
	["sux"] = {"蘇美語"},	
	["pap"] = {"帕皮阿門托語"},
    ["pau"] = {"帕勞語"},                                                       -- Palau, Palauan
    ["tum"] = {"通布卡語"},
    ["ukr"] = {"烏克蘭語"},
	["wen"] = {"索布語"},														-- Sorbian languages

-- ISO 639-3 codes
	["abk"] = {"阿布哈茲語"},													-- not in IANA; see code ab
	["ace"] = {"亞齊語"},														-- Achinese
	["ady"] = {"阿迪格語"},														-- Adyghe language
	["aeb"] = {"突尼斯阿拉伯語"},
	["aec"] = {"薩伊迪阿拉伯語"},												-- Saidi Arabic
	["ain"] = {"阿伊努語"},														-- Ainu (Japan)
	["akk"] = {"阿卡德語"},	
	["akl"] = {"阿克蘭語"},														-- Aklanon
	["alr"] = {"阿留特語"},
	["alt"] = {"阿爾泰語"},														-- Southern Altai
	["ami"] = {"阿美語"},														-- Amis, Pangcah
	["ams"] = {"南奄美大島語"},
--	["ang"] = {"古英語"},														-- Old English (ca. 450-1100)
	["apm"] = {"梅斯卡萊羅-契利卡瓦語"},										-- Mescalero-Chiricahua Apache
	["arc"] = {"亞拉姆語"},
	["arq"] = {"阿爾及利亞阿拉伯語"},
	["arz"] = {"埃及阿拉伯語"},													-- Egyptian Arabic
	["ast"] = {"阿斯圖里亞斯語"},												-- Asturian
	["atb"] = {"載瓦語"},
	["bal"] = {"俾路支語"},														-- Baluchi
	["bar"] = {"巴伐利亞語"},													-- Bavarian
	["bcl"] = {"中比科爾語"},													-- Central Bikol
	["bft"] = {"巴爾蒂語"},														-- Balti
	["bho"] = {"博杰普爾語"},													-- Bhojpuri
	["bin"] = {"埃多語"},														-- Bini, Edo
	["bnn"] = {"布農語"},														-- Bunun
	["bpy"] = {"比什努普里亞-曼尼普爾語"},										-- Bishnupriya, Bishnupriya Manipuri
	["brh"] = {"布拉灰語"},
	["brx"] = {"博多語"},														-- Bodo (India)
	["byq"] = {"巴賽語"},														-- Basay
	["chg"] = {"察合台突厥語"},													-- Chagatai
	["chm"] = {"Mari"},															-- Mari (Russia)
	["ckb"] = {"中庫爾德語"},													-- Sorani Kurdish, Central Kurdish
    ["ckt"] = {"楚科奇語"},
    ["ckv"] = {"噶瑪蘭語"},														-- Kbalan, Kavalan
    ["cnr"] = {"蒙特內哥羅語"},													-- Montenegrin
	["cnu"] = {"Shenwa"},														-- Chenoua
	["coc"] = {"Cocopah"},														-- Cocopa
	["crh"] = {"克里米亞韃靼語"},												-- Crimean Tatar, Qırımtatar
	["csu"] = {"卡舒比語"},														
	["dag"] = {"達巴尼語"},														-- Dagbani
	["deu"] = {"早期德語"},														-- not in IANA; see code de
	["din"] = {"丁卡語"},														
	["diq"] = {"扎扎其語"},														-- Dimli (individual language)
	["dng"] = {"東干語"},														-- Dungan
	["dru"] = {"魯凱語"},														-- Drekay, Rukai
	["dsb"] = {"下索布語"},														-- Lower Sorbian, dolnoserbšćina
	["duu"] = {"獨龍語"},														-- Derung language	
	["egy"] = {"埃及語"},														-- Egyptian (Ancient)
	["ell"] = {"現代希臘語"},													-- not in IANA; see code el
	["enm"] = {"中古英語"},														-- Middle English (1100-1500)
	["fit"] = {"梅安語"},														-- Tornedalen Finnish
	["fkv"] = {"克文語"},														-- Kven Finnish
	["fos"] = {"西拉雅語"},														-- Siraya
	["frk"] = {"古法蘭克語"},													-- Frankish
	["frm"] = {"中古法語"},														-- Middle French (ca. 1400-1600)
	["fro"] = {"古法語"},														-- Old French (842-ca. 1400)
	["frr"] = {"北弗里斯蘭語"},													-- North Frisian, Frasch, Fresk, Freesk, Friisk
	["fry"] = {"西菲士蘭語"},													-- not in IANA; see code fy
	["gag"] = {"加告茲語"},														-- Gagauz
    ["gcf"] = {"瓜德羅普克里奧爾語"},                                           -- Guadeloupean Creole
	["gcr"] = {"法屬圭亞那克里奧爾語"},
	["gez"] = {"吉茲語"},														-- Geez
	["gju"] = {"古吉爾語 "},													-- Gujari
	["gmh"] = {"中古高地德語"},													-- Middle High German (ca. 1050-1500)
	["goh"] = {"古高地德語"},													-- Old High German (ca. 750-1050)
	["gos"] = {"格羅寧根方言"},													-- Gronings
	["got"] = {"哥德語"},														-- Gothic, Gutisk
	["grc"] = {"古希臘語"},														-- Ancient Greek (to 1453)
	["gsw"] = {"阿勒曼尼語"},													-- Swiss German, Alemannic, Alsatian
	["gul"] = {"Gullah"},														-- Sea Island Creole English
	["hak"] = {"客家語"},														-- Hakka Chinese
	["hbo"] = {"聖經希伯來語"},													-- Ancient Hebrew
	["hbs"] = {"塞爾維亞-克羅埃西亞語"},										-- Serbo-Croatian
	["hif"] = {"斐濟印地語"},													-- Fiji Hindi
	["hnd"] = {"Hindko"},														-- Southern Hindko
	["hoc"] = {"霍語"},															-- Ho, Bihar Ho, Lanka Kol
	["ikt"] = {"Inuvialuk"},													-- Inuinnaqtun, Western Canadian Inuktitut
	["ilo"] = {"伊洛卡諾語"},													-- Iloko
	["inh"] = {"印古什語"},														-- Ingush
	["kaa"] = {"Karakalpak"},													-- Kara-Kalpak
	["kae"] = {"凱達格蘭語"},													
	["kan"] = {"康納達語"},														-- Kannada
	["khb"] = {"傣仂語"},														-- Tai Lue, Tai Lɯ, Tai Lü, Thai Lue, Tai Le
	["kmr"] = {"北庫德語"},														-- Northern Kurdish
	["knn"] = {"孔卡尼語"},														-- Konkani (individual language)
	["kok"] = {"孔卡尼語"},														-- Konkani (macrolanguage)
	["kpo"] = {"科普索語"},														-- Kposo, Ikposo
    ["kpy"] = {"科里亞克語"},
    ["krc"] = {"卡拉恰伊-巴爾卡爾語"},											-- Karachay-Balkar
	["krj"] = {"Kinaray-a"},													-- Kinaray-A
	["ksh"] = {"利普里安語"},													-- Ripuarian, Kölsch;  --ksh is the code of Colognian, but ksh.wiki is the Ripuarian Wikipedia
	["ksw"] = {"斯高克倫語"},													-- S'gaw Karen
	["ktz"] = {"Juǀ'hoan"},														-- Ju/'hoan, Juǀʼhoan, Juǀʼhoansi
	["kzg"] = {"喜界語"},														-- Kikai	
	["lbj"] = {"拉達克語"},														-- Ladakhi
	["lez"] = {"列茲金語"},														-- Lezgian, Lezghian
	["lij"] = {"利古里亚語"},
	["liv"] = {"立窩尼亞語"},													-- Livonian, Liv
	["lkt"] = {"拉科塔语"},														-- Lakota
	["lng"] = {"倫巴底語"},														-- Lombardic, Langobardic
	["lzz"] = {"拉茲語"},														-- Laz
	["maz"] = {"馬索維亞語"},													-- Central Mazahua
	["mag"] = {"摩揭陀語"},														-- Magahi
	["mdf"] = {"莫克沙語"},														-- Moksha
	["mga"] = {"中古愛爾蘭語"},													-- Middle Irish (900-1200)
	["mhr"] = {"Mari"},															-- Eastern Mari
	["mia"] = {"Miami-Illinois"},												-- Miami
	["min"] = {"米南佳保語"},       											-- Minangkabau
	["miq"] = {"Miskito"},														-- Mískito
	["mix"] = {"Mixtec"},														-- Mixtepec Mixtec
	["mjw"] = {"卡爾比語"},														-- Karbi
--	["mla"] = {"中世紀拉丁語"},													-- Malo; clearly a misuse of code mla;
	["mni"] = {"曼尼普爾語"},													-- Manipuri, Meitei
	["mol"] = {"摩爾多瓦語", "摩爾達維亞語"},									-- Moldavian, Moldovan (639-3, both retired)
	["mrj"] = {"山地馬里語"},													-- Western Mari
	["mww"] = {"白苗話"},														-- Hmong Daw
	["mzn"] = {"馬贊德蘭語"},													-- Mazanderani
	["nan"] = {"閩南語"},														-- Min Nan Chinese
	["naq"] = {"科伊科伊語"},													-- Khoekhoe, Nama (Namibia); same as first in IANA list, delete?
--	["naz"] = {"North Azeri"},													-- Coatepec Nahuatl; clearly a misuse of code naz
	["nci"] = {"古典納瓦特爾語"},												-- Classical Nahuatl; same, delete?
	["nds"] = {"低地德語"},														-- Low German, Low Saxon, Plattdeutsch, Plattdüütsch
	["nds-nl"] = {"荷蘭下薩克森語"},											-- Dutch Low Saxon, Low German, Low Saxon; as spoken in the Netherlands; see code nsd
	["new"] = {"尼瓦爾語"},														-- Newari, Nepal Bhasa
	["niu"] = {"紐埃語"},														-- Niuean
	["non"] = {"古諾斯語"},	
	["nod"] = {"北部泰語"},														-- Northern Thai, Lanna, Kam Mueang
 	["nrf"] = {"諾曼語"},														
	["nsd"] = {"南尼蘇語"},														-- Southern Nisu
	["nso"] = {"北索托語"},														-- Pedi, Northern Sotho, Sepedi
	["nwc"] = {"古典尼瓦爾語"},													-- Classical Newari, Classical Nepal Bhasa, Old Newari
	["oci"] = {"普羅旺斯方言"},													-- oc
	["okn"] = {"沖永良部語"},													-- Okinoerabu dialect cluster, Shimamuni	
	["oko"] = {"新羅語"},
	["ood"] = {"O'odham"},														-- Tohono O'odham
	["orv"] = {"古東斯拉夫語"},     											-- Old East Slavic
	["ota"] = {"鄂圖曼土耳其語"},												-- Ottoman Turkish (1500-1928)
	["otk"] = {"古突厥語"},														-- Old Turkish
	["oty"] = {"古泰米爾語"},		
	["owl"] = {"古威爾斯語"},													-- Old Welsh
	["pal"] = {"中古波斯語"},													-- Pahlavi
	["pam"] = {"邦板牙語"},														-- Pampanga, Kapampangan
	["pcd"] = {"皮卡第語"},
	["peo"] = {"古波斯語"},														-- Old Persian (ca. 600-400 B.C.)
	["phr"] = {"博德瓦爾語"},													-- Pahari-Potwari
	["phn"] = {"腓尼基語"},		                                                -- Phoenician
	["pka"] = {"普拉克里特諸語言"},												-- Ardhamāgadhī Prākrit
	["pms"] = {"皮埃蒙特语"},
	["pnb"] = {"旁遮普語"},														-- Western Panjabi
	["prs"] = {"達利語"},
	["psu"] = {"索拉塞那語"},													-- Sauraseni Prākrit
	["ppu"] = {"拍瀑拉語", "洪雅語"},											-- Papura, Hoany
	["pwn"] = {"排灣語"},														-- Pinayuanan, Paiwan
	["pyu"] = {"卑南語"},														-- Pinuyumayan, Puyuma
	["rap"] = {"拉帕努伊語"},													-- Rapanui
	["rar"] = {"庫克群島毛利語"},												-- Rarotongan, Cook Islands Maori
	["rcf"] = {"留尼旺克里奧爾語"},
	["rmu"] = {"Scandoromani"},													-- Tavringer Romani
	["rom"] = {"羅姆語"},														-- Romany
	["rue"] = {"盧森尼亞語"},													-- Rusyn
	["rup"] = {"阿羅蒙語"},														-- Macedo-Romanian, Aromanian, Arumanian
	["rus"] = {"俄語"},															-- not in IANA; see code ru
	["rut"] = {"魯圖爾語"},														-- Rutul
	["ryn"] = {"北奄美大島語"},
	["rys"] = {"八重山語"},														-- Yaeyama
	["ryu"] = {"沖繩語"},														-- Central Okinawan
	["sah"] = {"雅庫特語", "薩哈語"},											-- Yakut
	["sco"] = {"低地蘇格蘭語"},													-- Scots, Lowland Scots
	["scn"] = {"西西里語"},
	["sdc"] = {"薩沙里語"},														-- Sassarese Sardinian
	["sdn"] = {"加盧拉方言"},													-- Gallurese Sardinian
	["sga"] = {"古愛爾蘭語"},													-- Old Irish (to 900)
	["sgs"] = {"薩莫吉提亞語"},													-- Samogitian dialect, Žemaitiu ruoda
	["shn"] = {"撣語"},															-- Shan
	["shp"] = {"Shipibo"},														-- Shipibo-Conibo
	["sip"] = {"錫金語"},														-- Sikkimese 
    ["smj"] = {"呂勒薩米語"},                                                   -- Lule Sámi
	["smn"] = {"伊納里薩米語"},
	["sms"] = {"斯科爾特薩米語"},												-- Skolt Sami
	["sjd"] = {"基爾丁薩米語"},
	["sje"] = {"皮特薩米語"},
	["skr"] = {"Saraiki"},														-- Saraiki, Seraiki; same as first in IANA list, delete?
	["src"] = {"勞古多羅方言"},													-- Logudorese Sardinian
	["sro"] = {"坎皮達諾方言"},													-- Campidanese Sardinian
	["stq"] = {"薩特菲士蘭語"},
	["swb"] = {"馬約特語"},														-- Shimaore
	["swg"] = {"施瓦本方言"},
	["sxr"] = {"拉阿魯哇語"},													-- Hla'alua, Saaroa
	["syc"] = {"古敘利亞語"},													-- Classical Syriac
	["syr"] = {"敘利亞語"},														-- Syriac
	["szy"] = {"撒奇萊雅語"},													-- Sakizaya
    ["srh"] = {"色勒庫爾語"},
	["tab"] = {"塔巴薩蘭語"},													-- Tabasaran
	["tao"] = {"達悟語"},														-- Cizicizing No Tao、Ireriak No Tao, Yami
	["tay"] = {"泰雅語"},														-- Atayal, Tayal
	["tcy"] = {"圖陸語"},														-- Tulu, Tulu bāse
	["tdd"] = {"傣那语"},
	["tet"] = {"德頓語"},														-- Tetum
	["tkl"] = {"托克勞語"},														-- Tokelau
	["tkn"] = {"德之島語"},														-- Tokunoshima
	["tmh"] = {"圖阿雷格語"},													-- Tamashek
	["tpi"] = {"巴布亞皮欽語"},													-- Tok Pisin
	["trv"] = {"德路固語", "太魯閣語"},											-- Truku, Sejiq Truku
	["tsu"] = {"鄒語"},															-- Cou, Tsou
	["tvl"] = {"吐瓦魯語"},														-- Tuvalu
	["tyv"] = {"圖瓦語"},														-- Tuvinian
	["uby"] = {"尤比克語"},														-- Ubykh
	["uun"] = {"巴宰語"},														-- Pazeh, Kulon (龜崙語) is its dialect
	["vls"] = {"西弗拉芒方言"},													-- Vlaams
	["vec"] = {"威尼斯語"},												
	["war"] = {"瓦瑞語"},														-- Waray (Philippines)
	["wep"] = {"威斯特法伦方言"},                                               -- Westphalien
	["wo"] = {"沃洛夫語"},                                                      -- Wolof
	["xal"] = {"衛拉特語", "瓦剌語"},											-- Kalmyk, Oirat
	["xal-RU"] = {"卡爾梅克衛拉特語"},											-- Kalmyk Oirat
	["xcl"] = {"古典亞美尼亞語"},												-- Classical Armenian
	["xct"] = {"近古藏語"},														-- Classical Tibetan
	["xmf"] = {"明格列爾語"},													-- Mingrelian 
	["xnb"] = {"卡那卡那富語"},													-- Kanakanavu
	["xpp"] = {"百濟語"},														-- Baekje
	["xpu"] = {"布匿語"},														-- Punic
	["xsr"] = {"夏爾巴語"},														-- Sherpa
	["xsy"] = {"賽夏語"},														-- Saisiyat
	["xug"] = {"國頭語"},														-- Kunigami 
	["xwo"] = {"書面瓦剌語"},													-- Written Oirat
	["yoi"] = {"與那國語"},														-- Yonaguni 
	["yox"] = {"與論語"},														-- Yoron
	["yua"] = {"猶加敦馬雅語"},													-- Yucateco, Yucatec Maya
	["yue"] = {"粵語"},
    ["zea"] = {"西蘭語"},														-- Zeêuw, Zealandic
    ["zkg"] = {"高句麗語"},
    ["zne"] = {"贊德語"},														-- Zande

-- non-standard codes
	["bat-smg"] = {"薩莫吉提亞語"},												-- bat = Baltic languages (639-2); dialect of Lithuanian has it's own IANA code sgs; bat-smg
	["be-x-old"] = {"白俄羅斯語傳統正寫法"},									-- be = Belarusian; x-old = private use tag; be-x-old.wikipedia.org; space char in index may indicate that this code not used
	["cbk-zam"] = {"查瓦卡諾語"},												-- cbk = Chavacano; zam = Zamboangueño? zam is not an IANA-registered extlang; cbk-zam.wikipedia.org
--	["cg"] = {"Montenegrin", "sr-ME"},											-- IANA / ISO 639-3 code is cnr
	["en-emodeng"] = {"近代英語"},												-- emodeng is not an IANA-registered variant
	["fiu-vro"] = {"沃羅語"},													-- fiu = Finno-Ugrian languages (639-2); vro = Võro (639-3); fiu-vro.wikipedia.org
	["fr-gallo"] = {"加洛語"},
	["gkm"] = {"中世紀希臘語", "grc"},
	["grc-gre"] = {"希臘語", "grc"},											-- grc = Ancient Greek (to 1453); gre not an IANA-registered code; used by Template:lang-grc-gre
    ["gsw-fr"] = {"阿爾薩斯語"},
	["hbs-Cyrl"] = {"塞爾維亞-克羅埃西亞語", "hbs"},
	["hbs-Latn"] = {"塞爾維亞-克羅埃西亞語", "hbs"},
	["map-bms"] = {"Banyumasan"},												-- dialect of Javanese; map = Austronesian languages (639-2); bms is an IANA registered code not related to Javanese; map-bms.wikipedia.org
	["nrf-gg"] = {"根西方言"},
	["nrf-je"] = {"澤西方言"},
	["oc-auvern"] = {"奧弗涅方言"}, 
	["oc-gascon"] = {"加斯科涅語"}, 
	["oc-lemosin"] = {"利穆贊方言"}, 
	["oc-provenc"] = {"普羅旺斯方言"}, 
	["oc-vivaraup"] = {"維瓦賴-阿爾卑斯方言"}, 
	["roa-rup"] = {"阿羅馬尼亞語"},												-- roa = Romance languages (639-2); rup = Macedo-Romanian, Aromanian, Arumanian (639-3); roa-rup.wikipedia.org
	["roa-tara"] = {"塔倫蒂諾語"},												-- roa = Romance languages (639-2); tara is not an IANA registered script; roa-tara.wikipedia.org
	["simple"] = {"簡單英語"},													-- simple is not an IANA registered variant; simple.wikipedia.org
	["zh-classical"] = {"文言"},												-- zh = Chinese; classical is not an IANA-registered variant; zh-classical.wikipedia.org
	["zh-min-nan"] = {"閩南語"},												-- zh-min-nan = Minnan, Hokkien, Amoy, Taiwanese, Southern Min, Southern Fujian, Hoklo, Southern Fukien, Ho-lo; granfathered in IANA, nan preferred; zh-min-nan.wikipedia.org
	["zh-yue"] = {"粵語"},
	["grc-x-aeolic"] = {"伊歐里斯希臘語"},										-- these grc-x-... codes are preferred alternates to the non-standard catchall code grc-gre
	["grc-x-attic"] = {"阿提卡希臘語"},
	["grc-x-biblical"] = {"聖經希臘語"},
	["grc-x-byzant"] = {"拜占庭希臘語"},
	["grc-x-classic"] = {"古典希臘語"},
	["grc-x-doric"] = {"多利亞希臘語"},
	["grc-x-hellen"] = {"希利尼話"},
	["grc-x-ionic"] = {"愛奧尼亞希臘語"},
	["grc-x-koine"] = {"通用希臘語"},
	["grc-x-medieval"] = {"中古希臘語"},
	["grc-x-patris"] = {"教父希臘語"},
	["grk-x-proto"] = {"原始希臘語"},											-- grk in IANA is Greek languages
--	["iir-x-proto"] = {"原始印度-伊朗語"},										-- iir in IANA is Indo-Iranian Languages
--	["ira-x-proto"] = {"原始伊朗語"},											-- ira in IANA is Iranian languages
--	["itc-x-proto"] = {"原始義大利語"},											-- itc in IANA is Italic languages
--	["sla-x-proto"] = {"原始斯拉夫語"},											-- sla in IANA is Slavic languages
--	["yuf-x-hav"] = {"Havasupai"},												-- IANA name for these three is Havasupai-Walapai-Yavapai
--	["yuf-x-wal"] = {"Walapai"},
--	["yuf-x-yav"] = {"Yavapai"},
	}

--[[--------------------------< A R T I C L E _ L I N K >------------------------------------------------------

for those rare occasions when article titles don't fit with the normal '<language name>-language'("xx语"或"xx語"), this table
maps language code to article title. Use of this table should be avoided and the use of redirects preferred as
that is the long-standing method of handling article names that don't fit with the normal pattern
]]

local article_name = {

	}

--[=[-------------------------< R T L _ S C R I P T S >--------------------------------------------------------

ISO 15924 scripts that are written right-to-left.  Data in this table taken from [[ISO 15924#List of codes]]

last update to this list: 2017-12-24

]=]

local rtl_scripts = {
	'adlm', 'arab', 'aran', 'armi', 'avst', 'cprt', 'egyd', 'egyh', 'hatr', 'hebr',
	'hung', 'inds', 'khar', 'lydi', 'mand', 'mani', 'mend', 'merc', 'mero', 'narb',
	'nbat', 'nkoo', 'orkh', 'palm', 'phli', 'phlp', 'phlv', 'phnx', 'prti', 'rohg',
	'samr', 'sarb', 'sogd', 'sogo', 'syrc', 'syre', 'syrj', 'syrn', 'thaa', 'wole',
	};


--[[--------------------------< T R A N S L I T   T I T L E S >------------------------------------------------

This is a table of tables of transliteration standards and the language codes or language scripts that apply to
those standards.  This table is used to create the tool-tip text associated with the transliterated text displayed
by some of the {{lang-??}} templates.

These tables are more-or-less copied directly from {{transl}}.  The standard 'NO_STD' is a construct to allow for
the cases when no |std= parameter value is provided.

]]

local translit_title_table = {
	['ahl'] = {
		['default'] = 'Academy of the Hebrew Language transliteration',
		},

	['ala'] = {
		['default'] = 'American Library Association – Library of Congress transliteration',
		},

	['ala-lc'] = {
		['default'] = 'American Library Association – Library of Congress transliteration',
		},

	['batr'] = {
		['default'] = 'Bikdash Arabic Transliteration Rules',
		},

	['bgn/pcgn'] = {
		['default'] = 'Board on Geographic Names / Permanent Committee on Geographical Names transliteration',
		},

	['din'] = {
		['ar'] = 'DIN 31635 Arabic',
		['fa'] = 'DIN 31635 Arabic',
		['ku'] = 'DIN 31635 Arabic',
		['ps'] = 'DIN 31635 Arabic',
		['tg'] = 'DIN 31635 Arabic',
		['ug'] = 'DIN 31635 Arabic',
		['ur'] = 'DIN 31635 Arabic',
		['arab'] = 'DIN 31635 Arabic',

		['default'] = 'DIN transliteration',
		},

	['eae'] = {
		['default'] = 'Encyclopaedia Aethiopica transliteration',
		},

	['hepburn'] = {
		['default'] = 'Hepburn transliteration',
		},

	['iast'] = {
		['default'] = 'International Alphabet of Sanskrit transliteration',
		},

	['iso'] = {																	-- when a transliteration standard is supplied
		['ab'] = 'ISO 9 Cyrillic',
		['ba'] = 'ISO 9 Cyrillic',
		['be'] = 'ISO 9 Cyrillic',
		['bg'] = 'ISO 9 Cyrillic',
		['kk'] = 'ISO 9 Cyrillic',
		['ky'] = 'ISO 9 Cyrillic',
		['mn'] = 'ISO 9 Cyrillic',
		['ru'] = 'ISO 9 Cyrillic',
		['tg'] = 'ISO 9 Cyrillic',
		['uk'] = 'ISO 9 Cyrillic',
		['bua'] = 'ISO 9 Cyrillic',
		['sah'] = 'ISO 9 Cyrillic',
		['tut'] = 'ISO 9 Cyrillic',
		['xal'] = 'ISO 9 Cyrillic',
		['cyrl'] = 'ISO 9 Cyrillic',

		['ar'] = 'ISO 233 Arabic',
		['ku'] = 'ISO 233 Arabic',
		['ps'] = 'ISO 233 Arabic',
		['ug'] = 'ISO 233 Arabic',
		['ur'] = 'ISO 233 Arabic',
		['arab'] = 'ISO 233 Arabic',

		['he'] = 'ISO 259 Hebrew',
		['yi'] = 'ISO 259 Hebrew',
		['hebr'] = 'ISO 259 Hebrew',

		['el'] = 'ISO 843 Greek',
		['grc'] = 'ISO 843 Greek',

		['ja'] = 'ISO 3602 Japanese',
		['hira'] = 'ISO 3602 Japanese',
		['hrkt'] = 'ISO 3602 Japanese',
		['jpan'] = 'ISO 3602 Japanese',
		['kana'] = 'ISO 3602 Japanese',

		['zh'] = 'ISO 7098 Chinese',
		['chi'] = 'ISO 7098 Chinese',
		['pny'] = 'ISO 7098 Chinese',
		['zho'] = 'ISO 7098 Chinese',
--		['han'] = 'ISO 7098 Chinese',											-- unicode alias of Hani? doesn't belong here? should be Hani?
		['hans'] = 'ISO 7098 Chinese',
		['hant'] = 'ISO 7098 Chinese',

		['ka'] = 'ISO 9984 Georgian',
		['kat'] = 'ISO 9984 Georgian',

		['arm'] = 'ISO 9985 Armenian',
		['hy'] = 'ISO 9985 Armenian',

		['th'] = 'ISO 11940 Thai',
		['tha'] = 'ISO 11940 Thai',

		['ko'] = 'ISO 11941 Korean',
		['kor'] = 'ISO 11941 Korean',

		['bn'] = 'ISO 15919 Indic',
		['dra'] = 'ISO 15919 Indic',
		['gu'] = 'ISO 15919 Indic',
		['hi'] = 'ISO 15919 Indic',
		['inc'] = 'ISO 15919 Indic',
		['kn'] = 'ISO 15919 Indic',
		['ml'] = 'ISO 15919 Indic',
		['mr'] = 'ISO 15919 Indic',
		['sa'] = 'ISO 15919 Indic',
		['ta'] = 'ISO 15919 Indic',
		['te'] = 'ISO 15919 Indic',
		['beng'] = 'ISO 15919 Indic',
		['brah'] = 'ISO 15919 Indic',
		['deva'] = 'ISO 15919 Indic',

		['default'] = 'ISO transliteration',
		},

	['mr'] = {
		['default'] = 'McCune–Reischauer transliteration',
		},

	['nihon-shiki'] = {
		['default'] = 'Nihon-shiki transliteration',
		},

	['no_std'] = {																-- when no transliteration standard is supplied
		['akk'] = 'Semitic transliteration',
		['sem'] = 'Semitic transliteration',
		['phnx'] = 'Semitic transliteration',
		['xsux'] = 'Cuneiform transliteration',
		},

	['pinyin'] = {
		['default'] = 'Pinyin transliteration',
		},

	['rr'] = {
		['default'] = 'Revised Romanization of Korean transliteration',
		},

	['satts'] = {
		['default'] = 'Standard Arabic Technical Transliteration System transliteration',
		},

	['ungegn'] = {
		['default'] = 'United Nations Group of Experts on Geographical Names transliteration',
		},

	['wehr'] = {
		['default'] = 'Hans Wehr transliteration',
		},
	};

return
	{
	article_name = article_name,
	lang_name_table = lang_name_table,
	override = override,
	rtl_scripts = rtl_scripts,
	is_rtl_script = is_rtl_script,
	translit_title_table = translit_title_table,
	};