# Module:Lang/data

local lang_obj = mw.language.getContentLanguage;  
local this_wiki_lang_tag = lang_obj.code; -- get this wiki's language tag  

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

primary table of tables that decode:  
lang -> language tags and names  
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.  

local function key_to_lower (module, src_type)  
local out = {};  
local source_t = (('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_t) do  
out[k:lower] = v; -- for variant and suppressed everything is needed  
end  

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

elseif 'lang_dep' == src_type and source_t.deprecated then -- for ~/iana_languages (deprecated)  
for k, v in pairs (source_t.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_t) do  
out[k:lower] = v[1]; -- ignore multiple names; take first name only  
end  
end  
return out;  
end  

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

----------------------------< I 1 8 N M E D I A W I K I O V E R R I D E >--------------------------------  

For internationalization; not used at en.wiki  

The language names taken from the IANA language-subtag-registry file are given in English. That may not be ideal.  
Translating ~8,000 language names is also not ideal. MediaWiki maintains (much) shorter lists of language names  
in most languages for which there is a Wikipedia edition. When desired, Module:Lang can use the MediaWiki  
language list for the local language.  

Caveat lector: the list of MediaWiki language names for your language may not be complete or may not exist at all.  
When incomplete, MediaWiki's list will 'fall back' to another language (typically English). When that happens  
add an appropriate entry to the override table below.  

Caveat lector: the list of MediaWiki language names for your language may not be correct. At en.wiki, the  
MediaWiki language names do not agree with the IANA language names for these ISO 639-1 tags. Often it is simply  
spelling differences:  
bh: IANA: Bihari languages MW: Bhojpuri – the ISO 639-3 tag for Bhojpuri is bho  
bn: IANA: Bengali MW: Bangla – Bengali is the exonym, Bangla is the endonym  
dv: IANA: Dhivehi MW: Divehi  
el: IANA: Modern Greek MW: Greek  
ht: IANA: Haitian MW: Haitian Creole  
ky: IANA: Kirghiz MW: Kyrgyz  
li: IANA: Limburgan MW: Limburgish  
or: IANA: Oriya MW: Odia  
os: IANA: Ossetian MW: Ossetic  
"pa: IANA: Panjabi MW: Punjabi  
"ps: IANA: Pushto MW: Pashto  
"to: IANA: Tonga MW: Tongan  
"ug: IANA: Uighur MW: Uyghur  
use the override table to override language names that are incorrect for your project  

To see the list of names that MediaWiki has for your language, enter this in the Debug colsole:  
=mw.dumpObject (mw.language.fetchLanguageNames ('<tag>', 'all'))  
(replacing <tag> with the language tag for your language)  

Use of the MediaWiki language names lists is enabled when media_wiki_override_enable is set to boolean true.  

local media_wiki_override_enable = false; -- set to true to override IANA names with MediaWiki names; always false at en.wiki  
-- caveat lector: the list of MediaWiki language names for your language may not be complete or may not exist at all  
if true == media_wiki_override_enable then  
local mw_languages_by_tag_t = mw.language.fetchLanguageNames (this_wiki_lang_tag, 'all'); -- get a table of language tag/name pairs known to MediaWiki  
for tag, name in pairs (mw_languages_by_tag_t) do -- loop through each tag/name pair in the MediaWiki list  
if lang_name_table_t.lang[tag] then -- if the tag is in the main list  
lang_name_table_t.lang[tag] = name; -- overwrite exisiting name with the name from MediaWiki  
end  
end  
end  

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

Language codes and names in this table override the BCP47 names in lang_name_table.  

indexes in this table shall always be lower case  

local override = {  
------------------------------< I S O _ 6 3 9 - 1 >------------------------------------------------------------  

["ab"] = "Abkhaz", -- to match en.wiki article name  
["ca-valencia"] = "Valencian",  
["cu"] = "Church Slavonic", -- 2nd IANA name;  
["de-at"] = "Austrian German", -- these code-region and code-variant tags to match en.wiki article names  
["de-ch"] = "Swiss Standard German",  
["en-au"] = "Australian English",  
["en-ca"] = "Canadian English",  
["en-emodeng"] = "Early Modern English",  
["en-gb"] = "British English",  
["en-ie"] = "Irish English",  
["en-in"] = "Indian English",  
["en-nz"] = "New Zealand English",  
["en-us"] = "American English",  
["en-za"] = "South African English",  
["fr-ca"] = "Quebec French",  
["fr-gallo"] = "Gallo",  
["fy"] = "West Frisian", -- Western Frisian  
["mo"] = "Moldovan", -- Moldavian (deprecated code); to match en.wiki article title  
["nl-be"] = "Flemish", -- match MediaWiki  
["oc-gascon"] = "Gascon",  
["oc-provenc"] = "Provençal",  
["ps"] = "Pashto", -- Pushto  
["pt-br"] = "Brazilian Portuguese", -- match MediaWiki  
["ro-md"] = "Moldovan", -- 'not deprecated' form  
["ro-cyrl-md"] = "Moldovan", -- 'not deprecated' form  
["tw-asante"] = "Asante Twi",  
["ug"] = "Uyghur", -- 2nd IANA name; to match en.wiki article name  

-- these ISO 639-1 language-name overrides imported from Module:Language/data/wp_languages (since deleted)  
--<begin do-not-edit except to comment out>--  
["av"] = "Avar", -- Avaric  
["bo"] = "Standard Tibetan", -- Tibetan  
["el"] = "Greek", -- Modern Greek  
-- ["en-SA"] = "South African English", -- English; no; SA is not South Africa it Saudi Arabia; ZA is South Africa  
["ff"] = "Fula", -- Fulah  
["ht"] = "Haitian Creole", -- Haitian  
["hz"] = "Otjiherero", -- Herero  
["ii"] = "Yi", -- Sichuan Yi  
["ki"] = "Gikuyu", -- Kikuyu  
["kl"] = "Greenlandic", -- Kalaallisut  
["ky"] = "Kyrgyz", -- Kirghiz  
["lg"] = "Luganda", -- Ganda  
["li"] = "Limburgish", -- Limburgan  
["mi"] = "Māori", -- Maori  
["na"] = "Nauruan", -- Nauru  
["nb"] = "Bokmål", -- Norwegian Bokmål  
["nd"] = "Northern Ndebele", -- North Ndebele  
["nn"] = "Nynorsk", -- Norwegian Nynorsk  
["nr"] = "Southern Ndebele", -- South Ndebele  
["ny"] = "Chichewa", -- Nyanja  
["oj"] = "Ojibwe", -- Ojibwa  
["or"] = "Odia", -- Oriya  
["pa"] = "Punjabi", -- Panjabi  
["rn"] = "Kirundi", -- Rundi  
["sl"] = "Slovene", -- Slovenian  
["ss"] = "Swazi", -- Swati  
["st"] = "Sotho", -- Southern Sotho  
["to"] = "Tongan", -- Tonga  
--<end do-not-edit except to comment out>--  

------------------------------< I S O _ 6 3 9 - 2, - 3, - 5 >----------------------------------------------  

["alv"] = "Atlantic–Congo languages", -- to match en.wiki article title (endash)  
["arc"] = "Imperial Aramaic (700-300 BCE)", -- Official Aramaic (700-300 BCE), Imperial Aramaic (700-300 BCE); to match en.wiki article title uses ISO639-2 'preferred' name  
["art"] = "constructed", -- to match en.wiki article; lowercase for category name  
["ast-es"] = "Leonese", -- ast in IANA is Asturian; Leonese is a dialect  
["bea"] = "Dane-zaa", -- Beaver; to match en.wiki article title  
["bha"] = "Bhariati", -- Bharia; to match en.wiki article title  
["bhd"] = "Bhadarwahi", -- Bhadrawahi; to match en.wiki article title  
["bla"] = "Blackfoot", -- Siksika; to match en.wiki article title  
["blc"] = "Nuxalk", -- Bella Coola; to match en.wiki article title  
["bua"] = "Buryat", -- Buriat; this is a macro language; these four use wp preferred transliteration;  
["bxm"] = "Mongolian Buryat", -- Mongolia Buriat; these three all redirect to Buryat  
["bxr"] = "Russian Buryat", -- Russia Buriat;  
["bxu"] = "Chinese Buryat", -- China Buriat;  
["byr"] = "Yipma", -- Baruya, Yipma  
["clm"] = "Klallam", -- Clallam; to match en.wiki article title  
["egy"] = "Ancient Egyptian", -- Egyptian (Ancient); distinguish from contemporary arz: Egyptian Arabic  
["ems"] = "Alutiiq", -- Pacific Gulf Yupik; to match en.wiki article title  
["esx"] = "Eskimo–Aleut languages", -- to match en.wiki article title (endash)  
["frr"] = "North Frisian", -- Northern Frisian  
["frs"] = "East Frisian Low Saxon", -- Eastern Frisian  
["gsw-fr"] = "Alsatian", -- match MediaWiki  
["haa"] = "Hän", -- Han; to match en.wiki article title  
["hei"] = "Heiltsuk–Oowekyala", -- Heiltsuk; to match en.wiki article title  
["hmx"] = "Hmong–Mien languages", -- to match en.wiki article title (endash)  
["ilo"] = "Ilocano", -- Iloko; to match en.wiki article title  
["jam"] = "Jamaican Patois", -- Jamaican Creole English  
["lij-mc"] = "Monégasque", -- Ligurian as spoken in Monaco; this one for proper tool tip; also in <article_name> table  
["luo"] = "Dholuo", -- IANA (primary) /ISO 639-3: Luo (Kenya and Tanzania); IANA (secondary): Dholuo  
["mhr"] = "Meadow Mari", -- Eastern Mari  
["mid"] = "Modern Mandaic", -- Mandaic  
['mis'] = "uncoded", -- Uncoded languages; capitalization; special scope, not collective scope;  
["mkh"] = "Mon–Khmer languages", -- to match en.wiki article title (endash)  
["mla"] = "Tamambo", -- Malo  
['mte'] = "Mono-Alu", -- Mono (Solomon Islands)  
['mul'] = "multiple", -- Multiple languages; capitalization; special scope, not collective scope;  
["nan-tw"] = "Taiwanese Hokkien", -- make room for IANA / 639-3 nan Min Nan Chinese; match en.wiki article title  
["new"] = "Newar", -- Newari, Nepal Bhasa; to match en,wiki article title  
["ngf"] = "Trans–New Guinea languages", -- to match en.wiki article title (endash)  
["nic"] = "Niger–Congo languages", -- Niger-Kordofanian languages; to match en,wiki article title  
["nrf"] = "Norman", -- not quite a collective - IANA name: Jèrriais + Guernésiais; categorizes to Norman-language text  
["nrf-gg"] = "Guernésiais", -- match MediaWiki  
["nrf-je"] = "Jèrriais", -- match MediaWiki  
["nzi"] = "Nzema", -- Nzima; to match en.wiki article title  
["oma"] = "Omaha–Ponca", -- to match en.wiki article title (endash)  
["orv"] = "Old East Slavic", -- Old Russian  
["pfl"] = "Palatine German", -- Pfaelzisch; to match en.wiki article  
["pie"] = "Piro Pueblo", -- Piro; to match en.wiki article  
["pms"] = "Piedmontese", -- Piemontese; to match en.wiki article title  
["pnb"] = "Punjabi (Western)", -- Western Panjabi; dab added to override import from ~/wp languages and distinguish pnb from pa in reverse look up tag_from_name  
['qwm'] = "Cuman", -- Kuman (Russia); to match en.wiki article name  
["rop"] = "Australian Kriol", -- Kriol; en.wiki article is a dab; point to correct en.wiki article  
["sco-ulster"] = "Ulster Scots",  
["sdo"] = "Bukar–Sadong", -- Bukar-Sadung Bidayuh; to match en.wiki article title  
["smp"] = "Samaritan Hebrew", -- to match en.wiki article title  
["stq"] = "Saterland Frisian", -- Saterfriesisch  
["und"] = "undetermined", -- capitalization to match existing category  
["wrg"] = "Warrongo", -- Warungu  
["xal-ru"] = "Kalmyk", -- to match en.wiki article title  
["xgf"] = "Tongva", -- ISO 639-3 is Gabrielino-Fernandeño  
["yuf"] = "Havasupai–Hualapai", -- Havasupai-Walapai-Yavapai; to match en.wiki article title  
["zkt"] = "Khitan", -- Kitan; to match en.wiki article title  
["zxx"] = "no linguistic content", -- capitalization  

-- these ISO 639-2, -3 language-name overrides imported from Module:Language/data/wp_languages (since deleted)  
--<begin do-not-edit except to comment out>--  
["ace"] = "Acehnese", -- Achinese  
["aec"] = "Sa'idi Arabic", -- Saidi Arabic  
["akl"] = "Aklan", -- Aklanon  
["alt"] = "Altay", -- Southern Altai  
["apm"] = "Mescalero-Chiricahua", -- Mescalero-Chiricahua Apache  
["bal"] = "Balochi", -- Baluchi  
-- ["bcl"] = "Central Bicolano", -- Central Bikol  
["bin"] = "Edo", -- Bini  
["bpy"] = "Bishnupriya Manipuri", -- Bishnupriya  
["chg"] = "Chagatay", -- Chagatai  
["ckb"] = "Sorani Kurdish", -- Central Kurdish  
["cnu"] = "Shenwa", -- Chenoua  
["coc"] = "Cocopah", -- Cocopa  
["diq"] = "Zazaki", -- Dimli  
["fit"] = "Meänkieli", -- Tornedalen Finnish  
["fkv"] = "Kven", -- Kven Finnish  
["frk"] = "Old Frankish", -- Frankish  
["gez"] = "Ge'ez", -- Geez  
["gju"] = "Gujari", -- Gujari  
["gsw"] = "Alemannic German", -- Swiss German  
["gul"] = "Gullah", -- Sea Island Creole English  
["hak"] = "Hakka", -- Hakka Chinese  
["hbo"] = "Biblical Hebrew", -- Ancient Hebrew  
["hnd"] = "Hindko", -- Southern Hindko  
-- ["ikt"] = "Inuvialuk", -- Inuinnaqtun  
["kaa"] = "Karakalpak", -- Kara-Kalpak  
["khb"] = "Tai Lü", -- Lü  
["kmr"] = "Kurmanji Kurdish", -- Northern Kurdish  
["kpo"] = "Kposo", -- Ikposo  
["krj"] = "Kinaray-a", -- Kinaray-A  
-- ["ktz"] = "Juǀ'hoan", -- Juǀʼhoan  
["lez"] = "Lezgian", -- Lezghian  
["liv"] = "Livonian", -- Liv  
["lng"] = "Lombardic", -- Langobardic  
["mia"] = "Miami-Illinois", -- Miami  
["miq"] = "Miskito", -- Mískito  
["mix"] = "Mixtec", -- Mixtepec Mixtec  
["mni"] = "Meitei", -- Manipuri  
["mrj"] = "Hill Mari", -- Western Mari  
["mww"] = "White Hmong", -- Hmong Daw  
["nds-nl"] = "Dutch Low Saxon", -- Low German  
-- ["new"] = "Nepal Bhasa", -- Newari  
["nso"] = "Northern Sotho", -- Pedi  
-- ["nwc"] = "Classical Nepal Bhasa", -- Classical Newari, Classical Nepal Bhasa, Old Newari  
["ood"] = "O'odham", -- Tohono O'odham  
["otk"] = "Old Turkic", -- Old Turkish  
["pal"] = "Middle Persian", -- Pahlavi  
["pam"] = "Kapampangan", -- Pampanga  
["phr"] = "Potwari", -- Pahari-Potwari  
["pka"] = "Jain Prakrit", -- Ardhamāgadhī Prākrit  
-- ["pnb"] = "Punjabi", -- Western Panjabi  
["psu"] = "Shauraseni", -- Sauraseni Prākrit  
["rap"] = "Rapa Nui", -- Rapanui  
["rar"] = "Cook Islands Māori", -- Rarotongan  
["rmu"] = "Scandoromani", -- Tavringer Romani  
["rom"] = "Romani", -- Romany  
["rup"] = "Aromanian", -- Macedo-Romanian  
["ryu"] = "Okinawan", -- Central Okinawan  
["sdc"] = "Sassarese", -- Sassarese Sardinian  
["sdn"] = "Gallurese", -- Gallurese Sardinian  
["shp"] = "Shipibo", -- Shipibo-Conibo  
["src"] = "Logudorese", -- Logudorese Sardinian  
["sro"] = "Campidanese", -- Campidanese Sardinian  
["tkl"] = "Tokelauan", -- Tokelau  
["tvl"] = "Tuvaluan", -- Tuvalu  
["tyv"] = "Tuvan", -- Tuvinian  
["vls"] = "West Flemish", -- Vlaams  
["wep"] = "Westphalian", -- Westphalien  
["xal"] = "Oirat", -- Kalmyk  
["xcl"] = "Old Armenian", -- Classical Armenian  
["yua"] = "Yucatec Maya", -- Yucateco  
--<end do-not-edit except to comment out>--  

------------------------------< P R I V A T E _ U S E _ T A G S >----------------------------------------------  

["akk-x-latbabyl"] = "Late Babylonian Akkadian",  
["akk-x-midassyr"] = "Middle Assyrian Akkadian",  
["akk-x-midbabyl"] = "Middle Babylonian Akkadian",  
["akk-x-neoassyr"] = "Neo-Assyrian Akkadian",  
["akk-x-neobabyl"] = "Neo-Babylonian Akkadian",  
["akk-x-old"] = "Old Akkadian",  
["akk-x-oldassyr"] = "Old Assyrian Akkadian",  
["akk-x-oldbabyl"] = "Old Babylonian Akkadian",  
["alg-x-proto"] = "Proto-Algonquian", -- alg in IANA is Algonquian languages  
["ca-x-old"] = "Old Catalan",  
["cel-x-combrit"] = "Common Brittonic", -- cel in IANA is Celtic languages  
["cel-x-proto"] = "Proto-Celtic",  
["egy-x-demotic"] = "Demotic Egyptian",  
["egy-x-late"] = "Late Egyptian",  
["egy-x-middle"] = "Middle Egyptian",  
["egy-x-old"] = "Old Egyptian",  
["gem-x-proto"] = "Proto-Germanic", -- gem in IANA is Germanic languages  
["gmw-x-ecg"] = "East Central German",  
["grc-x-aeolic"] = "Aeolic Greek", -- these grc-x-... codes are preferred alternates to the non-standard catchall code grc-gre  
["grc-x-arcadcyp"] = "Arcadocypriot Greek",  
["grc-x-attic"] = "Attic Greek",  
["grc-x-biblical"] = "Biblical Greek",  
["grc-x-byzant"] = "Byzantine Greek",  
["grc-x-classic"] = "Classical Greek",  
["grc-x-doric"] = "Doric Greek",  
["grc-x-hellen"] = "Hellenistic Greek",  
["grc-x-ionic"] = "Ionic Greek",  
["grc-x-koine"] = "Koinē Greek",  
["grc-x-medieval"] = "Medieval Greek",  
["grc-x-patris"] = "Patristic Greek",  
["grk-x-proto"] = "Proto-Greek", -- grk in IANA is Greek languages  
["iir-x-proto"] = "Proto-Indo-Iranian", -- iir in IANA is Indo-Iranian Languages  
["inc-x-mitanni"] = "Mitanni-Aryan", -- inc in IANA is Indic languages  
["inc-x-proto"] = "Proto-Indo-Aryan",  
["ine-x-anatolia"] = "Anatolian languages",  
["ine-x-proto"] = "Proto-Indo-European",  
["ira-x-proto"] = "Proto-Iranian", -- ira in IANA is Iranian languages  
["itc-x-proto"] = "Proto-Italic", -- itc in IANA is Italic languages  
["ksh-x-colog"] = "Colognian", -- en.wiki article is Colognian; ksh (Kölsch) redirects there  
["la-x-medieval"] = "Medieval Latin",  
["la-x-new"] = "New Latin",  
["lmo-x-berg"] = "Bergamasque", -- lmo in IANA is Lombard; Bergamasque is a dialect  
["lmo-x-cremish"] = "Cremish", -- lmo in IANA is Lombard; Cremish is a dialect  
["lmo-x-milanese"] = "Milanese", -- lmo in IANA is Lombard; Milanese is a dialect  
["mis-x-ripuar"] = "Ripuarian", -- replaces improper use of ksh in wp_languages  
["prg-x-old"] = "Old Prussian",  
["sem-x-ammonite"] = "Ammonite",  
["sem-x-aramaic"] = "Aramaic",  
["sem-x-canaan"] = "Canaanite languages",  
["sem-x-dumaitic"] = "Dumaitic",  
["sem-x-egurage"] = "Eastern Gurage",  
["sem-x-hatran"] = "Hatran Aramaic",  
["sem-x-oldsoara"] = "Old South Arabian",  
["sem-x-palmyren"] = "Palmyrene Aramaic",  
["sem-x-proto"] = "Proto-Semitic",  
["sem-x-taymanit"] = "Taymanitic",  
["sla-x-proto"] = "Proto-Slavic", -- 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",  
["xsc-x-pontic"] = "Pontic Scythian", -- xsc in IANA is Scythian  
["xsc-x-saka"] = "Saka",  
["xsc-x-sarmat"] = "Sarmatian",  
}  

----------------------------< 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', 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 = {  
['kue'] = "Kuman language (New Guinea)", -- Kuman (Papua New Guinea); to avoid Kuman dab page  
["lij-mc"] = "Monégasque dialect", -- Ligurian as spoken in Monaco  
['mbo'] = "Mbo language (Cameroon)", -- Mbo (Cameroon)  
['mnh'] = "Mono language (Congo)", -- Mono (Democratic Republic of Congo); see Template_talk:Lang#Mono_languages  
['mnr'] = "Mono language (California)", -- Mono (USA)  
['mru'] = "Mono language (Cameroon)", -- Mono (Cameroon)  
["snq"] = "Sangu language (Gabon)", -- Sangu (Gabon)  
["toi"] = "Tonga language (Zambia and Zimbabwe)", -- Tonga (Zambia and Zimbabwe); to avoid Tonga language dab page  
["vwa"] = "Awa language (China)", -- Awa (China); to avoid Awa dab page  
["xlg"] = "Ligurian language (ancient)", -- see Template_talk:Lang#Ligurian_dab  
["zmw"] = "Mbo language (Congo)", -- Mbo (Democratic Republic of Congo)  
}  

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

ISO 15924 scripts that are written -to-. 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',  
};  

--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',  
},  

['hunterian'] = {  
['default'] = 'Hunterian 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',  
['cyrs'] = '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',  
['cmn'] = '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',  

['awa'] = 'ISO 15919 Indic',  
['bho'] = 'ISO 15919 Indic',  
['bn'] = 'ISO 15919 Indic',  
['bra'] = 'ISO 15919 Indic',  
['doi'] = 'ISO 15919 Indic',  
['dra'] = 'ISO 15919 Indic',  
['gon'] = 'ISO 15919 Indic',  
['gu'] = 'ISO 15919 Indic',  
['hi'] = 'ISO 15919 Indic',  
['hno'] = 'ISO 15919 Indic',  
['inc'] = 'ISO 15919 Indic',  
['kn'] = 'ISO 15919 Indic',  
['kok'] = 'ISO 15919 Indic',  
['ks'] = 'ISO 15919 Indic',  
['mag'] = 'ISO 15919 Indic',  
['mai'] = 'ISO 15919 Indic',  
['ml'] = 'ISO 15919 Indic',  
['mr'] = 'ISO 15919 Indic',  
['ne'] = 'ISO 15919 Indic',  
['new'] = 'ISO 15919 Indic',  
['or'] = 'ISO 15919 Indic',  
['pa'] = 'ISO 15919 Indic',  
['pnb'] = 'ISO 15919 Indic',  
['raj'] = 'ISO 15919 Indic',  
['sa'] = 'ISO 15919 Indic',  
['sat'] = 'ISO 15919 Indic',  
['sd'] = 'ISO 15919 Indic',  
['si'] = 'ISO 15919 Indic',  
['skr'] = 'ISO 15919 Indic',  
['ta'] = 'ISO 15919 Indic',  
['tcy'] = 'ISO 15919 Indic',  
['te'] = 'ISO 15919 Indic',  
['beng'] = 'ISO 15919 Indic',  
['brah'] = 'ISO 15919 Indic',  
['deva'] = 'ISO 15919 Indic',  
['gujr'] = 'ISO 15919 Indic',  
['guru'] = 'ISO 15919 Indic',  
['knda'] = 'ISO 15919 Indic',  
['mlym'] = 'ISO 15919 Indic',  
['orya'] = 'ISO 15919 Indic',  
['sinh'] = 'ISO 15919 Indic',  
['taml'] = 'ISO 15919 Indic',  
['telu'] = 'ISO 15919 Indic',  

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

['jyutping'] = {  
['default'] = 'Jyutping transliteration',  
},  

['mlcts'] = {  
['default'] = 'Myanmar Language Commission Transcription System',  
},  

['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',  
},  

['rtgs'] = {  
['default'] = 'Royal Thai General System of Transcription',  
},  

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

['scientific'] = {  
['default'] = 'scientific transliteration',  
},  

['ukrainian'] = {  
['default'] = 'Ukrainian National system of romanization',  
},  

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

['wadegile'] = {  
['default'] = 'Wade–Giles transliteration',  
},  

['wehr'] = {  
['default'] = 'Hans Wehr transliteration',  
},  
['yaleko'] = {  
['default'] = 'Yale romanization of Korean',  
}  
};  

--engvar=gb; can, should be omitted in articles that use American English; no  
need for the clutter.  

local engvar_sel_t = { -- select either UK English or US English  
['au'] = 'gb_t', -- these match IANA region codes (except in lower case)  
['ca'] = 'us_t',  
['gb'] = 'gb_t',  
['ie'] = 'gb_t',  
['in'] = 'gb_t',  
['nz'] = 'gb_t',  
['us'] = 'us_t', -- default engvar  
['za'] = 'gb_t'  
};  

local engvar_t = {  
['gb_t'] = {  
['romanisz_lc'] = 'romanisation', -- lower case  
['romanisz_uc'] = 'Romanisation', -- upper case  
['romanisz_pt'] = 'romanised', -- past tense  
},  
['us_t'] = { -- default engvar  
['romanisz_lc'] = 'romanization', -- lower case  
['romanisz_uc'] = 'Romanization', -- upper case  
['romanisz_pt'] = 'romanized', -- past tense  
}  
}  

----------------------------< E X P O R T S >----------------------------------------------------------------  

return  
{  
this_wiki_lang_tag = this_wiki_lang_tag,  
this_wiki_lang_dir = lang_obj:getDir, -- wiki's language direction  

article_name = article_name,  
engvar_t = engvar_t,  
engvar_sel_t = engvar_sel_t,  
lang_name_table = lang_name_table_t,  
override = override,  
rtl_scripts = rtl_scripts,  
special_tags_table = special_tags_table,  
translit_title_table = translit_title_table,  
};