มอดูล:I18n/complex date

--
__  __           _       _        ___ _  ___           __                        _                 _       _       

_ ___ 


__/ _ \


__/>   10 then -- precision > month
				return 'du $date1 au $date2'
			else				-- "DE septebmbre" / "D'octobre"
				return require("Module:Linguistic").of(date1, 'fr') .. " à $date2"
			end
		end,
		gl='de $date1 a $date2', --Template:From until used 'desde $date1 ata $date2'
		he='מ- $date1 עד $date2',
		hr='od $date1 do $date2',
		hsb={'wot $date1 do $date2', case={'gen','gen'}},
		hu='$date1 – $date2',
		it='dal $date1 al $date2',
		ja='$date1から$date2まで',
		mk='од $date1 до $date2',
		ml='$date1 മുതൽ $date2 വരെ',
		nb='fra $date1 til $date2',
		nds='$date1 bet $date2',
		nn='fra $date1 til $date2',
		nl='$date1 tot $date2',
		no='fra $date1 til $date2',
		pl={'od $date1 do $date2', case={'gen','gen'}},
		ro='din $date1 până în $date2',
		pt='de $date1 a $date2',
		qu="$date1 p'unchawmanta $date2 p\'unchawkama",
		ru={'с $date1 по $date2', case={'gen','gen'}},
		sk={'od $date1 do $date2', case={'gen','gen'}},
		sl={'od $date1 do $date2', case={'gen','gen'}},
		sv='från $date1 till $date2',
		uk={'з $date1 до $date2', case={'gen','gen'}},
		ur='از $date1 تا $date2',
		vi='từ $date1 đến $date2',
		'zh-hans'='从$date1到$date2',
		'zh-hant'='從$date1到$date2',
		default='$date1 - $date2',
	},
	'between'={
		nDates = 2,
		ar='بين $date1 و $date2',
		'be-tarask'={'між $date1 і $date2', case={'ins','ins'}},
		bn='$date1 এবং $date2-এর মাঝামাঝি',
		ca='entre $date1 i $date2',
		cs={'mezi $date1 a $date2', case={'ins','ins'}},
		da='mellem $date1 og $date2',
		de='zwischen $date1 und $date2',
		el='μεταξύ $date1 και $date2',
		en='between $date1 and $date2',
		'en-gb'='between $date1 and $date2',
		'en-ca'='between $date1 and $date2',
		eo='inter $date1 kaj $date2',
		es='entre $date1 y $date2',
		et='$date1 ja $date2 vahel',
		fa='بین $date1 و $date2',
		fi={function(date1, date2, state) return decYear(state,'fi','xxx') .. '$date1 ja $date2 välisenä aikana'	end, case={'gen','gen'}},
		fr='entre $date1 et $date2',
		gl='entre $date1 e $date2',
		he='בין $date1 ו- $date2',
		hr='između $date1 i $date2',
		hsb={'mjez $date1 a $date2', case={'ins','ins'}},
		hu='$date1 és $date2 között',
		hi='$date1 और $date2 के बीच',
		it='tra il $date1 e il $date2',
		ja='$date1と$date2の間',
		mk='помеѓу $date1 и $date2',
		ml='$date1, $date2 എന്നിവയ്ക്കിടയ്ക്ക്',
		nb='mellom $date1 og $date2',
		nds='twischen $date1 un $date2',
		nn='mellom $date1 og $date2',
		nl='tussen $date1 en $date2',
		no='mellom $date1 og $date2',
		pl={'między $date1 a $date2', case={'ins','ins'}},
		ro='între $date1 și $date2',
		pt='entre $date1 e $date2',
		qu="$date1 p'unchawpa $date2 p'unchawpapas chawpin",
		ru={'между $date1 и $date2', case={'ins','ins'}},
		sk={'medzi $date1 a $date2', case={'ins','ins'}},
		sl={function(date1, date2, state) return 'med ' .. decYear(state,'sl','insP') .. '$date1 in $date2'	end, case={'ins','ins'}},
		sv='mellan $date1 och $date2',
		uk={'між $date1 та $date2', case={'ins','ins'}},
		ur='بین $date1 و $date2',
		vec='tra el $date1 e el $date2',
		vi='giữa $date1 và $date2',
		'zh-hans'='在$date1到$date2之间',
		'zh-hant'='在$date1到$date2之間',
		default='$date1 - $date2',
	},
	'or' = {
		nDates = 2,
		ar='$date1 أو $date2',
		'be-tarask'='$date1 ці $date2',
		bn='$date1 অথবা $date2',
		ca='$date1 o $date2',
		cs='$date1 nebo $date2',
		da='$date1 eller $date2',
		de='$date1 oder $date2',
		el='$date1 ή $date2',
		en='$date1 or $date2',
		'en-gb'='$date1 or $date2',
		'en-ca'='$date1 or $date2',
		eo='$date1 aŭ $date2',
		es='$date1 o $date2',
		et='$date1 või $date2',
		fa='$date1 یا $date2',
		fi='$date1 tai $date2',
		fr='$date1 ou $date2',
		gl='$date1 ou $date2',
		he='$date1 או $date2',
		hr='$date1 ili $date2',
		hsb='$date1 abo $date2',
		hu='$date1 vagy $date2',
		it='$date1 o $date2',
		ja='$date1または$date2',
		mk='$date1 или $date2',
		ml='$date1 അഥവാ $date2',
		nb='$date1 eller $date2',
		nn='$date1 eller $date2',
		nds='$date1 oder $date2',
		nl='$date1 of $date2',
		no='$date1 eller $date2',
		pl='$date1 lub $date2',
		pt='$date1 ou $date2',
		qu='$date1 icha $date2',
		ro='$date1 sau $date2',
		ru='$date1 или $date2',
		sk='$date1 alebo $date2',
		sl='$date1 ali $date2',
		sv='$date1 eller $date2',
		uk='$date1 або $date2',
		ur='$date1 یا $date2',
		th='$date1 หรือ $date2',
		vi='$date1 hoặc $date2',
		'zh-hans'='$date1或$date2',
		'zh-hant'='$date1或$date2',
		default=function(date1, date2, state) return require("Module:Linguistic").conj({date1, date2}, state.lang, 'or') end,
	}, 
	'and' = {
		nDates = 2,
		ar='$date1 و $date2',
		'be-tarask'='$date1 і $date2',
		bn='$date1 এবং $date2',
		ca='$date1 i $date2',
		cs='$date1 a $date2',
		da='$date1 og $date2',
		de='$date1 und $date2',
		el='$date1 και $date2',
		en='$date1 and $date2',
		'en-gb'='$date1 and $date2',
		'en-ca'='$date1 and $date2',
		eo='$date1 kaj $date2',
		es='$date1 y $date2',
		et='$date1 ja $date2',
		fa='$date1 و $date2',
		fi='$date1 ja $date2',
		fr='$date1 et $date2',
		gl='$date1 e $date2',
		he='$date1 ו- $date2',
		hu='$date1 és $date2',
		hsb='$date1 a $date2',
		it='$date1 e $date2',
		ja='$date1および$date2',
		mk='$date1 и $date2',
		ml='$date1 ഒപ്പം $date2',
		nb='$date1 og $date2',
		nn='$date1 og $date2',
		nds='$date1 un $date2',
		nl='$date1 en $date2',
		no='$date1 og $date2',
		pl='$date1 i $date2',
		pt='$date1 e $date2',
		qu='$date1wan $date2pas',
		ro='$date1 și $date2',
		ru='$date1 и $date2',
		sk='$date1 a $date2',
		sl='$date1 in $date2',
		sv='$date1 och $date2',
		uk='$date1 та $date2',
		ur='$date1 و $date2',
		vi='$date1 và $date2',
		'zh-hans'='$date1和$date2',
		'zh-hant'='$date1和$date2',
		default=function(date1, date2, state) return require("Module:Linguistic").conj({date1, date2}, state.lang, 'and') end,
	},
	-- ======================================**
	-- === Prepositions =====================**
	-- ======================================**
	'by' = {
		nDates = 1,
		ar='حوالي $date1',
		'be-tarask'={'да $date1', case={'gen',}},
		bn='$date1 কর্তৃক',
		ca='vers $date1',
		cs={'kolem $date1', case={'gen',}},
		da='mod $date1',
		de='spätestens $date1',
		el='έως $date1',
		en='by $date1',
		'en-gb'='by $date1',
		'en-ca'='by $date1',
		eo='ne post $date1',
		es='para $date1',
		et='hiljemalt $date1',
		fa='توسط $date1',
		fi={function(date1, state) return decYear(state,'fi','ill') .. '$date1 mennessä' end, case={'ill',}},
		fr='$date1 (au plus tard)',
		gl='cara a $date1',
		he='עד $date1',
		hr='do $date1',
		hsb={'do $date1', case={'gen',}},
		it='entro il $date1',
		ja='$date1まで',
		mk='кон $date1',
		ml='$date1-ൽ',
		nb='innen $date1',
		nn='innan $date1',
		nds='$date1 oder vördem al',
		nl='tegen $date1',
		no='innen $date1',
		pl={'przed $date1', case={'ins',}},
		pt='por $date1',
		qu="$date1 p'unchawkama",
		ro='de $date1',
		ru={'к $date1', case={'dat',}},
		sk={'okolo $date1', case={'gen',}},
		sl={function(date1, state) return 'najpozneje ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',}},
		sv='senast $date1',
		uk={'до $date1', case={'dat',}},
		ur='توسط $date1',
		vi='vào $date1', -- need to insert "đã" somewhere later in the sentence -->
		'zh-hans'='$date1前后',
		'zh-hant'='$date1前后',
		default='by $date1',
	},
	'before' = {
		nDates = 1,
		ar='قبل $date1',
		'be-tarask'={'перад $date1', case={'ins',}},
		bn='$date1-এর আগে',
		bg='Преди $date1',
		ca='abans $date1',
		cs={'před $date1', case={'ins',}},
		da='før $date1',
		de='vor $date1',
		el='πριν από $date1',
		en='before $date1',
		'en-gb'='before $date1',
		'en-ca'='before $date1',
		eo='antaŭ $date1',
		es='antes de $date1',
		et='enne $date1',
		fa='پیش از $date1',
		fi={function(date1, state) return 'ennen ' .. decYear(state,'fi','ptv') .. '$date1' end, case={'ptv',}},
		fr='avant $date1',
		gl='antes do $date1',
		he='לפני $date1',
		hr='prije $date1',
		hsb={'do $date1', case={'gen',}},
		hu='$date1 előtt',
		it='prima del $date1',
		ja='$date1より前',
		mk='пред $date1',
		ml='$date1-നു മുമ്പ്',
		nb='før $date1',
		nn='før $date1',
		nds='vör $date1',
		nl='voor $date1',
		no='før $date1',
		pl={'przed $date1', case={'ins',}},
		pt='antes de $date1',
		qu="$date1 p'unchaw ñawpan",
		ro='înainte de $date1',
		ru={'ранее $date1', case={'gen',}},
		sk={'pred $date1', case={'ins',}},
		sl={function(date1, state) return 'pred ' .. decYear(state,'sl','ins') .. ' $date1' end, case={'ins',}},
		sv='före $date1',
		uk={'до $date1', case={'gen',}},
		ur='قبل $date1',
		vi='trước $date1',
		'zh-hans'='在$date1之前',
		'zh-hant'='在$date1之前',
		default='before $date1',
	},
	'from' = {
		nDates = 1,
		ar='من $date1',
		'be-tarask'={'з $date1', case={'gen',}},
		bn='$date1 থেকে',
		cs={'od $date1', case={'gen',}},
		de='Seit $date1',
		el='από $date1',
		en='from $date1',
		'en-gb'='from $date1',
		'en-ca'='from $date1',
		eo='ekde $date1',
		es='desde $date1',
		et='alates $date1',
		fa='از $date1',
		fi={function(date1, state) return decYear(state,'fi','ela') .. '$date1 alkaen' end, case={'ela',}},
		fr= function(date1, state) return 'à partir '.. frOfstate.precision ..' $date1' end,
		gl='desde o $date1',
		he='מ- $date1',
		hr='od $date1',
		hsb={'wot $date1', case={'gen',}},
		it='dal $date1',
		ja='$date1から',
		nds='vonaf $date1',
		mk='од $date1',
		nb='fra $date1',
		nn='frå $date1',
		ml='$date1 മുതൽ',
		nl='vanaf $date1',
		no='fra $date1',
		pl={'od $date1', case={'gen',}},
		qu="$date1 p'unchawmanta",
		ro='din $date1',
		ru={'С $date1', case={'gen',}},
		sk={'od $date1', case={'gen',}},
		sl={function(date1, state) return 'od ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',}},
		sv='från $date1',
		uk={'з $date1', case={'gen',}},
		ur='از $date1',
		vi='từ $date1',
		'zh-hans'='自$date1',
		'zh-hant'='自$date1',
		default='from $date1',
	},
	'until' = {
		nDates = 1,
		'be-tarask'={'усутыч да $date1', case={'gen',}},
		bn='$date1 পর্যন্ত',
		cs={'do $date1', case={'gen', }},
		de='bis $date1',
		en='until $date1',
		'en-gb'='until $date1',
		'en-ca'='until $date1',
		eo='ĝis $date1',
		es='hasta $date1',
		fr=function(date1, state)
			if state.precision > 10 then -- precision > month
				return "jusqu'au $date1"
			else 
				return "jusqu'à $date1" 
			end
		end,
		hr='do $date1',
		hsb={'do $date1', case={'gen',}},
		it='al $date1',
		nb= 'til $date1',
		nl= 'tot $date1',
		nn= 'til $date1',
		pl={'do $date1', case={'gen',}},
		ru={'вплоть до $date1', case={'gen',}},
		sk={'do $date1', case={'gen', }},
		uk={'аж до $date1', case={'gen',}},
		ur='تک $date1',
		'zh-hans'='直到$date1',
		'zh-hant'='直到$date1',
		default='until $date1',
	},
	
	'after' = {
		nDates = 1,
		ar='بعد $date1',
		'be-tarask'={'пасьля $date1', case={'gen',}},
		bn='$date1-এর পরে',
		ca='desprès $date1',
		cs={'po $date1', case={'loc',}},
		de='nach $date1',
		da='efter $date1',
		el='μετά από $date1',
		en='after $date1',
		'en-gb'='after $date1',
		'en-ca'='after $date1',
		eo='post $date1',
		es='después de $date1',
		et='pärast $date1',
		fa='پس از $date1',
		fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 jälkeen' end, case={'gen',}},
		fr='après $date1',
		gl='despois do $date1',
		he='לאחר $date1',
		hr='nakon $date1',
		hu='$date1 után',
		hsb={'po $date1', case={'loc',}},
		it='dopo il $date1',
		ja='$date1より後',
		mk='по $date1',
		ml='$date1-നു ശേഷം',
		nb='etter $date1',
		nn='etter $date1',
		nds='na $date1',
		nl='na $date1',
		no='etter $date1',
		pl={'po $date1', case={'loc',}},
		pt='após $date1',
		qu="$date1 p'unchaw qhipan",
		ro='după $date1',
		ru={'после $date1', case={'gen',}},
		sk={'po $date1', case={'loc',}},
		sl={function(date1, state) return 'po ' .. decYear(state,'sl','loc') .. ' $date1' end, case={'loc',}},
		sv='efter $date1',
		uk={'після $date1', case={'gen',}},
		ur='بعد $date1',
		vi='sau $date1',
		'zh-hans'='在$date1之后',
		'zh-hant'='在$date1之後',
		default='after $date1',
	},
	-- ======================================**
	-- === Adjectives =======================**
	-- ======================================**
	'early' = {
		nDates = 1,
		ar='بداية $date1',
		'be-tarask'={'пачатак $date1', case={'gen',}},
		bn='$date1-এর শুরুতে',
		ca='al principi de $date1',
		cs={'začátek $date1', case={'gen',}},
		da='tidlig $date1',
		de='Anfang $date1',
		el='αρχές του $date1',
		en='early $date1',
		'en-gb'='early $date1',
		'en-ca'='early $date1',
		eo='komence de $date1',
		es='a principios de $date1',
		et='$date1 algus',
		fa='اوایل $date1',
		fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 alku' end, case={'gen',}},
		fr='début $date1',
		gl='a principios de $date1',
		he='תחילת $date1',
		hr='početak $date1',
		hsb={'spočatk $date1', case={'gen',}},
		hu='$date1 elején',
		it='inizio del $date1',
		ja='$date1初頭',
		mk='почеток на $date1',
		ml='$date1 ആദ്യപാദം',
		nb='tidlig $date1',
		nn='tidleg $date1',
		nds='Anfang $date1',
		nl='begin $date1',
		no='tidlig $date1',
		pl={'początek $date1', case={'gen',}},
		pt='a princípios de $date1',
		qu="$date1 ñawpaq p'unchawkunapi",
		ro='începând cu $date1',
		ru={'начало $date1', case={'gen',}},
		sk={'začiatok $date1', case={'gen',}},
		sl=function(date1, state)-- could actually be better should be "d'octobre à mars 2013' not "de octore 2013 à mars 2013" 
			if state.precision == 9 then -- precision > month
				return 'zgodnje leto $date1'
			else				-- "DE septebmbre" / "D'octobre"
				return 'zgodnji $date1'
			end
		end, 
		sv='början av $date1',
		uk={'початок $date1', case={'gen',}},
		ur='ابتدا $date1',
		vi='đầu năm $date1',
		'zh-hans'='$date1早期',
		'zh-hant'='$date1早期',
		default='early $date1',
	},
	'mid' = {
		nDates = 1,
		ar='منتصف $date1',
		'be-tarask'={'сярэдзіна $date1', case={'gen',}},
		bn='$date1-এর মাঝামাঝি',
		ca='a mitjan $date1',
		cs={'polovina $date1', case={'gen',}},
		da='midten af $date1',
		de='Mitte $date1',
		el='μέσα του $date1',
		en='mid $date1',
		'en-gb'='mid $date1',
		'en-ca'='mid $date1',
		eo='meze de $date1',
		es='a mediados de $date1',
		et='$date1 keskel',
		fa='اواسط $date1',
		fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 puoliväli' end, case={'gen',}},
		fr='mi $date1',
		gl='a mediados de $date1',
		he='אמצע $date1',
		hr='sredina $date1',
		hsb={'srjedź $date1', case={'gen',}},
		hu='$date1 közepén',
		it='metà del $date1',
		ja='$date1半ば',
		mk='средина на $date1',
		ml='$date1 മദ്ധ്യം',
		nb='midten av $date1',
		nn='midten av $date1',
		nds='Midd $date1',
		nl='midden $date1',
		no='midten av $date1',
		pl={'środek $date1', case={'gen',}},
		pt='meados de $date1',
		qu="$date1 chawpin p'unchawkunapi",
		ro='mijlocul lui $date1',
		ru={'середина $date1', case={'gen',}},
		sk={'polovica $date1', case={'gen',}},
		sl={function(date1, state) return 'sredina ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',}},
		sv='mitten av $date1',
		uk={'середина $date1', case={'gen',}},
		ur='وسط $date1',
		vi='giữa năm $date1',
		'zh-hans'='$date1中期',
		'zh-hant'='$date1中期',
		default='mid $date1',
	},
	'late' = {
		nDates = 1,
		ar='نهاية $date1',
		bn='$date1-এর শেষে',
		'be-tarask'={'канец $date1', case={'gen',}},
		ca='al final de $date1',
		cs='konec $date1',
		da='sen $date1',
		de='Ende $date1',
		el='τέλη του $date1',
		en='late $date1',
		'en-gb'='late $date1',
		'en-ca'='late $date1',
		eo='fine de $date1',
		es='a fines de $date1',
		et='$date1 lõpp',
		fa='اواخر $date1',
		fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 loppu' end, case={'gen',}},
		fr='fin $date1',
		gl='a finais de $date1',
		he='סוף $date1',
		hr='kraj $date1',
		hsb={'kónc $date1', case={'gen',}},
		hu='$date1 végén',
		it='fine del $date1',
		ja='$date1末',
		mk='крајот на $date1',
		ml='$date1 അന്ത്യപാദം',
		nb='sent $date1',
		no='seint $date1',
		nds='Enn $date1',
		nl='eind $date1',
		no='sent $date1',
		pl={'koniec $date1', case={'gen',}},
		pt='ao final de $date1',
		qu="$date1 qhipaq p'unchawkunapi",
		ro='sfârșitul lui $date1',
		ru={'конец $date1', case={'gen',}},
		sk={'koniec $date1', case={'gen',}},
		sl={function(date1, state) return 'pozno ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',}},
		sv='slutet av $date1',
		uk={'кінець $date1', case={'gen',}},
		ur='اخیر $date1',
		vi='cuối năm $date1',
		'zh-hans'='$date1晚期',
		'zh-hant'='$date1晚期',
		default='late $date1',
	},
	
	'circa' = {
		nDates = 1,
		ar='حوالي $date1',
		'be-tarask'={'каля $date1', case={'gen',}},
		bn='প্রায় $date1',
		ca='cap a $date1',
		cs='cca $date1',
		da='ca. $date1',
		de='etwa $date1',
		el='περ. $date1',
		en='circa $date1',
		'en-gb'='circa $date1',
		'en-ca'='circa $date1',
		eo='ĉirkaŭ $date1',
		es='hacia $date1', -- suggestion use "hacia"/"hacia el" or leave the latin circa or ca. 
		et='ca. $date1',
		fa='حوالی $date1', -- template:Circa used 'حدود $date1'
		fi={function(date1, state) return 'suunnilleen ' .. decYear(state,'fi','ine') .. '$date1' end, case={'ine',}}, -- template:Circa used 'noin $date1'
		fr=function(date1, state) 			
			if state.precision >= 11 then -- precision >= day
				return 'vers le $date1'
			else
				return 'vers $date1'
			end
		end,
		gl='entre $date1', -- template:Circa used 'cara a $date1'
		he='בסביבות $date1',
		hr='oko $date1',
		hsb={'wokoło $date1', case={'gen',}},
		hu='$date1 körül',
		it='$date1 circa',
		ja='$date1頃',
		ko='$date1경',
		mk='~ $date1', -- template:Circa used 'o. $date1'
		nb='ca. $date1',
		nn='ca. $date1',
		nds='üm un bi $date1',
		nl='ca. $date1',
		no='ca. $date1',
		pl={'około $date1', case={'gen',}},
		pt='cerca de $date1',
		qu='$date1chá',
		ro='circa $date1',
		ru={'около $date1', case={'gen',}},
		sk='cca $date1',
		sl={function(date1, state) return 'ok. ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',}},
		sv='c:a $date1', -- template:Circa used 'ca $date1'
		uk={'близько $date1', case={'gen', }},
		ur='قریباً $date1',
		vi='vào khoảng $date1',
		'zh-hans'='约$date1',
		'zh-hant'='約$date1',
		default='circa $date1',
	},
	
	'uncertain' = {
		nDates = 1,
		'zh-hans'='$date1（？）',
		'zh-hant'='$date1（？）',
		default='$date1 (?)',
	},
	
	probably = { -- see Q56644435
		nDates = 1,
		ast = 'probablemente $date1',
		bn = 'সম্ভবত $date1',
		ca = 'probablement $date1',
		cs = 'pravděpodobně $date1',
		de = 'wahrscheinlich $date1',
		el = 'πιθανόν $date1',
		en = 'probably $date1',
		'en-gb'='probably $date1',
		'en-ca'='probably $date1',
		eo = 'probable $date1',
		es = 'probable $date1',
		fa = 'احتمالاً $date1',
		fr = 'probablement $date1',
		he = 'כפי הנראה $date1',
		hu = 'feltehetőleg $date1',
		it = 'probabile $date1',
		mk = 'веројатно $date1',
		nl = 'waarschijnlijk $date1',
		pl = 'prawdopodobnie $date1',
		pt = 'provavelmente $date1',
		ru = 'вероятно $date1',
		sv = 'antagligen $date1',
		default='probably $date1',
	},
	
	possibly = { -- see Q30230067
		nDates = 1,
		ast = 'posiblemente $date1',
		bn = 'যথাসম্ভব $date1',
		cs = 'možná $date1',
		de = 'möglicherweise $date1',
		en = 'possibly $date1',
		'en-gb'='possibly $date1',
		'en-ca'='possibly $date1',
		eo = 'eble $date1',
		el = 'πιθανόν $date1',
		fa = 'احتمالاً $date1',
		fr = 'peut-être $date1',
		hu = 'talán $date1',
		mk = 'можеби $date1',
		nl = 'mogelijk $date1',
		pl = 'być może $date1',
		pt = 'possivelmente $date1',
		ro = 'poate $date1',
		ru = 'возможно $date1',
		sv = 'möjligen $date1',
		default='possibly $date1',
	},
	
	presumably = { -- see Q18122778
		nDates = 1,
		ast = 'presumiblemente $date1',
		de = 'vermutlich $date1',
		en = 'presumably $date1',
		'en-gb'='presumably $date1',
		'en-ca'='presumably $date1',
		fr = 'présumé $date1',
		it = 'presumibilmente $date1',
		ru = 'предположительно $date1',
		pl = 'przypuszczalnie $date1',
		default='presumably $date1',
	},
	'year unknown'= {
		nDates = 0,
		ca='Any desconegut',
		'be-tarask'='Год невядомы',
		bn='অজানা বছর',
		cs='neznámý rok',
		de='Jahr unbekannt',
		el='άγνωστο έτος',
		en='year unknown',
		'en-gb'='year unknown',
		'en-ca'='year unknown',
		eo='jaro nesciata',
		es='Año desconocido',
		fa='سال نامعلوم',
		fi='tuntematon vuosi',
		fr='Année inconnue',
		he='שנה לא ידועה',
		hsb='lěto njeznate',
		hr='nepoznata godina',
		it='anno sconosciuto',
		ja='年代不明',
		la='Sine anno',
		ml='വർഷം ലഭ്യമല്ല',
		mk='непозната година',
		nb='ukjent år',
		nn='ukjent år',
		nl='zonder jaar',
		no='ukjent år',
		pl='rok nieznany',
		qu='Mana riqsisqa wata',
		ru='Год неизвестен',
		sk='neznámy rok',
		sl='neznano leto',
		sv='Okänt år',
		uk='рік невідомий',
		ur='سال نامعلوم',
		vi='không rõ năm',
		'zh-hans'='年份未知',
		'zh-hant'='年份未知',
		default='year unknown',
	},
	-- ======================================**
	-- === Parts of a whole =================**
	-- ======================================**
	'firsthalf' = {
		nDates = 1,
		ar='النصف الأول من $date1',
		'be-tarask'={'першая палова $date1', case={'gen',}},
		bn='$date1-এর প্রথমার্ধ',
		ca='1a meitat de $date1',
		cs={'1. polovina $date1', case={'gen',}},
		da='1. halvdel af $date1',
		de='1. Hälfte $date1',
		el='πρώτο μισό του $date1',
		en='first half of $date1',
		'en-gb'='first half of $date1',
		'en-ca'='first half of $date1',
		eo='unua duono de $date1',
		es='primera mitad de $date1',
		et='$date1 esimene pool',
		fa='نیمهٔ نخست $date1',
		fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 alkupuolisko' end, case={'gen',}},
		fr='1re moitié de $date1',
		gl='primeira metade de $date1',
		he='במחצית הראשונה של $date1',
		hsb={'prěnja połojca $date1', case={'gen',}},
		hu='$date1 első felében',
		hr='prva polovina $date1',
		it='prima metà del $date1',
		ja='$date1上半期',
		mk='прва половина на $date1',
		ml='$date1 ആദ്യപകുതി',
		nb='første halvdel av $date1',
		nn='fyrste halvdelen av $date1',
		nds='1. Helft $date1',
		nl='eerste helft $date1',
		no='første halvdel av $date1',
		pl={'pierwsza połowa $date1', case={'gen',}},
		pt='primeira metade de $date1',
		qu='$date1 ñawpaq kuskanpi',
		ro='prima jumătate a lui $date1',
		ru={'первая половина $date1', case={'gen',}},
		sk={'1. polovica $date1', case={'gen',}},
		sl={function(date1, state) return 'prva polovica ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',}},
		sv='första halvan av $date1',
		uk={'перша половина $date1', case={'gen',}},
		ur='نصف اول $date1',
		vi='nửa đầu năm $date1',
		'zh-hans'='$date1上半期',
		'zh-hant'='$date1上半期',
		default='first half of $date1',
	},
	'secondhalf' = {
		nDates = 1,
		ar='النصف الثاني من $date1',
		'be-tarask'={'другая палова $date1', case={'gen',}},
		bn='$date1-এর দ্বিতীয়ার্ধ',
		ca='2a meitat de $date1',
		cs={'2. polovina $date1', case={'gen',}},
		da='2. halvdel af $date1',
		de='2. Hälfte $date1',
		el='δεύτερο μισό του $date1',
		en='second half of $date1',
		'en-gb'='second half of $date1',
		'en-ca'='second half of $date1',
		eo='dua duono de $date1',
		es='segunda mitad de $date1',
		et='$date1 teine pool',
		fa='نیمهٔ دوم $date1',
		fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 loppupuolisko' end, case={'gen',}},
		fr='2e moitié de $date1',
		gl='segunda metade de $date1',
		he='במחצית השנייה של $date1',
		hsb={'druha połojca $date1', case={'gen',}},
		hr='druga polovina $date1',
		hu='$date1 második felében',
		it='seconda metà del $date1',
		ja='$date1下半期',
		mk='втора половина на $date1',
		ml='$date1 രണ്ടാം പകുതി',
		nb='andre halvdel av $date1',
		nn='andre halvdelen av $date1',
		nds='2. Helft vun $date1',
		nl='tweede helft $date1',
		no='andre halvdel av $date1',
		pl={'druga połowa $date1', case={'gen',}},
		pt='segunda metade de $date1',
		qu='$date1 qhipaq kuskanpi',
		ro='a doua jumătate a lui $date1',
		ru={'вторая половина $date1', case={'gen',}},
		sk={'2. polovica $date1', case={'gen',}},
		sl={'druga polovica  leta $date1', case={'gen',}},
		sv='andra halvan av $date1',
		uk={'друга половина $date1', case={'gen',}},
		ur='نصف آخر $date1',
		vi='nửa cuối năm $date1',
		'zh-hans'='$date1下半期',
		'zh-hant'='$date1下半期',
		default='second half of $date1',
	},
	'1quarter'= {
		nDates = 1,
		bn='$date1-এর প্রথম ত্রৈমাসিক',
		'be-tarask'={'першая чвэрць $date1', case={'gen',}},
		cs={'1. čtvrtina $date1', case={'gen',}},
		de='erstes Viertel $date1',
		en='first quarter of $date1',
		'en-gb'='first quarter of $date1',
		'en-ca'='first quarter of $date1',
		eo='unua kvarono de $date1',
		es='primer cuarto del $date1',
		fa='ربع نخست $date1',
		fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 ensimmäinen neljännes' end, case={'gen',}},
		fr= function(date1, state) return 'premier quart '.. frOfstate.precision ..' $date1' end, 
		he='רבעון ראשון של $date1',
		hsb={'prěnja štwórćina $date1', case={'gen',}},
		hr='prva četvrtina $date1',
		it='primo quarto del $date1',
		ja='$date1第1四半期',
		nb='første kvartal av $date1',
		nl='eerste kwart $date1',
		nn='fyrste kvartalet av $date1',
		no='første kvartal av $date1',
		pl={'pierwsza ćwiartka $date1', case={'gen',}},
		qu='$date1 ñawpaq ñiqin tawa phatmanpi',
		ru={'первая четверть $date1', case={'gen',}},
		sk={'1. štvrtina $date1', case={'gen',}},
		sl={'prva četrtina  leta $date1', case={'gen',}},
		sl={function(date1, state) return 'prva četrtina ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',}},
		sv='första kvartalet av $date1',
		uk={'1-ша чверть $date1', case={'gen',}},
		ur='پہلی سہ ماہی $date1',
		vi='quý 1 năm $date1',
		'zh-hans'='$date1第一季度',
		'zh-hant'='$date1第一季度',
		default='first quarter of $date1',
	},
	'2quarter'= {
		nDates = 1,
		'be-tarask'={'другая чвэрць $date1', case={'gen',}},
		bn='$date1-এর দ্বিতীয় ত্রৈমাসিক',
		cs={'2. čtvrtina $date1', case={'gen',}},
		de='zweites Viertel $date1',
		en='second quarter of $date1',
		'en-gb'='second quarter of $date1',
		'en-ca'='second quarter of $date1',
		eo='dua kvarono de $date1',
		es='segundo cuarto del $date1',
		fa='ربع دوم $date1',
		fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 toinen neljännes' end, case={'gen',}},
		fr= function(date1, state) return 'deuxième quart '.. frOfstate.precision ..' $date1' end, 
		he='רבעון שני של $date1',
		hsb={'druha štwórćina $date1', case={'gen',}},
		hr='druga četvrtina $date1',
		it='secondo quarto del $date1',
		ja='$date1第2四半期',
		nb='andre kvartal av $date1',
		nl='tweede kwart $date1',
		nn='andre kvartalet av $date1',
		no='andre kvartal av $date1',
		pl={'druga ćwiartka $date1', case={'gen',}},
		qu='$date1 iskay ñiqin tawa phatmanpi',
		ru={'вторая четверть $date1', case={'gen',}},
		sk={'2. štvrtina $date1', case={'gen',}},
		sl={function(date1, state) return 'druga četrtina ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',}},
		sv='andra kvartalet av $date1',
		uk={'2-га чверть $date1', case={'gen',}},
		ur='دوسری سہ ماہی $date1',
		vi='quý 2 năm $date1',
		'zh-hans'='$date1第二季度',
		'zh-hant'='$date1第二季度',
		default='second quarter of $date1',
	},
	'3quarter'= {
		nDates = 1,
		'be-tarask'={'трэцяя чвэрць $date1', case={'gen',}},
		bn='$date1-এর তৃতীয় ত্রৈমাসিক',
		cs={'3. čtvrtina $date1', case={'gen',}},
		de='drittes Viertel $date1',
		en='third quarter of $date1',
		'en-gb'='third quarter of $date1',
		'en-ca'='third quarter of $date1',
		eo='tria kvarono de $date1',
		es='tercer cuarto del $date1',
		fa='ربع سوم $date1',
		fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 kolmas neljännes' end, case={'gen',}},
		fr= function(date1, state) return 'troisième quart '.. frOfstate.precision ..' $date1' end, 
		he='רבעון שלישי של $date1',
		hsb={'třeća štwórćina $date1', case={'gen',}},
		hr='treća četvrtina $date1',
		it='terzo quarto del $date1',
		ja='$date1第3四半期',
		nb='tredje kvartal av $date1',
		nl='derde kwart $date1',
		nn='tredje kvartalet av $date1',
		no='tredje kvartal av $date1',
		pl={'trzecia ćwiartka $date1', case={'gen',}},
		qu='$date1 kimsa ñiqin tawa phatmanpi',
		sk={'3. štvrtina $date1', case={'gen',}},
		sl={function(date1, state) return 'tretja četrtina ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',}},
		ru={'третья четверть $date1', case={'gen',}},
		sv='tredje kvartalet av $date1',
		uk={'3-тя чверть $date1', case={'gen',}},
		ur='تیسری سہ ماہی $date1',
		vi='quý 3 năm $date1',
		'zh-hans'='$date1第三季度',
		'zh-hant'='$date1第三季度',
		default='third quarter of $date1',
	},
	'4quarter'= {
		nDates = 1,
		'be-tarask'={'чацьвёртая чвэрць $date1', case={'gen',}},
		bn='$date1-এর চতুর্থ ত্রৈমাসিক',
		cs={'4. čtvrtina $date1', case={'gen',}},
		de='letztes Viertel $date1',
		en='fourth quarter of $date1',
		'en-gb'='fourth quarter of $date1',
		'en-ca'='fourth quarter of $date1',
		eo='kvara kvarono de $date1',
		es='último cuarto del $date1',
		fa='ربع چهارم $date1',
		fi={function(date1, state) return decYear(state,'fi','gen') .. '$date1 viimeinen neljännes' end, case={'gen',}},
		fr= function(date1, state) return 'quatrième quart '.. frOfstate.precision ..' $date1' end, 
		he='רבעון רביעי של $date1',
		hsb={'poslednja štwórćina $date1', case={'gen',}},
		hr='četvrta četvrtina $date1',
		it='quarto quarto del $date1',
		ja='$date1第4四半期',
		nb='fjerde kvartal av $date1',
		nl='vierde kwart $date1',
		nn='tredje kvartalet av $date1',
		no='fjerde kvartal av $date1',
		pl={'czwarta ćwiartka $date1', case={'gen',}},
		qu='$date1 qhipaq ñiqin tawa phatmanpi',
		ru={'последняя четверть $date1', case={'gen',}},
		sk={'4. štvrtina $date1', case={'gen',}},
		sl={function(date1, state) return 'zadnja četrtina ' .. decYear(state,'sl','gen') .. ' $date1' end, case={'gen',}},
		sv='fjärde kvartalet av $date1',
		uk={'4-та чверть $date1', case={'gen',}},
		ur='چوتھی سہ ماہی $date1',
		vi='quý 4 năm $date1',
		'zh-hans'='$date1第四季度',
		'zh-hant'='$date1第四季度',
		default='forth quarter of $date1',
	},
	-- ======================================**
	-- === Seasons ==========================**
	-- ======================================**
	'spring' = {
		nDates = 1,
		ar='ربيع $date1',
		'be-tarask'='вясна $date1',
		bn='বসন্তকাল $date1',
		ca='primavera $date1',
		cs={'jaro $date1', case={'gen', }},
		da='Forår $date1',
		de='Frühling $date1',
		en='Spring $date1',
		'en-gb'='Spring $date1',
		'en-ca'='Spring $date1',
		eo='printempo $date1',
		es='primavera de $date1',
		et='$date1 kevad',
		fa='بهار $date1',
		fi='Kevät $date1',
		fr='printemps $date1',
		gl='primavera $date1',
		he='אביב $date1',
		hr='proljeće $date1',
		hsb='nalěćo $date1',
		hu='$date1 tavasza',
		it='primavera $date1',
		ja='$date1年春',
		mk='пролет $date1',
		ml='$date1 വസന്തം',
		nb='våren $date1',
		nds='Vörjohr $date1',
		nn='våren $date1',
		nl='voorjaar $date1',
		no='våren $date1',
		pl='wiosna $date1',
		pt='primavera de $date1',
		ro='primăvara lui $date1',
		ru='весна $date1',
		sk={'jar $date1', case={'gen', }},
		sl='pomlad $date1',
		sv='våren $date1',
		uk='весна $date1',
		ur='بہار $date1',
		vi='mùa đông năm $date1',
		'zh-hans'='$date1年春季',
		'zh-hant'='$date1年春季',
		default='Spring $date1',
	},
	'summer' = {
		nDates = 1,
		ar='صيف $date1',
		'be-tarask'='лета $date1',
		bn='গ্রীষ্মকাল $date1',
		ca='estiu $date1',
		cs={'léto $date1', case={'gen', }},
		da='Sommer $date1',
		de='Sommer $date1',
		en='Summer $date1',
		'en-gb'='Summer $date1',
		'en-ca'='Summer $date1',
		eo='somero $date1',
		es='verano de $date1',
		et='$date1 suvi',
		fa='تابستان $date1',
		fi='Kesä $date1',
		fr='été $date1',
		gl='verán $date1',
		he='קיץ $date1',
		hr='ljeto $date1',
		hsb='lěćo $date1',
		hu='$date1 nyara',
		it='estate $date1',
		ja='$date1年夏',
		mk='лето $date1',
		ml='$date1 വേനൽ',
		nb='sommeren $date1',
		nds='Sommer $date1',
		nn='sumaren $date1',
		nl='zomer $date1',
		no='sommeren $date1',
		pl='lato $date1',
		pt='verão de $date1',
		ro='vara lui $date1',
		ru='лето $date1',
		sk={'leto $date1', case={'gen', }},
		sl='poletje $date1',
		sv='sommaren $date1',
		uk='літо $date1',
		ur='گرما $date1',
		vi='mùa hè năm $date1',
		'zh-hans'='$date1年夏季',
		'zh-hant'='$date1年夏季',
		default='Summer $date1',
	},
	'autumn' = {
		nDates = 1,
		ar='خريف $date1',
		'be-tarask'='восень $date1',
		bn='শরত্কাল $date1',
		ca='tardor $date1',
		cs={'podzim $date1', case={'gen', }},
		da='Efterår $date1',
		de='Herbst $date1',
		en='Autumn $date1',
		'en-gb'='Autumn $date1',
		'en-ca'='Autumn $date1',
		eo='aŭtuno $date1',
		es='otoño de $date1',
		et='$date1 sügis',
		fa='پاییز $date1',
		fi='Syksy $date1',
		fr='automne $date1',
		gl='outono $date1',
		he='סתיו $date1',
		hr='jesen $date1',
		hsb='nazyma $date1',
		hu='$date1 ősze',
		it='autunno $date1',
		ja='$date1年秋',
		mk='есен $date1',
		ml='$date1 ശരത്കാലം',
		nb='høsten $date1',
		nds='Harvst $date1',
		nn='hausten $date1',
		nl='herfst $date1',
		no='høsten $date1',
		pl='jesień $date1',
		pt='outono de $date1',
		ro='toamna lui $date1',
		ru='осень $date1',
		sk={'jeseň $date1', case={'gen', }},
		sl='jesen $date1',
		sv='hösten $date1',
		uk='осінь $date1',
		ur='خزاں $date1',
		vi='mùa thu năm $date1',
		'zh-hans'='$date1年秋季',
		'zh-hant'='$date1年秋季',
		default='Autumn $date1',
	},
	'winter' = {
		nDates = 1,
		ar='شتاء $date1',
		'be-tarask'='зіма $date1',
		bn='শীতকাল $date1',
		ca='hivern $date1',
		cs={'zima $date1', case={'gen', }},
		da='Vinter $date1',
		de='Winter $date1',
		en='Winter $date1',
		'en-gb'='Winter $date1',
		'en-ca'='Winter $date1',
		eo='vintro $date1',
		es='invierno de $date1',
		et='$date1 talv',
		fa='زمستان $date1',
		fi='Talvi $date1',
		fr='hiver $date1',
		gl='inverno $date1',
		he='חורף $date1',
		hr='zima $date1',
		hsb='zyma $date1',
		hu='$date1 tele',
		it='inverno $date1',
		ja='$date1年冬',
		mk='зима $date1',
		ml='$date1 ശൈത്യകാലം',
		nds='Winter $date1',
		nl='winter $date1',
		nb='vinteren $date1',
		nn='vinteren $date1',
		no='vinteren $date1',
		pl='zima $date1',
		pt='inverno de $date1',
		ro='iarna lui $date1',
		ru='зима $date1',
		sk={'zima $date1', case={'gen', }},
		sl='zima $date1',
		sv='vintern $date1',
		uk='зима $date1',
		ur='سرما $date1',
		vi='mùa đông năm $date1',
		'zh-hans'='$date1年冬季',
		'zh-hant'='$date1年冬季',
		default='Winter $date1',
	},
	-- ======================================**
	-- === Decade/Century/Millennium ========**
	-- ======================================**
	'decade' = {
		nDates = 1,
		ar='أعوام $date1',
		'be-tarask'='$date1-я гады',
		bn='$date1-এর দশক',
		ca='dècada del $date1',
		cs=function(date1, state) return ((date1 % 100 == 0) and 'první dekáda' or ((date1 % 100) .. '. léta')) .. ' ' .. (math.floor(date1 / 100) + 1) .. '. století' end,
		da="$date1'erne",
		de='$date1er-Jahre',
		el='δεκαετία του $date1',
		en='$date1s',
		'en-gb'='$date1s',
		'en-ca'='$date1s',
		eo='$date1-aj jaroj',
		es='años $date1',
		et='$date1ndad',
		fa='دههٔ $date1',
		fi='$date1-luvulla',
		fr='années $date1',
		gl='anos $date1',
		he='שנות ה-$date1',
		hr='$date1-ih',
		hsb='$date1te lěta',
		hu='$date1-s évek',
		it="",
		ja='$date1年代',
		mk='$date1-ти',
		ml='ദശകം $date1-ൽ',
		nb='$date1-årene',
		nn='$date1-åra',
		nds='Johren $date1',
		nl='jaren $date1',
		no='$date1-årene',
		pl=function(date1, state) 
			local str = 'lata '..(date1 % 100)..'. '
			if (date1 % 100 == 0) then
				str = 'pierwsza dekada '
			elseif (date1 % 100 == 10) then
				str = 'druga dekada '
			end
			return str .. Roman(math.floor(date1 / 100) + 1) .. ' wieku' 
		end,
		pt='década de $date1',
		qu='$date1 watakuna',
		ro='anii $date1',
		ru='$date1-е годы',
		sk=function(date1, state) return ((date1 % 100 == 0) and 'prvé desaťročie' or ((date1 % 100) .. '. roky')) .. ' ' .. (math.floor(date1 / 100) + 1) .. '. storočia' end,
		sl='$date1-ta leta',
		sv='$date1-talet2100= (decennium)',
		uk='$date1-ті роки',
		ur='دہائی $date1',
		vi='thập niên $date1',
		'zh-hans'='$date1年代',
		'zh-hant'='$date1年代',
		default='$date1s',
	},
	'century' = {
		nDates = 1,
		ar='القرن $date1',
		'be-tarask'=function(date1, state) return Ordinal(date1, 'be-tarask') .. ' стагодзьдзе' end,
		bn=function(date1, state) return Ordinal(date1, 'bn') .. ' শতাব্দী' end,
		ca='segle ',
		cs='$date1. století',
		da='$date1. århundrede',
		de='$date1. Jahrhundert',
		el='$date1ος αιώνας',
		en=function(date1, state) return Ordinal(date1, 'en') .. ' century' end,
		'en-gb'=function(date1, state) return Ordinal(date1, 'en-gb') .. ' century' end,
		'en-ca'=function(date1, state) return Ordinal(date1, 'en-ca') .. ' century' end,
		eo='$date1-a jarcento',
		es=function(date1, state) return 'siglo ' .. Roman(date1) end,
		et='$date1. sajand',
		fa='سدهٔ $date1',
		fi='-luvulla',
		fr=function(date1, state) return Ordinal(date1, 'fr', 'roman', 'm') .. ' siècle' end,
		gl=function(date1, state) return 'século ' .. Roman(date1) end,
		he='המאה ה-$date1',
		hr='$date1. stoljeće',
		hsb='$date1. lětstotk',
		hu='$date1. évszázad',
		it=function(date1, state) return Roman(date1) .. ' sec.' end,
		ja='$date1世紀',
		la='saeculum $date1',
		mk=function(date1, state) return Roman(date1) .. ' век' end,
		ml='$date1-ആം നൂറ്റാണ്ട്',
		nb=function(date1, state) return Ordinal(date1, 'nb') .. ' århundre' end,
		nn=function(date1, state) return 'det ' .. Ordinal(date1, 'no') .. ' århundre' end,
		nds='$date1. Johrhunnert',
		nl='$date1e eeuw',
		no=function(date1, state) return Ordinal(date1, 'no') .. ' århundre' end,
		pl=function(date1, state) return Roman(date1) .. ' ' .. decCentury('pl',state.case) end,
		pt=function(date1, state) return 'século ' .. Roman(date1) end,
		qu='$date1 ñiqin pachakwata',
		ro='secolul al $date1-lea',
		ru=function(date1, state) return Roman(date1) .. ' век' end,
		sk='$date1. storočie',
		sl=function(date1, state) return Ordinal(date1, 'sl') .. '. stoletje' end,
		sv='00-talet',
		tt=function(date1, state) return Roman(date1) .. ' гасыр' end,
		uk=function(date1, state) return Roman(date1) .. ' ст.' end,
		ur='صدی $date1',
		vi='thế kỷ $date1',
		'zh-hans'='$date1世纪',
		'zh-hant'='$date1世紀',
		default='$date1 century',
	},
	'millennium' = {
		nDates = 1,
		'be-tarask'=function(date1, state) return Ordinal(date1, 'be-tarask') .. ' тысячагодзьдзе' end,
		bn=function(date1, state) return Ordinal(date1, 'bn') .. ' সহস্রাব্দ' end,
		cs='$date1. tisíciletí',
		de='$date1. Jahrtausend',
		en=function(date1, state) return Ordinal(date1, 'en') .. ' millennium' end,
		'en-gb'=function(date1, state) return Ordinal(date1, 'en-gb') .. ' millennium' end,
		'en-ca'=function(date1, state) return Ordinal(date1, 'en-ca') .. ' millennium' end,
		eo='$date1-a jarmilo',
		es=function(date1, state) return Roman(date1) .. ' milenio' end,
		fa=function(date1, state) return 'هزارهٔ ' .. Ordinal(date1, 'fa') end,
		fr=function(date1, state) return Ordinal(date1, 'fr', 'roman', 'm') .. ' millénaire' end,
		hr='$date1. tisućljeće',
		hsb='$date1. lěttysac',
		it=function(date1, state) return Roman(date1) .. ' millennio' end,
		ja='$date1千年紀',
		la='millennium $date1',
		nb=function(date1, state) return Ordinal(date1, 'nb') .. ' årtusen' end,
		nn=function(date1, state) return Ordinal(date1, 'no') .. ' tusenår' end,
		nl='$date1e millennium',
		no=function(date1, state) return Ordinal(date1, 'no') .. ' årtusen' end,
		pl=function(date1, state) return Roman(date1) .. ' ' .. decMillennium('pl',state.case) end,
		pt=function(date1, state) return Roman(date1) .. ' milénio' end,
		qu='$date1 ñiqin waranqawata',
		ru=function(date1, state) return Roman(date1) .. ' тысячелетие' end,
		sk='$date1. tisícročie',
		sl=function(date1, state) return Ordinal(date1, 'sl') .. '. tisočletje' end,
		sv=function(date1, state) return Ordinal(date1, 'sv') .. ' årtusendet' end,
		uk=function(date1, state) return Roman(date1) .. ' тис.' end,
		ur=function(date1, state) return 'ہزارہ ' .. Ordinal(date1, 'ur') end,
		vi='thiên niên kỷ $date1',
		'zh-hans'=function(date1, state) return Ordinal(date1, 'zh-hans') .. '千年' end,
		'zh-hant'=function(date1, state) return Ordinal(date1, 'zh-hant') .. '千年' end,
		--default='Module:I18n/complex date',
		default='$date1 millennium',
	},
	'million' = {
		de = '$date1 Millionen Jahre',
		en = '$date1 million years',
		'en-gb' = '$date1 million years',
		'en-ca' = '$date1 million years',
		eo = '$date1 milionoj da jaroj',
		es = '$date1 millones de años',
		nl = '$date1e miljoen jaar',
		fr = '$date1 millions d’années',
		it = '$date1 milioni di anni',
		nb = '$date1 millioner år',
		nl = '$date1 miljoen jaar',
		nn = '$date1 millionar år',
		pl = '$date1 milionów lat',
		pt = '$date1 milhões de anos',
		ru = '$date1 миллиона лет',
		uk = '$date1 мільйони років',
		ur = '$date1 ملین سال',
		'zh-hans' = '$date1百万年',
		'zh-hant' = '$date1百万年',
		default='$date1 million years',
		nDates = 1,
	},
	
	'billion' = {
		de = '$date1 Milliarden Jahre',
		en = '$date1 billion years',
		'en-gb' = '$date1 billion years',
		'en-ca' = '$date1 billion years',
		es = '$date1 mil millones de años',
		nl = '$date1e miljard jaar',
		fr = '$date1 milliard d’années',
		it = '$date1 miliardi di anni',
		nb = '$date1 milliarder år',
		nl = '$date1 miljard jaar',
		nn = '$date1 milliardar år',
		pl = '$date1 miliardów lat',
		pt = '$date1 mil milhões de anos',
		ru = '$date1 миллиардов лет',
		uk = '$date1 мільярдів років',
		ur = '$date1 بلین سال',
		'zh-hans' = '$date1十亿年',
		'zh-hant' = '$date1十億年',
		default=,
		nDates = 1,
	},
	-- ======================================**
	-- === Complex phrases ==================**
	-- ======================================**
	-- Phrases which for some languages can be build out of simpler phrases
	-- Their "default" state, used when no translation in the requested language was found, returns a "state" like 
	-- table which is used to call the function again and built the phrase out of simple phrases
	-- $date1 - original date - 1
	-- $date2 - original date 
	-- if era is BC than $date1 and $date2 are swapped
	'turn of the century' = { 
		nDates = 2,
		'be-tarask'=function(date1, date2, state) return 'канец ' .. Roman(date1) ..' — пачатак ' .. Roman(date2) ..' стагодзьдзя' end,
		bn=function(date1, date2, state) return '$date1/' .. Ordinal(date2, 'bn') .. ' শতাব্দীর পালাবদলে' end,
		cs='přelom $date1. a $date2. století',
		de=function(date1, date2, state) return 'Jahrhundertwende $date1/' .. Ordinal(date2, 'de') end,
		en=function(date1, date2, state) return 'turn of the $date1/' .. Ordinal(date2, 'en') .. ' century' end,
		'en-gb'=function(date1, date2, state) return 'turn of the $date1/' .. Ordinal(date2, 'en-gb') .. ' century' end,
		'en-ca'=function(date1, date2, state) return 'turn of the $date1/' .. Ordinal(date2, 'en-ca') .. ' century' end,
		eo='ŝanĝo de la $date1-a al la $date2-a jarcentoj',
		es=function(date1, date2, state) return 'hacia finales del siglo ' .. Roman(date1) .. ' y principios del siglo ' .. Roman(date2) ..  end,
		fi='-luvun loppu ja -luvun alku',
		fr=function(date1, date2, state) return 'fin du ' .. Ordinal(date1, 'fr', 'roman', 'm') .. ' siècle / début du ' .. Ordinal(date2, 'fr', 'roman', 'm') end,
		hr='kraj $date1. i početak $date2. stoljeća',
		hsb=function(date1, date2, state) return 'přechod ' .. Roman(date1) ..' do ' .. Roman(date2) ..' lětstotka' end,
		it=function(date1, date2, state) return 'fine del ' .. Roman(date1) .. ' sec. e inizio del ' .. Roman(date2) .. ' sec.' end,
		ja='$date1世紀から$date2世紀への変わり目',
		nb=function(date1, date2, state) return 'slutten av det ' .. Ordinal(date1, 'nb') .. ' århundre/begynnelsen av det ' .. Ordinal(date2, 'nb') .. ' århundre' end,
		nl=function(date1, date2, state) return 'eind $date1e/begin $date2e eeuw' end,
		nn=function(date1, date2, state) return 'slutten av det ' .. Ordinal(date1, 'nn') .. ' hundreåret/byrjinga av det ' .. Ordinal(date2, 'nn') .. ' hundreåret' end,
		pl=function(date1, date2, state) return 'przełom ' .. Roman(date1) ..' i ' .. Roman(date2) ..' wieku' end,
		qu="$date1 ñiqin waranqawatamanta $date2 ñiqin waranqawataman t'ikrasqanpi",
		ru=function(date1, date2, state) return 'конец ' .. Roman(date1) ..' — начало ' .. Roman(date2) ..' века' end,
		sk='prelom $date1. a $date2. storočia',
		sl=function(date1, date2, state) return 'pozno ' .. Ordinal(date1, 'sl') .. '. in zgodnje ' .. Ordinal(date2, 'sl') .. '. stoletje' end,
		sv=function(date1, date2, state) return '$date1/' .. Ordinal(date2, 'sv') .. ' årtusendets sekelskifte' end,
		uk=function(date1, date2, state) return 'кін. ' .. Roman(date1) ..' ст. — поч. ' .. Roman(date2) ..' ст.' end,
		vi='bước sang thế kỷ $date2',
		'zh-hans'=function(date1, date2, state) return '$date1世纪末' .. Ordinal(date2, 'zh-hans') .. '世纪初' end,
		'zh-hant'=function(date1, date2, state) return '$date1世紀末' .. Ordinal(date2, 'zh-hant') .. '世紀初' end,
		default=function(date1, date2, state) return {conj='and', adj1 = 'late', unit1='century', era1=state.era1, adj2 = 'early',  unit2='century', era2=state.era2} end,
	},
	-- $date1 - original date - 10
	-- $date2 - original date 
	-- if era is BC than $date1 and $date2 are swapped
	'turn of the decade'={
		nDates = 2,
		'be-tarask'='канец $date1-х — пачатак $date2-х гг.',
		bn='$date1-এর দশকের শেষে এবং $date2-এর দশকের শুরুতে',
		cs=function(date1, date2, state)
			local decade1  = math.floor((date1 % 100) / 10)
			local decade2  = math.floor((date2 % 100) / 10)
			local century1 = math.floor( date1 / 100) + 1
			local century2 = math.floor( date2 / 100) + 1
			if decade1 == 0 and date1 $date1 ($date2 in Julian calendar)',
	},
	
	'ad' = {
		nDates = 1,
		'be-tarask'='$date1 пасьля Н. Х.',
		bn ='$date1 খ্রিস্টাব্দ',
		ca ='$date1 dC',
		cs ='$date1 n. l.',
		de ='$date1 n. Chr.',
		el ='$date1 μ.Χ.',
		en ='$date1 AD',
		'en-gb' ='$date1 AD',
		'en-ca' ='$date1 AD',
		eo ='$date1 pK',
		es ='$date1 d. C.',
		fa ='$date1 م.',
		fi ='$date1 jaa.',
		fr ='$date1 ap. J.-C.',
		gl ='$date1 d.C.',
		he ='$date1 לספירה',
		hu ='i. sz. $date1',
		hr ='$date1 p. Kr.',
		hsb='$date1 po Chr.',
		it ='$date1 d.C.',
		ja ='西暦$date1',
		mk ='$date1 н.е.',
		ml ='ക്രി.വ. $date1',
		nb ='$date1 e.Kr.',
		nl ='$date1 n.Chr.',
		nn ='$date1 e.Kr.',
		no ='$date1 e.Kr.',
		pl ='$date1 n.e.',
		ro ='$date1 d.Hr.',
		ru ='$date1 н. э.',
		sk ='$date1 po Kr.',
		sl ='$date1 n. št.',
		sv ='$date1 e.Kr.',
		uk ='$date1 н. е.',
		ur ='$date1 ء',
		vi ='$date1 CN',
		'zh-hans' ='公元$date1',
		'zh-hant' ='公元$date1',
		default='$date1 AD',
	}, 
	
	'ah' = {
		nDates = 1,
		'be-tarask'='$date1 хіджры',
		bn ='$date1 হিজরী',
		cs ='$date1 AH',
		en ='$date1 AH',
		'en-gb' ='$date1 AH',
		'en-ca' ='$date1 AH',
		eo ='$date1 post la Heĝiro',
		fa ='$date1 ه.ق.',
		fr ='$date1 A.H.',
		he ="$date1 להג'רה",
		hr ='$date1 god. hidžre',
		ja ='ヒジュラ暦$date1',
		nb ='$date1 A.H.',
		nn ='$date1 A.H.',
		pl ='$date1 A.H.',
		ru ='$date1 хиджры',
		sk ='$date1 A. H.',
		sv ='$date1 A.H.',
		uk ='$date1 хіджри',
		ur ='$date1 ھ',
		vi ='$date1 AH',
		'zh-hans' ='Hijri历$date1',
		'zh-hant' ='Hijri曆$date1',
		default='$date1 AH',
	},
	
	'bc' = {
		nDates = 1,
		ar ='$date1 ق.م.',
		'be-tarask'='$date1 да Н. Х.',
		bn ='খ্রিস্টপূর্ব $date1',
		ca ='$date1 aC',
		cs ='$date1 př. n. l.',
		de ='$date1 v. Chr.',
		el ='$date1 π.Χ.',
		en ='$date1 BC',
		'en-gb' ='$date1 BC',
		'en-ca' ='$date1 BC',
		eo ='$date1 aK',
		es ='$date1 a. C.',
		fa ='$date1 پ.م.',
		fi ='$date1 eaa.',
		fr ='$date1 av. J.-C.',
		gl ='$date1 a.C.',
		he ='$date1 לפני הספירה',
		hr ='$date1 pr. Kr.',
		hsb='$date1 do Chr.',
		hu ='i. e. $date1',
		it ='$date1 a.C.',
		ja ='紀元前$date1',
		mk ='$date1 п.н.е.',
		ml ='ക്രി.മു. $date1',
		nds='$date1 vör uns Tied',
		nb ='$date1 f.Kr.',
		nl ='$date1 v.Chr.',
		nn ='$date1 f.Kr.',
		no ='$date1 f.Kr.',
		pl ='$date1 p.n.e.',
		ro ='$date1 î.Hr.',
		ru ='$date1 до н. э.',
		sk ='$date1 pred Kr.',
		sl ='$date1 pr. n. št.',
		sv ='$date1 f.Kr.',
		uk ='$date1 до н. е.',
		ur ='$date1 ق م',
		vi ='$date1 TCN',
		'zh-hans' ='公元前$date1',
		'zh-hant' ='公元前$date1',
		default='$date1 BC',
	}, 
	
	'bp' = {
		nDates = 1,
		ar ='$date1 قبل الحاضر',
		be ='$date1 Да нашых дзён',
		'be-tarask'='$date1 Да нашых дзён',
		bn ='বর্তমানের আগে $date1',
		ca ='$date1 BP',
		cs ='$date1 B. P.',
		de ='$date1 BP',
		el ='$date1 BP',
		en ='$date1 BP',
		'en-gb' ='$date1 BP',
		'en-ca' ='$date1 BP',
		eo='$date1 BP',
		es ='$date1 BP',
		et ='$date1 BP',
		fa ='$date1 پیش از اکنون',
		fi ='$date1 BP',
		fr ='$date1 avant le présent',
		hr ='$date1 prije današnjice',
		it ='$date1 BP',
		ja ='$date1 BP',
		lv ='$date1 Pirms mūsdienām',
		mk ='$date1 п.с.',
		ml ='ഇന്നത്തെ കാലത്തിനു മുമ്പ് $date1',
		nb ='$date1 BP',
		nn ='$date1 BP',
		nl ='$date1 BP',
		no ='$date1 BP',
		pl ='$date1 BP',
		pt ='$date1 Antes do Presente',
		ru ='$date1 до н. в.',
		sk ='$date1 BP',
		sl ='$date1 p. s.',
		sr ='$date1 Прије садашњости',
		sv ='$date1 B.P.',
		uk ='$date1 Років тому',
		ur ='$date1 قبل حاضر',
		vi ='$date1 trước ngày nay',
		'zh-hans' ='距今$date1',
		'zh-hant' ='距今$date1',
		default='$date1 BP',
	},
}
-- List of possible string inputs to "adj", "junction", "era", and "precision" fields
-- Each term is matched to its synonym and the role: a - adjective, e - era
-- p - precision, c - calendar and combos, r - certainty and j - conjunction
p.Synonyms = {
	-- adjectives and prepositions
	'quarter1'={'1quarter','a'},
	'1stquarter'={'1quarter','a'},
	'1st quarter'={'1quarter','a'},
	'first quarter'={'1quarter','a'},
	'1quarter'={'1quarter','a'},
	'quarter2'={'2quarter','a'},
	'2ndquarter'={'2quarter','a'},
	'2nd quarter'={'2quarter','a'},
	'second quarter'={'2quarter','a'},
	'2quarter'={'2quarter','a'},
	'quarter3'={'3quarter','a'},
	'3rdquarter'={'3quarter','a'},
	'3rd quarter'={'3quarter','a'},
	'third quarter'={'3quarter','a'},
	'3quarter'={'3quarter','a'},
	'quarter4'={'4quarter','a'},
	'4thquarter'={'4quarter','a'},
	'4th quarter'={'4quarter','a'},
	'fourth quarter'={'4quarter','a'},
	'4quarter'={'4quarter','a'},
	'spring'={'spring','a'},
	'summer'={'summer','a'},
	'fall'={'autumn','a'},
	'autumn'={'autumn','a'},
	'winter'={'winter','a'},
	'beginning'={'early','a'},
	'early'={'early','a'},
	'1half'={'firsthalf','a'},
	'1sthalf'={'firsthalf','a'},
	'1st half'={'firsthalf','a'},
	'firsthalf'={'firsthalf','a'},
	'first half'={'firsthalf','a'},
	'end'={'late','a'},
	'late'={'late','a'},
	'middle'={'mid','a'},
	'mid'={'mid','a'},
	'2half'={'secondhalf','a'},
	'2ndhalf'={'secondhalf','a'},
	'2nd half'={'secondhalf','a'},
	'secondhalf'={'secondhalf','a'},
	'second half'={'secondhalf','a'},
	={'after','a'},
	'a'={'after','a'},
	'after'={'after','a'},
	'~'={'circa','a'},
	'c'={'circa','a'},
	'ca'={'circa','a'},
	'circa'={'circa','a'},
	'by'={'by','a'},
	'from'={'from','a'},
	'until'={'until','a'},
	'uncertain'={'uncertain','r'},
	'possibly'={'possibly','r'},
	'probably'={'probably','r'},
	'presumably'={'presumably','r'},
	-- eras
	'bc'={'bc','e'},
	'bce'={'bc','e'},
	'before present'={'bp','e'},
	'bp'={'bp','e'},
	'ce'={'ad','e'},
	'ad'={'ad','e'},
	'ah'={'ah','e'},
	-- conjunctions
	'&'={'and','j'},
	'and'={'and','j'},
	'or'={'or','j'},
	'-'={'from-until','j'},
	'–'={'from-until','j'},
	'from-until'={'from-until','j'},
	'between'={'between','j'},
	'circa2'={'circa2','a'},
	
	-- precision
	'day'={'day','p'},
	'month'={'month','p'},
	'year'={'year','p'},
	's'={'decade','p'},
	'decade'={'decade','p'},
	'century'={'century','p'},
	'millennium'={'millennium','p'},
	'million'={'million','p'},
	'billion'={'billion','p'},
	-- calendar
	'julian'={'julian','c'},
	'islamic'={'islamic','c'},
	'hijri'={'islamic','c'},
	
	-- "Turn of the ..." options are a combos which will be handled in similar way as calendars
	'turn of the century'={'turn of the century','c'},
	'century turn'={'turn of the century','c'},
	'turn of the decade'={'turn of the decade','c'},
	'decade turn'={'turn of the decade','c'},
	'turn of the year'={'turn of the year','c'},
	'year turn'={'turn of the year','c'},
	-- other dates which will be handled in similar way as calendars
	'?'={'unknown','c'},
	'unknown'={'unknown','c'},
	'unknown year'={'year unknown','c'},
	'year unknown'={'year unknown','c'},
}
return p