# Module:I18n/complex date

-- \/ | ___ __| |_ _| | ___ _|_ _/ |( _ ) _ __ / /__ ___ _ __ ___ _ __ | | _____ __ __| | __ _| |_ ___  
| |\/| |/ _ \ / _` | | | | |/ _ (_)| || |/ _ \| '_ \ / / __/ _ \| '_ ` _ \| '_ \| |/ _ \ \/ / / _` |/ _` | __/ _ \  
| | | | (_) | (_| | |_| | | __/_ | || | (_) | | | |/ / (_| (_) | | | | | | |_) | | __/> < | (_| | (_| | || __/  
|_| |_|\___/ \__,_|\__,_|_|\___(_)___|_|\___/|_| |_/_/ \___\___/|_| |_| |_| .__/|_|\___/_/\_\ \__,_|\__,_|\__\___|  
|_|  
This code was copied from Commons please request changes there.  

Maintainers:  
- Jarekt

local function Ordinal(...)  
return require('Module:Ordinal-cd')._Ordinal(...)  
end  
local function Roman(...)  
return require('Module:Roman-cd')._Numeral(...)  
end  

-- ==========================================================================  
-- === Local Helper functions ==============================================  
-- ==========================================================================  
-- form of French "of" based on "precision", which is wikibase compatible date precision format:  
-- 6=millennium, 7=century, 8=decade, 9=year, 10=month, 11=day  
-- 1 2 3 4 5 mill cent deca year month day  
local frOf = {'du','du','du','du','du', 'du', 'du', 'de', 'de', 'de', 'du'}  

local function decYear(state,lang,case)  
--Declension of word "year" in several languages  
if state.precision == 9 then  
yearCase = {  
fi={xxx='vuosien', gen='vuoden', ill='vuoteen', ptv='vuotta', ela='vuodesta', ine='vuonna'},  
sl={insP='letoma', ins='letom', gen='leta', loc='letu'},  
hsb={insP='lětami', ins='lětom', gen='lěta', loc='lěće'}  
}  
return yearCase[lang][case] .. ' '  
else  
return ''  
end  
end  

local function decCentury(lang,case)  
--Declension of word "century" in several languages  
centuryCase = {  
pl={nom='wiek', gen='wieku', ins='wiekiem', loc='wieku', default = 'wiek'},  
hsb={nom='lětstotk', gen='lětstotka', ins='lětstotkom', loc='lětstotku', default = 'lětstotk'}  
}  
return centuryCase[lang][case] or centuryCase[lang]['default']  
end  

local function decMillennium(lang,case)  
--Declension of word "century" in several languages  
millenniumCase = {  
pl={nom='tysiąclecie', gen='tysiąclecia', ins='tysiącleciem', loc='tysiącleciu', default = 'tysiąclecie'},  
hsb={nom='lěttysac', gen='lěttysaca', ins='lěttysacom', loc='lěttysacu', default = 'lěttysac'}  
}  
return millenniumCase[lang][case] or millenniumCase[lang]['default']  
end  

-- ==========================================================================  
-- === Output data structure ===============================================  
-- ==========================================================================  
local p = {}  

--[[  
Multiple formats are possible:  
1) string with key words "$date1" and "$date2" which will be replaced later by the date strings  
2) function which can be used to create output string  
- Function INPUTS:
- date1 and date2 string with date strings. "$date1" and "$date2" can also be used which will be replaced latter  
- state is a table with full description of the phrase we are trying to construct. It includes state.precision1 (and 2)  
which is wikibase compatible date precision format: 6=millennium, 7=century, 8=decade, 9=year, 10=month, 11=day  
3) table with following fields:  
- table[1] is either string or a function
- table.case is a 2 element table with Grammatical cases used by given language to alter
month name or other adjective related to date # 1 and 2  
p.Translations = {  

-- ==========================================  
-- === Two date phrases =====================  
-- ==========================================  
['from-until'] = {  
nDates = 2,  
ar='من $date1 إلى $date2',  
['be-tarask']={'з $date1 да $date2', case={'gen','gen'}},  
bn='$date1 থেকে $date2 পর্যন্ত',  
ca='$date1 fins $date2',  
ckb='لە $date1 تاوەکوو $date2',  
cs='$date1 až $date2',  
da='fra $date1 til $date2',  
de='$date1 bis $date2',  
el='από $date1 έως $date2',  
en='from $date1 until $date2',  
['en-gb']='from $date1 until $date2',  
['en-ca']='from $date1 until $date2',  
eo='de $date1 al $date2',  
es='de $date1 a $date2',  
et='$date1 kuni $date2',  
fa='از $date1 تا $date2',  
fi='$date1–$date2', -- välisenä aikana  
fr=function(date1, date2, state) -- could actually be better should be "d'octobre à mars 2013' not "de octore 2013 à mars 2013"  
if state.precision > 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='<span>$date1 - $date2</span>',  
},  

['between']={  
nDates = 2,  
ar='بين $date1 و $date2',  
['be-tarask']={'між $date1 і $date2', case={'ins','ins'}},  
bn='$date1 এবং $date2-এর মাঝামাঝি',  
ca='entre $date1 i $date2',  
ckb='لەنێوان $date1 و $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='<span>$date1 - $date2</span>',  
},  

['or'] = {  
nDates = 2,  
ar='$date1 أو $date2',  
['be-tarask']='$date1 ці $date2',  
bn='$date1 অথবা $date2',  
ca='$date1 o $date2',  
ckb='$date1 یان $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',  
ckb='$date1 و $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',  
ckb='نزیکی $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='<span>by $date1</span>',  
},  

['before'] = {  
nDates = 1,  
ar='قبل $date1',  
['be-tarask']={'перад $date1', case={'ins',''}},  
bn='$date1-এর আগে',  
bg='Преди $date1',  
ca='abans $date1',  
ckb='پێش $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='<span>before $date1</span>',  
},  

['from'] = {  
nDates = 1,  
ar='من $date1',  
['be-tarask']={'з $date1', case={'gen',''}},  
bn='$date1 থেকে',  
ckb='لە $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 '.. frOf[state.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='<span>from $date1</span>',  
},  

['until'] = {  
nDates = 1,  
['be-tarask']={'усутыч да $date1', case={'gen',''}},  
bn='$date1 পর্যন্ত',  
ckb='تاوەکوو $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',  
ml='$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='<span>until $date1</span>',  
},  

['after'] = {  
nDates = 1,  
ar='بعد $date1',  
['be-tarask']={'пасьля $date1', case={'gen',''}},  
bn='$date1-এর পরে',  
ca='després de $date1',  
ckb='دوای $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='<span>after $date1</span>',  
},  

-- ==========================================  
-- === Adjectives ===========================  
-- ==========================================  
['early'] = {  
nDates = 1,  
ar='بداية $date1',  
['be-tarask']={'пачатак $date1', case={'gen',''}},  
bn='$date1-এর শুরুতে',  
ca='al principi de $date1',  
ckb='سەرەتای $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='<span>early $date1</span>',  
},  

['mid'] = {  
nDates = 1,  
ar='منتصف $date1',  
['be-tarask']={'сярэдзіна $date1', case={'gen',''}},  
bn='$date1-এর মাঝামাঝি',  
ca='a mitjan $date1',  
ckb='ناوەڕاستی $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='<span>mid $date1</span>',  
},  

['late'] = {  
nDates = 1,  
ar='نهاية $date1',  
bn='$date1-এর শেষে',  
['be-tarask']={'канец $date1', case={'gen',''}},  
ca='al final de $date1',  
ckb='کۆتاییی $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='<span>late $date1</span>',  
},  

['circa'] = {  
nDates = 1,  
ar='حوالي $date1',  
['be-tarask']={'каля $date1', case={'gen',''}},  
bn='প্রায় $date1',  
ckb='بەنزیکی $date1',  
ca='cap a $date1',  
cs='cca $date1',  
da='ca. $date1',  
de='etwa $date1',  
el='περ. $date1',  
en='c. $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'  
ml= 'ഉദ്ദേശം $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='<span>circa $date1</span>',  
},  

['uncertain'] = {  
nDates = 1,  
['zh-hans']='$date1（？）',  
['zh-hant']='$date1（？）',  
default='$date1 (?)',  
},  

probably = { -- see Q56644435  
nDates = 1,  
ast = 'probablemente $date1',  
bn = 'সম্ভবত $date1',  
ca = 'probablement $date1',  
ckb = 'لەوانەیە $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',  
ml = 'ഒരുപക്ഷേ $date1',  
nl = 'waarschijnlijk $date1',  
pl = 'prawdopodobnie $date1',  
pt = 'provavelmente $date1',  
ru = 'вероятно $date1',  
sv = 'antagligen $date1',  
uk = 'ймовірно $date1',  
default='<span>probably $date1</span>',  
},  

possibly = { -- see Q30230067  
nDates = 1,  
ast = 'posiblemente $date1',  
bn = 'যথাসম্ভব $date1',  
ckb = 'لەوانەیە $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',  
ml = 'മിക്കവാറും $date1',  
nl = 'mogelijk $date1',  
pl = 'być może $date1',  
pt = 'possivelmente $date1',  
ro = 'poate $date1',  
ru = 'возможно $date1',  
sv = 'möjligen $date1',  
uk = 'можливо $date1',  
default='<span>possibly $date1</span>',  
},  

presumably = { -- see Q18122778  
nDates = 1,  
ast = 'presumiblemente $date1',  
ckb = 'دەشێت $date1',  
de = 'vermutlich $date1',  
en = 'presumably $date1',  
['en-gb']='presumably $date1',  
['en-ca']='presumably $date1',  
fr = 'présumé $date1',  
it = 'presumibilmente $date1',  
ml = 'ഊഹപ്രകാരം $date1',  
ru = 'предположительно $date1',  
pl = 'przypuszczalnie $date1',  
uk = 'здогадно $date1',  
default='<span>presumably $date1</span>',  
},  

['year unknown']= {  
nDates = 0,  
ca='Any desconegut',  
['be-tarask']='Год невядомы',  
bn='অজানা বছর',  
ckb='ساڵی نەزاندراو',  
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='<span>year unknown</span>',  
},  

-- ==========================================  
-- === Parts of a whole =====================  
-- ==========================================  
['firsthalf'] = {  
nDates = 1,  
ar='النصف الأول من $date1',  
['be-tarask']={'першая палова $date1', case={'gen',''}},  
bn='$date1-এর প্রথমার্ধ',  
ca='1a meitat de $date1',  
ckb='نیوەی یەکەمی $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='1<sup>re</sup> 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='<span>first half of $date1</span>',  
},  

['secondhalf'] = {  
nDates = 1,  
ar='النصف الثاني من $date1',  
['be-tarask']={'другая палова $date1', case={'gen',''}},  
bn='$date1-এর দ্বিতীয়ার্ধ',  
ca='2a meitat de $date1',  
ckb='نیوەی دووەمی $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='2<sup>e</sup> 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 $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='<span>second half of $date1</span>',  
},  

['1quarter']= {  
nDates = 1,  
bn='$date1-এর প্রথম ত্রৈমাসিক',  
['be-tarask']={'першая чвэрць $date1', case={'gen',''}},  
ckb='چارەکی یەکەمی $date1',  
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 '.. frOf[state.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四半期',  
ml='$date1 ഒന്നാം ത്രൈമാസം',  
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 $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='<span>first quarter of $date1</span>',  
},  

['2quarter']= {  
nDates = 1,  
['be-tarask']={'другая чвэрць $date1', case={'gen',''}},  
bn='$date1-এর দ্বিতীয় ত্রৈমাসিক',  
ckb='چارەکی دووەمی $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 '.. frOf[state.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四半期',  
ml='$date1 രണ്ടാം ത്രൈമാസം',  
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='<span>second quarter of $date1</span>',  
},  

['3quarter']= {  
nDates = 1,  
['be-tarask']={'трэцяя чвэрць $date1', case={'gen',''}},  
bn='$date1-এর তৃতীয় ত্রৈমাসিক',  
ckb='چارەکی سێیەمی $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 '.. frOf[state.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四半期',  
ml='$date1 മൂന്നാം ത്രൈമാസം',  
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='<span>third quarter of $date1</span>',  
},  

['4quarter']= {  
nDates = 1,  
['be-tarask']={'чацьвёртая чвэрць $date1', case={'gen',''}},  
bn='$date1-এর চতুর্থ ত্রৈমাসিক',  
ckb='چارەکی چوارەمی $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 '.. frOf[state.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四半期',  
ml='$date1 നാലാം ത്രൈമാസം',  
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='<span>forth quarter of $date1</span>',  
},  

-- ==========================================  
-- === Seasons ==============================  
-- ==========================================  
['spring'] = {  
nDates = 1,  
ar='ربيع $date1',  
['be-tarask']='вясна $date1',  
bn='বসন্তকাল $date1',  
ca='primavera $date1',  
ckb='بەھاری $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='春',  
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']='春季',  
['zh-hant']='春季',  
default='<span>Spring $date1</span>',  
},  

['summer'] = {  
nDates = 1,  
ar='صيف $date1',  
['be-tarask']='лета $date1',  
bn='গ্রীষ্মকাল $date1',  
ca='estiu $date1',  
ckb='ھاوینی $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='夏',  
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']='夏季',  
['zh-hant']='夏季',  
default='<span>Summer $date1</span>',  
},  

['autumn'] = {  
nDates = 1,  
ar='خريف $date1',  
['be-tarask']='восень $date1',  
bn='শরত্কাল $date1',  
ca='tardor $date1',  
ckb='پاییزی $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='秋',  
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']='秋季',  
['zh-hant']='秋季',  
default='<span>Autumn $date1</span>',  
},  

['winter'] = {  
nDates = 1,  
ar='شتاء $date1',  
['be-tarask']='зіма $date1',  
bn='শীতকাল $date1',  
ca='hivern $date1',  
ckb='زستانی $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='冬',  
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']='冬季',  
['zh-hant']='冬季',  
default='<span>Winter $date1</span>',  
},  

-- ==========================================  
-- === Decade/Century/Millennium ============  
-- ==========================================  
['decade'] = {  
nDates = 1,  
ar='أعوام $date1',  
['be-tarask']='$date1-я гады',  
bn='$date1-এর দশক',  
ca='dècada del $date1',  
ckb='دەیەی $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-talet',  
uk='$date1-ті роки',  
ur='دہائی $date1',  
vi='thập niên $date1',  
['zh-hans']='$date1年代',  
['zh-hant']='$date1年代',  
default='<span>$date1s</span>',  
},  

['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 ',  
ckb='سەدەی $date1',  
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='<span>$date1 century</span>',  
},  

['millennium'] = {  
nDates = 1,  
['be-tarask']=function(date1, state) return Ordinal(date1, 'be-tarask') .. ' тысячагодзьдзе' end,  
bn=function(date1, state) return Ordinal(date1, 'bn') .. ' সহস্রাব্দ' end,  
ckb=function(date1, state) return 'ھەزارەی ' .. Ordinal(date1, 'ckb') 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',  
ml='$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='',  
default='<span>$date1 millennium</span>',  
},  

['million'] = {  
ckb = '$date1 میلیۆن ساڵ',  
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',  
ml = function(date1, state)  
if date1 >= 10 then  
return (date1 / 10) .. ' കോടി വർഷങ്ങൾ' -- 100 lakh = 1 crore  
else  
return (date1 * 10) .. ' ലക്ഷം വർഷങ്ങൾ'  
end  
end,  
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='<span>$date1 million years</span>',  
nDates = 1,  
},  

['billion'] = {  
ckb = '$date1 بیلیۆن ساڵ',  
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',  
ml = function(date1, state) return (date1 * 10) .. ' കോടി വർഷങ്ങൾ' end,  
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='<spandefault" 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,  
ckb=function(date1, date2, state) return 'سەردەمی $date1/' .. Ordinal(date2, 'ckb') .. ' سەدە' 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世紀への変わり目',  
ml='$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 < date2 then  
return "přelom 1. a 2. dekády " .. century1 .. ". století"  
elseif decade2 == 0 and date2 < date1 then  
return "přelom 9. a 10. dekády " .. century1 .. ". století"  
elseif (decade1 == 9 and date1 < date2) or (decade2 == 9 and date2 < date1) then  
return "přelom " .. century1 .. ". a " .. century2 .. ". století"  
else  
return "přelom " .. decade1 .. "0. a " .. decade2 .. "0. let " .. century1 .. ". století"  
end  
end,  
de='späte $date1er und frühe $date2er',  
ckb='کۆتایییەکانی $date1 و سەرەتاکانی $date2',  
en='late $date1s and early $date2s',  
['en-gb']='late $date1s and early $date2s',  
['en-ca']='late $date1s and early $date2s',  
eo='ŝanĝo de la $date1-a al la $date2-a jardekoj',  
es='finales de los años $date1 y principios de los años $date2',  
fa='اواخر دههٔ $date1 و اوایل دههٔ $date2',  
fi='$date1-luvun loppu ja $date2-luvun alku',  
fr='fin des années $date1 / début des années $date2',  
hr='kraj $date1-ih i početak $date2-ih',  
hsb='pózdnje $date1te a zažne $date2te lěta',  
it='fine degli anni $date1 / inizio degli anni $date2',  
ja='$date1年代末から$date2年代初頭',  
ml='$date1കൾ അവസാനവും $date2കൾ ആദ്യവും',  
nb = 'sent på $date1-tallet og tidlig på $date2-tallet',  
nl = 'eind $date1e/begin $date2e decennium',  
nn = 'seint på $date1-talet og tidleg på $date2-talet',  
pl=function(date1, date2, state)  
local decade1 = math.floor(date1 % 100)  
local decade2 = math.floor(date2 % 100)  
local century1 = Roman(math.floor( date1 / 100) + 1)  
local century2 = Roman(math.floor( date2 / 100) + 1)  
if decade1 == 0 and date1 < date2 then  
return "przełom pierwszej i drugiej dekady " .. century1 .. " wieku"  
elseif decade1 == 10 and date1 < date2 then  
return "przełom drugiej dekady i lat 20. " .. century1 .. " wieku"  
elseif decade1 == 90 and decade2 == 0 then  
return "przełom ostatniej dekady " .. century1 .. " i pierwszej dekady " .. century2 .. " wieku"  
else  
return "przełom lat " .. decade1 .. ". i " .. decade2 .. ". " .. century1 .. " wieku"  
end  
end,  
qu='qhipaq $date1 watakuna ñawpaq $date2 watakunapas',  
ru='конец $date1-х — начало $date2-х гг.',  
sv='sena $date1-talet och tidiga $date2-talet',  
sk=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 < date2 then  
return "prelom 1. a 2. desaťročia " .. century1 .. ". storočia"  
elseif decade2 == 0 and date2 < date1 then  
return "prelom 9. a 10. desaťročia " .. century1 .. ". storočia"  
elseif (decade1 == 9 and date1 < date2) or (decade2 == 9 and date2 < date1) then  
return "prelom " .. century1 .. ". a " .. century2 .. ". storočia"  
else  
return "prelom " .. decade1 .. "0. a " .. decade2 .. "0. rokov " .. century1 .. ". storočia"  
end  
end,  
sl='pozna $date1-ta in zgodnja $date2-ta leta',  
uk='кінець $date1-х — початок $date2-х рр.',  
ur='اخیر دہائی $date1 و ابتدا دہائی $date2',  
vi='bước sang thập niên $date2',  
['zh-hans']='$date1年代末$date2年代初',  
['zh-hant']='$date1年代末$date2年代初',  
default=function(date1, date2, state) return {conj='and', adj1 = 'late', unit1='decade', era1=state.era1, adj2 = 'early', unit2='decade', era2=state.era2} end,  
},  

-- $date1 - original date - 1  
-- $date2 - original date  
-- if era is BC than $date1 and $date2 are swapped  
['turn of the year']={  
nDates = 2,  
['be-tarask']='канец $date1 — пачатак $date2 г.',  
bn='$date1-এর শেষে এবং $date2-এর শুরুতে',  
ckb='کۆتاییی $date1 و سەرەتای $date2',  
cs='přelom roku $date1/$date2',  
de='Jahreswechsel $date1/$date2',  
en='late $date1 and early $date2',  
['en-gb']='late $date1 and early $date2',  
['en-ca']='late $date1 and early $date2',  
eo='jarŝanĝo $date1 / $date2',  
es='finales de $date1 y principios de $date2',  
fa='اواخر $date1 و اوایل $date2',  
fi='vuoden $date1 loppu ja vuoden $date2 alku',  
fr='fin $date1 / début $date2',  
hsb='kónc $date1/spočatk $date2',  
ja='$date1年末から$date2年初め',  
ml='$date1 അവസാനവും $date2 ആദ്യവും',  
nb='årsskiftet $date1/$date2',  
nl='eind $date1 en begin $date2',  
nn='årsskiftet $date1/$date2',  
pl='koniec $date1 i początek $date2 roku',  
qu="$date1 qhipaq p'unchawkuna $date2 ñawpaq p'unchawkunapas",  
ru='конец $date1 — начало $date2 г.',  
sk='prelom rokov $date1/$date2',  
sl='konec leta $date1 in začetek $date2',  
sv='sena $date1 och tidiga $date2',  
uk='кінець $date1 — початок $date2 р.',  
ur='اخیر $date1 و ابتدا $date2',  
vi='bước sang năm $date2',  
['zh-hans']='$date1年末$date2年初',  
['zh-hant']='$date1年末$date2年初',  
default=function(date1, date2, state) return {conj='and', adj1 = 'late', unit1='year', era1=state.era1, adj2 = 'early', unit2='year', era2=state.era2} end,  
},  

['circa2'] = {  
nDates = 2,  
ar='حوالي $date1 – $date2',  
['be-tarask']={'прыкладна з $date1 да прыкладна $date2', case={'gen','gen'}},  
bn='প্রায় $date1 এবং প্রায় $date2-এর মাঝামাঝি',  
ca='cap a $date1 o $date2',  
ckb='بە نزیکی لەنێوان $date1 و $date2',  
cs='cca $date1 až $date2',  
da='ca. mellem $date1 og $date2',  
de='etwa $date1 bis $date2',  
el='περίπου μεταξύ $date1 και $date2',  
en='between c. $date1 and c. $date2',  
['en-gb']='between circa $date1 and circa $date2',  
['en-ca']='between circa $date1 and circa $date2',  
eo='proksimume de $date1 ĝis $date2',  
es='hacia $date1 o $date2',  
et='ca. $date1 ja $date2 vahel',  
fa='حدوداً بین $date1 و $date2',  
fi={function(date1, date2, state) return 'suunnilleen ' .. decYear(state,'fi','xxx') .. '$date1 ja $date2 välisenä aikana' end, case={'gen','gen'}},  
fr='vers $date1-$date2',  
gl='entre $date1 e $date2',  
he='בסביבות ה- $date1 עד $date2',  
hr='oko između $date1 i $date2',  
hsb={'wot něhdźe $date1 do něhdźe $date2', case={'gen','gen'}},  
hu='$date1 és $date2 között',  
it='tra il $date1 e il $date2 circa',  
ja='$date1頃と$date2頃の間',  
mk='~ помеѓу $date1 и $date2',  
ml='ഉദ്ദേശം $date1-നും ഉദ്ദേശം $date2-നും ഇടയ്ക്ക്',  
nb='ca. mellom $date1 og $date2',  
nn='ca. mellom $date1 og $date2',  
nds='üm un bi $date1 bet $date2',  
nl='ca. $date1 tot $date2',  
no='ca. mellom $date1 og $date2',  
pl={'od około $date1 do około $date2', case={'gen','gen'}},  
pt='cerca de $date1 a $date2',  
qu="$date1 p'unchawmantachá $date2 p'unchawkamachá",  
ro='circa $date1 – $date2',  
ru={'с около $date1 до, примерно, $date2', case={'gen','gen'}},  
sk='cca $date1 až $date2',  
sl={function(date1, date2, state) return 'ok. ' .. decYear(state,'sl','gen') .. ' $date1 do $date2' end, case={'gen','gen'}},  
sv='c:a $date1 till $date2',  
uk={'з близько $date1 до, приблизно, $date2', case={'gen','gen'}},  
ur='قریباً بین $date1 و $date2',  
vi='giữa vào khoảng $date1 và vào khoảng $date2',  
['zh-hans']='约$date1~$date2间',  
['zh-hant']='約$date1~$date2間',  
default=function(date1, date2, state) return {conj='between', adj1 = 'circa', unit1=state.unit1, era1=state.era1, adj2 = 'circa', unit2=state.unit2, era2=state.era2} end,  
},  

-- ==========================================  
-- === Eras and calendars ===================  
-- ==========================================  
['julian'] = {  
nDates = 2,  
ar='$date1 ($date2 حسب تقويم يولياني)',  
['be-tarask']='$date1 ($date2 паводле ст. ст.',  
bn='$date1 (জুলিয়ান ক্যালেন্ডারে $date2)',  
ca='$date1 ($date2 segons el calendari julià)',  
ckb='$date1 ($date2 بەپێی ڕۆژژمێری جولیانی)',  
cs='$date1 ($date2 podle juliánského kalendáře)',  
da='$date1 ($date2 Julianske kalender)',  
de='$date1 ($date2 Julianischer Kalender)',  
el='$date1 ($date2 με το Ιουλιανό ημερολόγιο)',  
en='$date1 ($date2 in Julian calendar)',  
['en-gb']='$date1 ($date2 in Julian calendar)',  
['en-ca']='$date1 ($date2 in Julian calendar)',  
fa='$date1 ($date2 در تقویم جولیان)',  
eo='$date1 ($date2 laŭ la Julia Kalendaro)',  
es='$date1 ($date2 según el calendario juliano)',  
et='$date1 ($date2 Juliuse kalendris)',  
fi='$date1 ($date2 juliaanisen kalenterin mukaan)',  
fr='$date1 ($date2 dans le calendrier julien)',  
gl='$date1 ($date2 segundo o calendario xuliano)',  
hu='$date1 ($date2 a Julián naptárban)',  
hr='$date1 ($date2 prema julijanskom kalendaru)',  
he='$date1 ($date2 בהלוח היוליאני)',  
hsb='$date1 ($date2 po julianiskej protyce)',  
it='$date1 ($date2 secondo il calendario giuliano)',  
ja='$date1（ユリウス暦 $date2）',  
mk='$date1 ($date2 по Јулијанскиот календар)',  
ml='$date1 (ജൂലിയൻ വർഷത്തിൽ $date2)',  
ml='$date1 (ജൂലിയൻ കാലഗണനാരീതിയിൽ $date2)',  
nds='$date1 ($date2 na’n Juliaanschen Klenner)',  
nb='$date1 ($date2 etter den julianske kalenderen)',  
nn='$date1 ($date2 etter den julianske kalenderen)',  
nl='$date1 ($date2 volgens de Juliaanse kalender)',  
no='$date1 ($date2 etter den julianske kalender)',  
pl='$date1 ($date2 wedle kalendarza juliańskiego)',  
pt='$date1 ($date2 no calendário juliano)',  
qu='$date1 ($date2 Hulyanu kalindaryupi)',  
ro='$date1 ($date2 în calendarul iulian)',  
ru='$date1 ($date2 по ст. ст.)',  
sk='$date1 ($date2 podľa juliánskeho kalendára)',  
sl='$date1 ($date2 po julijanskem koledarju)',  
sv='$date1 ($date2 gamla stilen)',  
uk='$date1 ($date2 Юліанський календар)',  
ur='$date1 ($date2 حسب جولین تقویم)',  
vi='$date1 ($date2 trong lịch Juliêng)',  
['zh-hans']='$date1（格里历$date2）',  
['zh-hant']='$date1（格里曆$date2）',  
default='<span>$date1 ($date2 in Julian calendar)</span>',  
},  

['ad'] = {  
nDates = 1,  
['be-tarask']='$date1 пасьля Н. Х.',  
bn ='$date1 খ্রিস্টাব্দ',  
ca ='$date1 dC',  
ckb ='$date1 پاز',  
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='<span>$date1 AD</span>',  
},  

['ah'] = {  
nDates = 1,  
['be-tarask']='$date1 хіджры',  
bn ='$date1 হিজরী',  
ckb ='$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',  
ml ='$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='<span>$date1 AH</span>',  
},  

['bc'] = {  
nDates = 1,  
ar ='$date1 ق.م.',  
['be-tarask']='$date1 да Н. Х.',  
bn ='খ্রিস্টপূর্ব $date1',  
ca ='$date1 aC',  
ckb ='$date1 پز',  
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='<span>$date1 BC</span>',  
},  

['bp'] = {  
nDates = 1,  
ar ='$date1 قبل الحاضر',  
be ='$date1 Да нашых дзён',  
['be-tarask']='$date1 Да нашых дзён',  
bn ='বর্তমানের আগে $date1',  
ca ='$date1 BP',  
ckb ='$date1 پێش ئێستا',  
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='<span>$date1 BP</span>',  
},  
}  

-- 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'},  
['<']={'before','a'},  
['b']={'before','a'},  
['before']={'before','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