-- Different languages use different schemes for ordinals, and some of these schemes are shared between languages. 
"SchemeFromLang" picks an ordinal scheme based on a specified language. 
All unlisted languages default to the "period-scheme", i.e. "104." is the ordinal for the value "104".
Languages will follow the regular language fallback chain. For example, "de-formal" would fallback to scheme for "de", 
and only if that does not exist would the "period-scheme" be used.

 
p.SchemeFromLang = {
	['ast'] 	= 'ast-scheme', 	-- Asturian
	['bn'] 		= 'bn-scheme', 		-- Bengali
	['br']		= 'br-scheme',		-- Breton
	['ca'] 		= 'ca-scheme', 		-- Catalan
	['co']		= 'co-scheme',		-- Corsu
	['cs'] 		= 'period-scheme',	-- Czech
	['da']		= 'period-scheme',	-- Danish
	['de'] 		= 'period-scheme',	-- German
	['el']		= 'el-scheme',		-- Greek
	['en-gb'] 	= 'en-scheme', 		-- British English
	['en-ca'] 	= 'en-scheme', 		-- Canadian English
	['en'] 		= 'en-scheme', 		-- English
	['eo'] 		= 'eo-scheme', 		-- Esperanto
	['es'] 		= 'es-scheme',		-- Spanish
	['et']		= 'period-scheme',	-- Estonian
	['eu'] 		= 'roman-scheme',	-- Basque
	['fa'] 		= 'fa-scheme',		-- Persian
	['fi'] 		= 'period-scheme',	-- Finnish
	['fr'] 		= 'fr-scheme',		-- French
	['hr']		= 'period-scheme',	-- Croatian
	['hu'] 		= 'period-scheme',	-- Hungarian
	['hy']		= 'hy-scheme',		-- Armenian
	['ia'] 		= 'ia-scheme',		-- Interlingua
	['it']		= 'romance-scheme',	-- Italian
	['ja']		= 'ja-scheme',		-- Japanese
	['km']		= 'km-scheme',		-- Khmer
	['ko'] 		= 'ko-scheme',		-- Korean
	['la']		= 'la-scheme',		-- Latin
	['lo']		= 'lo-scheme',		-- Laothian
	['mk'] 		= 'mk-scheme',		-- Macedonian
	['ml'] 		= 'ml-scheme',		-- Malayalam
	['ms']		= 'ms-scheme',		-- Malay
	['nds']		= 'period-scheme',	-- Low German
	['nb']		= 'period-scheme',	-- Norwegian Bokmål
	['nl']		= 'nl-scheme',		-- Dutch
	['nn']		= 'period-scheme',	-- Norwegian Nynorsk
	['no']		= 'period-scheme',	-- Norwegian
	['pl'] 		= 'pl-scheme',		-- Polish
	['pt']		= 'romance-scheme',	-- Portuguese
	['ru'] 		= 'ru-scheme',		-- Russian
	['sk']		= 'period-scheme',	-- Slovak
	['sl']		= 'period-scheme',	-- Slovene
	['sv']		= 'sv-scheme',		-- Swedish
	['ta'] 		= 'ta-scheme',		-- Tamil
	['th'] 		= 'th-scheme',		-- Thai
	['uk'] 	= 'uk-scheme',		-- Ukrainian
	['vi'] 		= 'vi-scheme',		-- Vietnamese
	['zh-hans'] = 'zh-scheme',		-- Simplified Chinese
	['zh-hant'] = 'zh-scheme',		-- Traditional Chinese
 
-- Text used to internationalize the various schemes. 
Styles are supported by suffixing "/style" to key. 
Styles that are superscripted set "superscript" to true .
Scheme set was developed to match the output of the pre-Lua template, preserved as 

p.Scheme = {
	-- the null scheme, i.e. just the number (normally not used except in technical contexts expecting only numbers)
	['null-scheme'] = {

	-- the period scheme, i.e. "." used for at least: cs, de, fi, hu
	['period-scheme'] = {
		rules = 'suffix',
		suffix = '.'
	
	-- Roman 
	['roman-scheme'] = {
		period = false,
		superscript = false,
		formatlang = 'roman'

	-- Romance 
	['romance-scheme'] = {
		rules = 'gendered-suffix',
		superscript = true,
		period = false,
		suffix = 'o',
		suffix_m = 'o',
		suffix_f = 'a',
		suffix_n = 'o',
	
	-- Asturian
	['ast-scheme'] = {
		rules = 'gendered-suffix',
		superscript = true,
		period = false,
		suffix = 'u',
		suffix_m = 'u',
		suffix_f = 'a',
		suffix_n = 'o',

	-- Bengali (reference: https://www.bissoy.com/701365/)
	['bn-scheme'] = {
		rules = 'suffix',
		suffix = 'তম', 
		suffix_0 = 'ম',
		suffix_1 = 'ম',
		suffix_2 = 'য়',
		suffix_3 = 'য়',
		suffix_4 = 'র্থ়',
		suffix_5 = 'ম',
		suffix_6 = 'ষ্ঠ',
		suffix_7 = 'ম',
		suffix_8 = 'ম',
		suffix_9 = 'ম',

	-- Breton
	['br-scheme'] = {
		-- non-breaking hyphen  is used below
		rules = 'suffix',
		suffix = '‑vet', 
		formatlang = 'eo' -- pre-Lua template used "eo" number formatting for "br" ordinals (???FIXME???)

	-- Catalan
	['ca-scheme'] = {
		rules = 'gendered-suffix-n',
		superscript = false,
		period = false,
		suffix = 'è',
		suffix_f = 'a',
		suffix_1 = 'r',
		suffix_1_f = 'a',
		suffix_2 = 'n',
		suffix_2_f = 'a',
		suffix_3 = 'r',
		suffix_3_f = 'a',
		suffix_4 = 't',
		suffix_4_f = 'a'

	-- Greek
	['el-scheme'] = {
		rules = 'gendered-suffix',
		suffix = 'ος',
		suffix_m = 'ος',
		suffix_f = 'η',
		suffix_n = 'ο',

	-- the English scheme, i.e. "1st", "2nd", "3rd", "4th".
	['en-scheme'] = {
		rules = 'skip-tens',
		superscript = true,
		suffix = 'th',
		suffix_1 = 'st',
		suffix_2 = 'nd',
		suffix_3 = 'rd',

	-- the English scheme using the "d" style, i.e. "23d".
	['en-scheme/d'] = {
		rules = 'suffix',
		suffix = 'd'
	
	-- Esperanto
	['eo-scheme'] = {
		rules = 'suffix',
		-- non-breaking hyphen  is used below
		suffix = '‑a', 
	
	-- Spanish (period plus Romance)
	['es-scheme'] = {
		rules = 'gendered-suffix',
		superscript = true,
		period = true,
		suffix = 'o',
		suffix_m = 'o',
		suffix_f = 'a',
		suffix_n = 'o',
	
	-- Persian
	['fa-scheme'] = {
		rules = 'suffix',
		suffix = 'م', 
	
	-- French
	['fr-scheme'] = {
		rules = 'gendered-suffix-one',
		superscript = true,
		suffix = 'e',
		suffix_1 = 'e', -- there's NO neutral gender in French (this is only for unspecified gender)
		suffix_1_m = 'er',
		suffix_1_f = 're',
	
	-- French alternate specific style for 2nd 
	['fr-scheme/pair'] = {
		rules = 'gendered-suffix-n',
		superscript = true,
		suffix = 'e',
		suffix_1 = 'e',
		suffix_1_m = 'er',
		suffix_1_f = 're',
		suffix_2 = 'e',
		suffix_2_m = 'nd',
		suffix_2_f = 'de',
	
	-- Corsu
		['co-scheme'] = {
		rules = 'suffix',
		suffix = 'è'

	-- the French scheme using the "roman" style ("roman year" is a supported alias for "roman")
	['fr-scheme/roman'] = {
		rules = 'gendered-suffix-one',
		superscript = true,
		suffix = 'e',
		suffix_1 = 'e',
		suffix_1_m = 'er',
		suffix_1_f = 're',
		formatlang = 'roman' -- styled normally in small capitals (except milleniums using big capitals)
	
	-- French specific roman ordinal style after names of personal titles (kings/queens/popes…) and of book chapters (suffixed only for 1st)
	['fr-scheme/roman-title'] = {
		rules = 'gendered-suffix-one',
		superscript = true,
		suffix = '', -- no suffix except for 1st
		suffix_1 = 'e',
		suffix_1_m = 'er',
		suffix_1_f = 're',
		suffix_1_n = 'е',
		formatlang = 'roman' -- style using only big capitals
	
	-- Armenian
	['hy-scheme'] = {
		rules = 'suffix-one',
		-- non-breaking hyphens  are used below
		suffix = '‑րդ',
		suffix_1 = '‑ին',
	
	-- Interlingua
	['ia-scheme'] = {
		rules = 'mod10-suffix',
		superscript = true,
		suffix_0 = 'te',
		suffix_1 = 'me',
		suffix_2 = 'nde',
		suffix_3 = 'tie',
		suffix_4 = 'te',
		suffix_5 = 'te',
		suffix_6 = 'te',
		suffix_7 = 'me',
		suffix_8 = 've',
		suffix_9 = 'ne',

	-- Japanese
	-- this is for the adjective in undetermined order before noun; otherwise Japanese use: 目
	['ja-scheme'] = {
		rules = 'prefix',
		prefix = '第', 

	-- Khmer
	['km-scheme'] = {
		rules = 'prefix',
		prefix = 'ទ', 

	-- Korean
	['ko-scheme'] = {
		rules = 'suffix',
		suffix = '째', 

	-- Latin
	['la-scheme'] = {
		rules = 'suffix',
		superscript = true,
		suffix = 'o', 
		formatlang = 'roman'

	-- Laothian
	['lo-scheme'] = {
		rules = 'prefix',
		prefix = 'ທີ່', 
	
	-- Macedonian
	['mk-scheme'] = {
		rules = 'mod10-suffix',
		-- non-breaking hyphens  are used below
		suffix_0 = '‑тиот',
		suffix_1 = '‑виот',
		suffix_2 = '‑риот',
		suffix_3 = '‑иот',
		suffix_4 = '‑иот',
		suffix_5 = '‑тиот',
		suffix_6 = '‑иот',
		suffix_7 = '‑миот',
		suffix_8 = '‑миот',
		suffix_9 = '‑тиот',

	-- Malayalam
	['ml-scheme'] = {
		rules = 'suffix',
		-- non-breaking hyphen  is used below
		suffix = '‑മത്തെ', 

	-- Malay
	['ms-scheme'] = {
		rules = 'prefix',
		-- non-breaking hyphen  is used below
		prefix = 'ke‑', 
	
	-- Dutch
	['nl-scheme'] = {
		rules = 'suffix',
		suffix = 'e',
	
	-- Polish
	['pl-scheme'] = {
		rules = 'mod10-gendered-suffix-skip-tens',
		-- non-breaking hyphens  are used below
		suffix = '‑ty',
		suffix_f = '‑ta',
		suffix_n = '‑te',
		suffix_1 = '‑szy',
		suffix_1_f = '‑sza',
		suffix_1_n = '‑sze',
		suffix_2 = '‑gi',
		suffix_2_f = '‑ga',
		suffix_2_n = '‑gie',
		suffix_3 = '‑ci',
		suffix_3_f = '‑cia',
		suffix_3_n = '‑cie',
		suffix_7 = '‑my',
		suffix_7_f = '‑ma',
		suffix_7_n = '‑me',
		suffix_8 = '‑my',
		suffix_8_f = '‑ma',
		suffix_8_n = '‑me',

	-- Russian
	['ru-scheme'] = {
		rules = 'gendered-suffix',
		-- non-breaking hyphens  are used below
		suffix = '‑й',
		suffix_m = '‑й',
		suffix_f = '‑я',
		suffix_n = '‑е',
	
	-- Swedish
	['sv-scheme'] = {
		rules = 'skip-tens',
		suffix = ':e',
		suffix_1 = ':a',
		suffix_2 = ':a',
	
	-- Thai
	['th-scheme'] = {
		rules = 'prefix',
		prefix = 'ที่', 
	
	-- Modern Tamil 
	['ta-scheme'] = {
		rules = 'suffix',
		-- non-breaking hyphen  is used below
		suffix = '‑ஆம்',
		formatlang = 'en',
	
	-- Traditional Tamil 
	['ta-scheme/trad'] = {
		rules = 'suffix-one',
		suffix = 'ஆம்',
		prefix_1 = 'மு',
		suffix_1 = 'லாம்',

	-- Ukrainian: see :uk:Вікіпедія:Стиль/Нарощення порядкових числівників#Нарощення and :uk:Шаблон:-й
	-- FIXME: 0?
	['uk-scheme'] = {
		rules = 'uk-rules',
		-- non-breaking hyphens  are used below
		suffix = '‑й',
		suffix_f = '‑та',
		suffix_n = '‑те',
		suffix_1_f = '‑ша',
		suffix_1_n = '‑ше',
		suffix_2_f = '‑га',
		suffix_2_n = '‑ге',
		suffix_3_f = '‑тя',
		suffix_3_n = '‑тє',
		suffix_7_f = '‑ма',
		suffix_7_n = '‑ме',
		suffix_8_f = '‑ма',
		suffix_8_n = '‑ме',
		suffix_40_f = '‑ва',
		suffix_40_n = '‑ве',
		suffix_1000_f = '‑на',
		suffix_1000_n = '‑не',
	
	-- Vietnamese
	['vi-scheme'] = {
		rules = 'prefix',
		prefix = 'thứ ',
	
	-- Chinese
	['zh-scheme'] = {
		rules = 'prefix',
		prefix = '第',