ข้ามไปเนื้อหา

มอดูล:Lang/data

จากวิกิพีเดีย สารานุกรมเสรี
Documentation icon คู่มือการใช้งานมอดูล[สร้าง]
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; มอดูล: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 ('มอดูล:Lang/data/iana languages', 'lang'),
	lang_dep = key_to_lower ('มอดูล:Lang/data/iana languages', 'lang_dep'),
	script = key_to_lower ('มอดูล:Lang/data/iana scripts'),					-- script keys are capitalized; set to lower
	region = key_to_lower ('มอดูล:Lang/data/iana regions'),					-- region keys are uppercase; set to lower
	variant = key_to_lower ('มอดูล:Lang/data/iana variants', 'var_sup'),
	suppressed = key_to_lower ('มอดูล: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, มอดูล: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"] = "อับคาเซีย",                                                          -- to match en.wiki article name
	["ca-valencia"] = "บาเลนเซีย",
	["cu"] = "สลาฟแบบคริสตจักร",													-- 2nd IANA name;
	["de-at"] = "เยอรมันแบบออสเตรีย",											-- these code-region and code-variant tags to match en.wiki article names
	["de-ch"] = "เยอรมันมาตรฐานสวิส",
	["en-au"] = "อังกฤษแบบออสเตรเลีย",
	["en-ca"] = "อังกฤษแบบแคนาดา",
	["en-emodeng"] = "อังกฤษสมัยใหม่ตอนต้น",
	["en-gb"] = "อังกฤษแบบบริติช",
	["en-ie"] = "อังกฤษแบบไอริช",
	["en-in"] = "อังกฤษแบบอินเดีย",
	["en-nz"] = "อังกฤษแบบนิวซีแลนด์",
	["en-us"] = "อังกฤษแบบอเมริกัน",
	["en-za"] = "อังกฤษแบบแอฟริกาใต้",
	["fr-ca"] = "ฝรั่งเศสแบบเกแบ็ก",
	["fr-gallo"] = "กัลโล",
	["fy"] = "ฟรีเชียตะวันตก",													-- Western Frisian
	["mo"] = "มอลโดวา",														-- Moldavian (deprecated code); to match en.wiki article title
	["nl-be"] = "เฟลมิช",														-- match MediaWiki
	["oc-gascon"] = "กัสกอญ",
	["oc-provenc"] = "พรอว็องส์",
	["ps"] = "ปาทาน",															-- Pushto
	["pt-br"] = "โปรตุเกสแบบบราซิล",											-- match MediaWiki
	["ro-md"] = "มอลโดวา",														-- 'not deprecated' form
	["ro-cyrl-md"] = "มอลโดวา",												-- 'not deprecated' form
	["tw-asante"] = "ทวิแบบอาซันต์",
	["ug"] = "อุยกูร์",															-- 2nd IANA name; to match en.wiki article name

-- these ISO 639-1 language-name overrides imported from มอดูล:Language/data/wp_languages (since deleted)
--<begin do-not-edit except to comment out>--
		["av"] = "อวาร์",														-- Avaric
		["bo"] = "ทิเบต",											-- Tibetan
		["el"] = "กรีก",														-- Modern Greek
--		["en-SA"] = "อังกฤษแบบแอฟริกาใต้",									-- English; no; SA is not South Africa it Saudi Arabia; ZA is South Africa
		["ff"] = "ฟูลา",														-- Fulah
		["ht"] = "ครีโอลเฮติ",												-- Haitian
		["hz"] = "เฮเรโร",													-- Herero
		["ii"] = "อี๋",															-- Sichuan Yi
		["ki"] = "คิคุยุ",														-- Kikuyu
		["kl"] = "กรีนแลนด์",													-- Kalaallisut
		["ky"] = "คีร์กีซ",														-- Kirghiz
		["lg"] = "ลูกันดา",														-- Ganda
		["li"] = "ลิมเบอร์กิช",													-- Limburgan
		["mi"] = "มาวรี",														-- Maori
		["na"] = "นาอูรู",														-- Nauru
		["nb"] = "บูกโมลนอร์เวย์",														-- Norwegian Bokmål
		["nd"] = "เดเบเล่เหนือ",											-- North Ndebele
		["nn"] = "นีน็อชก์นอร์เวย์",														-- Norwegian Nynorsk
		["nr"] = "เดเบเล่ใต้",											-- South Ndebele
		["ny"] = "เจวา",													-- Nyanja
		["oj"] = "โอจิบเว",														-- Ojibwa
		["or"] = "โอเดีย",														-- Oriya
		["pa"] = "ปัญจาบ",														-- Panjabi
		["rn"] = "คิรุนดี",														-- Rundi
		["sl"] = "สโลวีเนีย",														-- Slovenian
		["ss"] = "สวาซิ",														-- Swati
		["st"] = "โซโท",														-- Southern Sotho
		["to"] = "ตองงา",														-- Tonga
--<end do-not-edit except to comment out>--


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

	["alv"] = "แอตแลนติก-คองโก",										-- to match en.wiki article title (endash)
	["arc"] = "อราเมอิกแบบจักรวรรดิ (700-300 ปีก่อน ค.ศ.)",									-- Official Aramaic (700-300 BCE), Imperial Aramaic (700-300 BCE); to match en.wiki article title uses ISO639-2 'preferred' name
	["art"] = "ประดิษฐ์",													-- to match en.wiki article; lowercase for category name
	["ast-es"] = "ถิ่นเลออน",														-- ast in IANA is Asturian; Leonese is a dialect
	["bea"] = "แดนซา",														-- Beaver; to match en.wiki article title
	["bha"] = "ภารีอาตี",														-- Bharia; to match en.wiki article title
	["bhd"] = "ภาดาร์วาฮี",														-- Bhadrawahi; to match en.wiki article title
	["bla"] = "แบล็กฟุต",														-- Siksika; to match en.wiki article title
	["blc"] = "นัคซอลค์",															-- Bella Coola; to match en.wiki article title
	["bua"] = "บูร์ยัต",															-- Buriat; this is a macro language; these four use wp preferred transliteration;
	["bxm"] = "บูร์ยัตแบบมองโกเลีย",												-- Mongolia Buriat; these three all redirect to Buryat
	["bxr"] = "บูร์ยัตแบบรัสเซีย",													-- Russia Buriat;
	["bxu"] = "บูร์ยัตแบบจีน",													-- China Buriat;
	["byr"] = "ยิปมา",															-- Baruya, Yipma
	["clm"] = "คลาลัม",														-- Clallam; to match en.wiki article title
	["egy"] = "อียิปต์โบราณ",												-- Egyptian (Ancient); distinguish from contemporary arz: Egyptian Arabic 
	["ems"] = "อลูติค",														-- Pacific Gulf Yupik; to match en.wiki article title
	["esx"] = "เอสกิโม–อลูต",											-- to match en.wiki article title (endash)
	["frr"] = "ฟรีเซียเหนือ",													-- Northern Frisian
	["frs"] = "แซกซอนต่ำแบบฟรีเซียตะวันออก",											-- Eastern Frisian
	["gsw-fr"] = "อัลเซเชียน",													-- match MediaWiki
	["haa"] = "ฮาน",															-- Han; to match en.wiki article title
	["hei"] = "เฮลซุก–โอเวกยาลา",												-- Heiltsuk; to match en.wiki article title
	["hmx"] = "ม้ง-เมี่ยน",											-- to match en.wiki article title (endash)
	["ilo"] = "อีโลกาโน",														-- Iloko; to match en.wiki article title
	["jam"] = "ครีโอลจาเมกา",												-- Jamaican Creole English
	["lij-mc"] = "โมนาโก",													-- Ligurian as spoken in Monaco; this one for proper tool tip; also in <article_name> table
	["Dholuo"] = "โธลู",															-- IANA (primary) /ISO 639-3: Luo (Kenya and Tanzania); IANA (secondary): Dholuo
	["mhr"] = "เมโดว์มารี",													-- Eastern Mari
	["mid"] = "มันดาอิกสมัยใหม่",													-- Mandaic
	['mis'] = "ไร้รหัส",														-- Uncoded languages; capitalization; special scope, not collective scope;
	["mkh"] = "เขมร-มอญ",											-- to match en.wiki article title (endash)
	["mla"] = "ตามัมโบ",														-- Malo
	['mte'] = "โมโน-อะลู",														-- Mono (Solomon Islands)
	['mul'] = "ร่วม",														-- Multiple languages; capitalization; special scope, not collective scope;
	["nan-tw"] = "ฮกเกี้ยนแบบไต้หวัน",											-- make room for IANA / 639-3 nan Min Nan Chinese; match en.wiki article title
	["new"] = "เนวาร์",															-- Newari, Nepal Bhasa; to match en,wiki article title
	["ngf"] = "ทรานส์นิวกินี",										-- to match en.wiki article title (endash)
	["nic"] = "ไนเจอร์-คองโก",											-- Niger-Kordofanian languages; to match en,wiki article title
	["nrf"] = "นอร์มัน",															-- not quite a collective - IANA name: Jèrriais + Guernésiais; categorizes to Norman-language text
	["nrf-gg"] = "เกิร์นซีย์",													-- match MediaWiki
	["nrf-je"] = "เจอร์เรียส",													-- match MediaWiki
	["nzi"] = "เซมา",															-- Nzima; to match en.wiki article title
	["oma"] = "โอมาฮา–พอนกา",													-- to match en.wiki article title (endash)
	["orv"] = "สลาฟตะวันออกเก่า",												-- Old Russian
	["pfl"] = "เยอรมันแบบพาลาไทน์",												-- Pfaelzisch; to match en.wiki article
	["pie"] = "ปิโร ปวยโบล",													-- Piro; to match en.wiki article
	["pms"] = "ปีเยมอนเต",													-- Piemontese; to match en.wiki article title
	["pnb"] = "ปัญจาบ (ตะวันตก)",												-- Western Panjabi; dab added to override import from ~/wp languages and distinguish pnb from pa in reverse look up tag_from_name()
	['qwm'] = "คูมัน",															-- Kuman (Russia); to match en.wiki article name
	["rop"] = "คริโอลออสเตรเลีย",												-- Kriol; en.wiki article is a dab; point to correct en.wiki article
	["sco-ulster"] = "อัลสเตอร์สกอต",
	["sdo"] = "บุการ-ซาดอง",													-- Bukar-Sadung Bidayuh; to match en.wiki article title
	["smp"] = "ฮีบรูแบบชาวสะมาเรีย",												-- to match en.wiki article title
	["stq"] = "ฟรีเซียแบบแซเทอร์แลนด์",												-- Saterfriesisch
	["und"] = "ไม่แน่ชัด",													-- capitalization to match existing category
	["wrg"] = "วาร์รองโก",														-- Warungu
	["xal-ru"] = "คัลมึค",														-- to match en.wiki article title
	["xgf"] = "ทงวา",															-- ISO 639-3 is Gabrielino-Fernandeño
	["yuf"] = "ฮาวาซูไป–ฮัวลาไป",												-- Havasupai-Walapai-Yavapai; to match en.wiki article title
	["zxx"] = "ไม่มีเนื้อหา",											-- capitalization

-- these ISO 639-2, -3 language-name overrides imported from มอดูล:Language/data/wp_languages (since deleted)
--<begin do-not-edit except to comment out>--
		["ace"] = "อาเจะฮ์",													-- Achinese
		["aec"] = "อาหรับไซดี",												-- Saidi Arabic
		["akl"] = "อัคลัน",														-- Aklanon
		["alt"] = "อัลไต",														-- Southern Altai
		["apm"] = "เมสคาเลโร-ชิริคาฮัว",										-- Mescalero-Chiricahua Apache
		["bal"] = "บาโลจ",													-- Baluchi
--		["bcl"] = "บิโคลาโนกลาง",											-- Central Bikol
		["bin"] = "เอโดะ",														-- Bini
		["bpy"] = "มณีปุระแบบพิษณุปุระ",										-- Bishnupriya
		["chg"] = "ชากาทาย",													-- Chagatai
		["ckb"] = "เคิร์ดแบบโซรานี",												-- Central Kurdish
		["cnu"] = "เชนหวา",														-- Chenoua
		["coc"] = "โคโค่ปาห์",													-- Cocopa
		["diq"] = "ซาซากิ",														-- Dimli
		["fit"] = "มีเอนเคียลี",													-- Tornedalen Finnish
		["fkv"] = "เคเวน",														-- Kven Finnish
		["frk"] = "แฟรงค์เก่า",												-- Frankish
		["gez"] = "กืออึซ",														-- Geez
		["gju"] = "กุจารี",														-- Gujari
		["gsw"] = "เยอรมันแบบอัลเลมันนิก",											-- Swiss German
		["gul"] = "กุลลาห์",														-- Sea Island Creole English
		["hak"] = "แคะ",														-- Hakka Chinese
		["hbo"] = "ฮีบรูแบบพระคัมภีร์",											-- Ancient Hebrew
		["hnd"] = "ฮินด์โก",														-- Southern Hindko
--		["ikt"] = "อินูเวียลุก",													-- Inuinnaqtun
		["kaa"] = "การากัลปัก",													-- Kara-Kalpak
		["khb"] = "ไทลื้อ",														-- Lü
		["kmr"] = "เคิร์ดแบบคูร์มันจี",											-- Northern Kurdish
		["kpo"] = "กโปโซ",														-- Ikposo
		["krj"] = "กินารายะ",													-- Kinaray-A
--		["ktz"] = "จูฮวน",													-- Juǀʼhoan
		["lez"] = "เลซเจียน",													-- Lezghian
		["liv"] = "ลิโวเนีย",													-- Liv
		["lng"] = "ลอมบาร์ดิก",													-- Langobardic
		["mia"] = "ไมอามี-อิลลินอยส์",												-- Miami
		["miq"] = "มิสกีโต",													-- Mískito
		["mix"] = "มิกซ์เทค",														-- Mixtepec Mixtec
		["mni"] = "มณีปุระ",														-- Manipuri
		["mrj"] = "ฮิลล์ มารี",													-- Western Mari
		["mww"] = "ม้งขาว",												-- Hmong Daw
		["nds-nl"] = "แซกซอนต่ำแบบดัตช์",											-- Low German
--		["new"] = "บาซาแบบเนปาล",												-- Newari
		["nso"] = "โซโทเหนือ",												-- Pedi
--		["nwc"] = "บาซาแบบเนปาลเก่า",										-- Classical Newari, Classical Nepal Bhasa, Old Newari
		["ood"] = "ออ-ออดัม",													-- Tohono O'odham
		["otk"] = "เตอร์กิกเก่า",													-- Old Turkish
		["pal"] = "เปอร์เซียกลาง",												-- Pahlavi
		["pam"] = "กะปัมปาง",												-- Pampanga
		["phr"] = "โปตวารี",													-- Pahari-Potwari
		["pka"] = "ปรากฤตแบบเชน",												-- Ardhamāgadhī Prākrit
--		["pnb"] = "ปัญจาบ",													-- Western Panjabi
		["psu"] = "เชาราเสนี",													-- Sauraseni Prākrit
		["rap"] = "ราปานูอี",													-- Rapanui
		["rar"] = "มาวรีแบบหมู่เกาะคุก",											-- Rarotongan
		["rmu"] = "สแกนดิเนเวีย",												-- Tavringer Romani
		["rom"] = "โรมานี",														-- Romany
		["rup"] = "อาโรมาเนียน",													-- Macedo-Romanian
		["ryu"] = "โอกินาวะ",													-- Central Okinawan
		["sdc"] = "ซาสซาเรซี",													-- Sassarese Sardinian
		["sdn"] = "กัลลูเรซี",													-- Gallurese Sardinian
		["shp"] = "ชิปิโบ",													-- Shipibo-Conibo
		["src"] = "โลกูโดเรซี",													-- Logudorese Sardinian
		["sro"] = "แคมปิดานีส",												-- Campidanese Sardinian
		["tkl"] = "โตเกเลา",													-- Tokelau
		["tvl"] = "ตูวาลู",													-- Tuvalu
		["tyv"] = "ตูวา",														-- Tuvinian
		["vls"] = "เฟลมิชตะวันตก",												-- Vlaams
		["wep"] = "เว็สท์ฟาเลิน",												-- Westphalien
		["xal"] = "โออิราต",														-- Kalmyk
		["xcl"] = "อาร์มีเนียเก่า",												-- Classical Armenian
		["yua"] = "มายาแบบยูกาตัน",												-- 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"] = "แอกแคดแบบบาบิลอนตอนปลาย",
	["akk-x-midassyr"] = "แอกแคดแบบอัสซีเรียตอนกลาง",
	["akk-x-midbabyl"] = "แอกแคดแบบบาบิลอนตอนกลาง",
	["akk-x-neoassyr"] = "แอกแคดแบบนีโออัสซีเรีย",
	["akk-x-neobabyl"] = "แอกแคดแบบนีโอบาบิลอน",
	["akk-x-old"] = "แอกแคดเก่า",
	["akk-x-oldassyr"] = "แอกแคดแบบอัสซีเรียเก่า",
	["akk-x-oldbabyl"] = "แอกแคดแบบบาบิลอนเก่า",
	["alg-x-proto"] = "โปรโตอัลกองเควน",										-- alg in IANA is Algonquian languages
	["ca-x-old"] = "คาตาลันเก่า",
	["cel-x-combrit"] = "บริตโทนิกสามัญ",										-- cel in IANA is Celtic languages
	["cel-x-proto"] = "โปรโตเซลติก",
	["egy-x-demotic"] = "อียิปต์แบบเดโมติก",
	["egy-x-late"] = "อียิปต์ตอนปลาย",
	["egy-x-middle"] = "อียิปต์ตอนกลาง",
	["egy-x-old"] = "อียิปต์เก่า",
	["gem-x-proto"] = "โปรโตเจอร์แมนิก",											-- gem in IANA is Germanic languages
	["gmw-x-ecg"] = "เยอรมันตะวันออกกลาง",
	["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
	["inc-x-mitanni"] = "มิตันนี-อารยัน",										-- inc in IANA is Indic languages
	["inc-x-proto"] = "อินโดอารยันดั้งเดิม",
	["ine-x-anatolia"] = "อานาโตเลีย",
	["ine-x-proto"] = "โปรโตอินโดยูโรเปียน",
	["ira-x-proto"] = "โปรโต-อิหร่าน",											-- ira in IANA is Iranian languages
	["itc-x-proto"] = "โปรโตอิตาลิก",											-- itc in IANA is Italic languages
	["ksh-x-colog"] = "โคโลญญี",												-- en.wiki article is Colognian; ksh (Kölsch) redirects there
	["la-x-medieval"] = "ละตินยุคกลาง",
	["la-x-new"] = "ละตินใหม่",
	["lmo-x-berg"] = "เบอร์กามาสค์",												-- lmo in IANA is Lombard; Bergamasque is a dialect
	["lmo-x-cremish"] = "ครีมมิช",												-- lmo in IANA is Lombard; Cremish is a dialect
	["lmo-x-milanese"] = "มิลานีส",											-- lmo in IANA is Lombard; Milanese is a dialect
	["mis-x-ripuar"] = "ริปัวเรียน",												-- replaces improper use of ksh in wp_languages
	["prg-x-old"] = "ปรัสเซียนเก่า",
	["sem-x-ammonite"] = "แอมโมไนท์",
	["sem-x-aramaic"] = "อราเมอิก",
	["sem-x-canaan"] = "คานาอัน",
	["sem-x-dumaitic"] = "ดูไมติค",
	["sem-x-egurage"] = "กูราจตะวันออก",
	["sem-x-hatran"] = "ฮาตราน อราเมอิก",
	["sem-x-oldsoara"] = "อาหรับใต้เก่า",
	["sem-x-palmyren"] = "ปาลไมรีนอราเมอิก",
	["sem-x-proto"] = "โปรโตเซมิติก",
	["sem-x-taymanit"] = "ไทมานิต",
	["sla-x-proto"] = "โปรโตสลาฟ",											-- sla in IANA is Slavic languages
	["yuf-x-hav"] = "ฮาวาสุไพ",												-- IANA name for these three is Havasupai-Walapai-Yavapai
	["yuf-x-wal"] = "วาลาไพ",
	["yuf-x-yav"] = "ยาวาไพ",
	["xsc-x-pontic"] = "ปอนติกไซเธียน",										-- xsc in IANA is Scythian
	["xsc-x-saka"] = "ซาก้า",
	["xsc-x-sarmat"] = "ซาร์มาเทียน",
	}


--[[--------------------------< 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 (Papua New Guinea); to avoid Kuman dab page
	["lij-mc"] = "สำเนียงโมนาโก",											-- Ligurian as spoken in Monaco
	['mbo'] = "ภาษามาเนนกูบา",										-- Mbo (Cameroon)
	['mnh'] = "ภาษาเดียว (คองโก)",											-- Mono (Democratic Republic of Congo); see Template_talk:Lang#Mono_languages
	['mnr'] = "ภาษาเดียว (แคลิฟอร์เนีย)",										-- Mono (USA)
	['mru'] = "ภาษาเดียว (แคเมอรูน)",										-- Mono (Cameroon)
	["snq"] = "ภาษาซางกู (กาบอง)",											-- Sangu (Gabon)
	["toi"] = "ภาษาตองงา (แซมเบียและซิมบับเว)",                           -- Tonga (Zambia and Zimbabwe); to avoid Tonga language dab page
	["vwa"] = "ภาษาอาวา (จีน)",											-- Awa (China); to avoid Awa dab page
	["xlg"] = "ภาษาลิกูเรีย (โบราณ)",									-- see Template_talk:Lang#Ligurian_dab
	["zmw"] = "ภาษามโบ (คองโก)",											-- Mbo (Democratic Republic of Congo)
	}


--[=[-------------------------< 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'] = 'การทับศัพท์แบบสถาบันภาษาฮีบรู',
		},

	['ala'] = {
		['default'] = 'การทับศัพท์แบบสมาคมห้องสมุดอเมริกันและหอสมุดรัฐสภา',
		},

	['ala-lc'] = {
		['default'] = 'การทับศัพท์แบบสมาคมห้องสมุดอเมริกันและหอสมุดรัฐสภา',
		},

	['batr'] = {
		['default'] = 'กฎการทับศัพท์ภาษาอาหรับแบบบิกดาช',
		},

	['bgn/pcgn'] = {
		['default'] = 'การทับศัพท์แบบคณะกรรมการด้านชื่อทางภูมิศาสตร์และคณะกรรมการถาวรด้านชื่อทางภูมิศาสตร์',
		},

	['din'] = {
		['ar'] = 'DIN 31635 อาหรับ',
		['fa'] = 'DIN 31635 อาหรับ',
		['ku'] = 'DIN 31635 อาหรับ',
		['ps'] = 'DIN 31635 อาหรับ',
		['tg'] = 'DIN 31635 อาหรับ',
		['ug'] = 'DIN 31635 อาหรับ',
		['ur'] = 'DIN 31635 อาหรับ',
		['arab'] = 'DIN 31635 อาหรับ',

		['default'] = 'การทับศัพท์แบบสถาบันมาตรฐานเยอรมัน',
		},

	['eae'] = {
		['default'] = 'การทับศัพท์แบบสารานุกรมเอธิโอเปีย',
		},

	['hepburn'] = {
		['default'] = 'การทับศัพท์แบบเฮปเบิร์น',
		},

	['hunterian'] = {
		['default'] = 'การทับศัพท์แบบฮันเตอร์',
		},

	['iast'] = {
		['default'] = 'การทับศัพท์อักษรสากลของภาษาสันสกฤต',
		},

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

		['ar'] = 'ISO 233 อาหรับ',
		['ku'] = 'ISO 233 อาหรับ',
		['ps'] = 'ISO 233 อาหรับ',
		['ug'] = 'ISO 233 อาหรับ',
		['ur'] = 'ISO 233 อาหรับ',
		['arab'] = 'ISO 233 อาหรับ',

		['he'] = 'ISO 259 ฮีบรู',
		['yi'] = 'ISO 259 ฮีบรู',
		['hebr'] = 'ISO 259 ฮีบรู',

		['el'] = 'ISO 843 กรีก',
		['grc'] = 'ISO 843 กรีก',

		['ja'] = 'ISO 3602 ญี่ปุ่น',
		['hira'] = 'ISO 3602 ญี่ปุ่น',
		['hrkt'] = 'ISO 3602 ญี่ปุ่น',
		['jpan'] = 'ISO 3602 ญี่ปุ่น',
		['kana'] = 'ISO 3602 ญี่ปุ่น',

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

		['ka'] = 'ISO 9984 จอร์เจีย',
		['kat'] = 'ISO 9984 จอร์เจีย',

		['arm'] = 'ISO 9985 อาร์มีเนีย',
		['hy'] = 'ISO 9985 อาร์มีเนีย',

		['th'] = 'ISO 11940 ไทย',
		['tha'] = 'ISO 11940 ไทย',

		['ko'] = 'ISO 11941 เกาหลี',
		['kor'] = 'ISO 11941 เกาหลี',

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

		['default'] = 'การทับศัพท์แบบองค์การระหว่างประเทศว่าด้วยการมาตรฐาน',
		},

	['jyutping'] = {
		['default'] = 'การทับศัพท์แบบยฺหวิดเพ็ง',
		},

	['mlcts'] = {
		['default'] = 'ระบบถอดความของคณะกรรมการภาษาเมียนมาร์',
		},

	['mr'] = {
		['default'] = 'การทับศัพท์ของแมคคูน–ไรส์เชาเออร์',
		},

	['nihon-shiki'] = {
		['default'] = 'การทับศัพท์แบบนิฮงชิกิ',
		},

	['no_std'] = {																-- when no transliteration standard is supplied
		['akk'] = 'การทับศัพท์ภาษาเซมิติก',
		['sem'] = 'การทับศัพท์ภาษาเซมิติก',
		['phnx'] = 'การทับศัพท์ภาษาเซมิติก',
		['xsux'] = 'การทับศัพท์แบบคูนิฟอร์ม',
		},

	['pinyin'] = {
		['default'] = 'การทับศัพท์แบบพินอิน',
		},

	['rr'] = {
		['default'] = 'การทับศัพท์แบบการแก้ไขอักษรโรมันของภาษาเกาหลี',
		},

	['rtgs'] = {
		['default'] = 'หลักเกณฑ์การถอดอักษรไทยเป็นอักษรโรมันแบบถ่ายเสียงของราชบัณฑิตยสถาน',
		},
	
	['satts'] = {
		['default'] = 'ระบบการทับศัพท์ภาษาอาหรับมาตรฐาน',
		},

	['scientific'] = {
		['default'] = 'การทับศัพท์ทางวิทยาศาสตร์',
		},

	['ukrainian'] = {
		['default'] = 'การแปลงเป็นอักษรโรมันของภาษายูเครน',
		},

	['ungegn'] = {
		['default'] = 'การทับศัพท์ของกลุ่มผู้เชี่ยวชาญด้านชื่อทางภูมิศาสตร์ของสหประชาชาติ',
		},

	['wadegile'] = {
		['default'] = 'การทับศัพท์แบบเวด-ไจลส์',
		},

	['wehr'] = {
		['default'] = 'คำแปลอักษรแบบฮันส์ แวร์',
		},
	['yaleko'] = {
		['default'] = 'การแปลงอักษรเยลแป็นอักษรโรมันของภาษาเกาหลี',
	}
};


--[[--------------------------< E N G _ V A R >----------------------------------------------------------------

Used at en.wiki so that spelling of 'romanized' (US, default) can be changed to 'romanised' to match the envar
specified by a {{Use xxx English}}.

This is accomplished by setting |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'] = 'อักษรโรมัน',										-- lower case
		['romanisz_uc'] = 'อักษรโรมัน',										-- upper case
		['romanisz_pt'] = 'อักษรโรมัน',											-- past tense
		},
	['us_t'] = {																-- default engvar
		['romanisz_lc'] = 'อักษรโรมัน',										-- lower case
		['romanisz_uc'] = 'อักษรโรมัน',										-- upper case
		['romanisz_pt'] = 'อักษรโรมัน',											-- 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,
	};