Module:I18n/complex date: Difference between revisions

m
1 revision imported
m (1 revision imported)
m (1 revision imported)
 
Line 11: Line 11:
*Jarekt
*Jarekt
]]
]]
-- ==========================================================================
-- ===  External modules and functions (use Lazy loading) ===================
-- ==========================================================================


local function Ordinal(...)
local function Ordinal(...)
    -- Name of the Module:
return require('Module:Ordinal-cd')._Ordinal(...)
-- * Module:Ordinal    - on Commons and Wikidata
-- * Module:Ordinal-cd - on English Wikipedia
return require('Module:Ordinal')._Ordinal(...)
end
end
local function Roman(...)
local function Roman(...)
    -- Name of the Module:
return require('Module:Roman-cd')._Numeral(...)
-- * Module:Roman    - on Commons and Wikidata
-- * Module:Roman-cd - on English Wikipedia
return require('Module:Roman')._Numeral(...)
end
 
local function linguistic_of(...)
return require('Module:Linguistic').of(...)
end
 
local function linguistic_conj(...)
return require('Module:Linguistic').conj(...)
end
end


Line 49: Line 30:
--Declension of word "year" in several languages
--Declension of word "year" in several languages
if state.precision == 9 then
if state.precision == 9 then
local yearCase = {
yearCase = {
fi={xxx='vuosien', gen='vuoden', ill='vuoteen', ptv='vuotta', ela='vuodesta', ine='vuonna'},
fi={xxx='vuosien', gen='vuoden', ill='vuoteen', ptv='vuotta', ela='vuodesta', ine='vuonna'},
sl={insP='letoma', ins='letom', gen='leta', loc='letu'},
sl={insP='letoma', ins='letom', gen='leta', loc='letu'},
Line 62: Line 43:
local function decCentury(lang,case)
local function decCentury(lang,case)
--Declension of word "century" in several languages
--Declension of word "century" in several languages
local centuryCase = {
centuryCase = {
pl={nom='wiek', gen='wieku', ins='wiekiem', loc='wieku', default = 'wiek'},
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'}
hsb={nom='lětstotk', gen='lětstotka', ins='lětstotkom', loc='lětstotku', default = 'lětstotk'}
Line 71: Line 52:
local function decMillennium(lang,case)
local function decMillennium(lang,case)
--Declension of word "century" in several languages
--Declension of word "century" in several languages
local millenniumCase = {
millenniumCase = {
pl={nom='tysiąclecie', gen='tysiąclecia', ins='tysiącleciem', loc='tysiącleciu', default = 'tysiąclecie'},
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'}
hsb={nom='lěttysac', gen='lěttysaca', ins='lěttysacom', loc='lěttysacu', default = 'lěttysac'}
Line 78: Line 59:
end
end


local plDeclension = { -- Polish Declensions of some terms
    --          kto? co? (jest)    kogo? czego?(brak) komu? czemu?      kogo? co? (widzę)  kim? czym?        o kim? o czym? (mówię)
century  = {nom='wiek',        gen='wieku',      dat='wiekowi',    acc='wiek',        ins='wiekiem',      loc='wieku'},
millenium = {nom='tysiąclecie', gen='tysiąclecia', dat='tysiącleciu', acc='tysiąclecie', ins='tysiącleciem', loc='tysiącleciu'},
winter    = {nom='zima',        gen='zimy',        dat='zimie',      acc='zimę',        ins='zimą',        loc='zimie'},
spring    = {nom='wiosna',      gen='wiosny',      dat='wiośnie',    acc='wiosnę',      ins='wiosną',      loc='wiośnie'},
summer    = {nom='lato',        gen='lata',        dat='latu',        acc='lato',        ins='latem',        loc='lecie'},
autumn    = {nom='jesień',      gen='jesieni',    dat='jesieni',    acc='jesień',      ins='jesienią',    loc='jesieni'},
years    = {nom='lata',        gen='lat',        dat='latom',      acc='lata',        ins='latami',      loc='latach'}
}
-- ==========================================================================
-- ==========================================================================
-- ===  Output data structure ===============================================
-- ===  Output data structure ===============================================
Line 134: Line 105:
return 'du $date1 au $date2'
return 'du $date1 au $date2'
else -- "DE septebmbre" / "D'octobre"
else -- "DE septebmbre" / "D'octobre"
return linguistic_of(date1, 'fr') .. " à $date2"
return require("Module:Linguistic").of(date1, 'fr') .. " à $date2"
end
end
end,
end,
Line 186: Line 157:
fa='بین $date1 و $date2',
fa='بین $date1 و $date2',
fi={function(date1, date2, state) return decYear(state,'fi','xxx') .. '$date1 ja $date2 välisenä aikana' end, case={'gen','gen'}},
fi={function(date1, date2, state) return decYear(state,'fi','xxx') .. '$date1 ja $date2 välisenä aikana' end, case={'gen','gen'}},
fr = function(date1, date2, state)
fr='entre $date1 et $date2',
-- prepend ‘le’ if precision > month
local prep1 = state.precision1 > 10 and 'le ' or ''
local prep2 = state.precision2 > 10 and 'le ' or ''
return 'entre ' .. prep1 .. '$date1 et ' .. prep2 .. '$date2'
end,
gl='entre $date1 e $date2',
gl='entre $date1 e $date2',
he='בין $date1 ו- $date2',
he='בין $date1 ו- $date2',
Line 272: Line 238:
['zh-hans']='$date1或$date2',
['zh-hans']='$date1或$date2',
['zh-hant']='$date1或$date2',
['zh-hant']='$date1或$date2',
default=function(date1, date2, state) return linguistic_conj({date1, date2}, state.lang, 'or') end,
default=function(date1, date2, state) return require("Module:linguistic").conj({date1, date2}, state.lang, 'or') end,
},  
},  


Line 321: Line 287:
['zh-hans']='$date1和$date2',
['zh-hans']='$date1和$date2',
['zh-hant']='$date1和$date2',
['zh-hant']='$date1和$date2',
default=function(date1, date2, state) return linguistic_conj({date1, date2}, state.lang, 'and') end,
default=function(date1, date2, state) return require("Module:linguistic").conj({date1, date2}, state.lang, 'and') end,
},
},


Line 329: Line 295:
['by'] = {
['by'] = {
nDates = 1,
nDates = 1,
ar='بحلول $date1',
ar='حوالي $date1',
['be-tarask']={'да $date1', case={'gen',''}},
['be-tarask']={'да $date1', case={'gen',''}},
bn='$date1 কর্তৃক',
bn='$date1 কর্তৃক',
Line 475: Line 441:
['until'] = {
['until'] = {
nDates = 1,
nDates = 1,
ar = 'حتى $date1',
['be-tarask']={'усутыч да $date1', case={'gen',''}},
['be-tarask']={'усутыч да $date1', case={'gen',''}},
bn='$date1 পর্যন্ত',
bn='$date1 পর্যন্ত',
Line 721: Line 686:
['circa'] = {
['circa'] = {
nDates = 1,
nDates = 1,
ar='قرابة $date1',
ar='حوالي $date1',
['be-tarask']={'каля $date1', case={'gen',''}},
['be-tarask']={'каля $date1', case={'gen',''}},
bn='প্রায় $date1',
bn='প্রায় $date1',
ckb='بەنزیکی $date1',
ca='cap a $date1',
ca='cap a $date1',
ckb='بەنزیکی $date1',
cs='cca $date1',
cs='cca $date1',
da='ca. $date1',
da='ca. $date1',
de='etwa $date1',
de='etwa $date1',
el='περ. $date1',
el='περ. $date1',
en='circa $date1',
en='c. $date1',
['en-gb']='circa $date1',
['en-gb']='circa $date1',
['en-ca']='circa $date1',
['en-ca']='circa $date1',
Line 785: Line 750:
probably = { -- see Q56644435
probably = { -- see Q56644435
nDates = 1,
nDates = 1,
ar = 'يُحتمل في $date',
ast = 'probablemente $date1',
ast = 'probablemente $date1',
bn = 'সম্ভবত $date1',
bn = 'সম্ভবত $date1',
Line 816: Line 780:
possibly = { -- see Q30230067
possibly = { -- see Q30230067
nDates = 1,
nDates = 1,
ar = 'يُمكن في $date1',
ast = 'posiblemente $date1',
ast = 'posiblemente $date1',
bn = 'যথাসম্ভব $date1',
bn = 'যথাসম্ভব $date1',
Line 861: Line 824:
['year unknown']= {
['year unknown']= {
nDates = 0,
nDates = 0,
ar = 'سنة غير معلومة',
ca='Any desconegut',
['be-tarask']='Год невядомы',
['be-tarask']='Год невядомы',
bn='অজানা বছর',
bn='অজানা বছর',
ca='Any desconegut',
ckb='ساڵی نەزاندراو',
ckb='ساڵی نەزاندراو',
cs='neznámý rok',
cs='neznámý rok',
Line 1,008: Line 970:
['1quarter']= {
['1quarter']= {
nDates = 1,
nDates = 1,
ar = ' الربع الأول من $date1',
bn='$date1-এর প্রথম ত্রৈমাসিক',
bn='$date1-এর প্রথম ত্রৈমাসিক',
['be-tarask']={'першая чвэрць $date1', case={'gen',''}},
['be-tarask']={'першая чвэрць $date1', case={'gen',''}},
Line 1,032: Line 993:
nn='fyrste kvartalet av $date1',
nn='fyrste kvartalet av $date1',
no='første kvartal av $date1',
no='første kvartal av $date1',
--pl={'pierwsza ćwiartka $date1', case={'gen',''}},
pl={'pierwsza ćwiartka $date1', case={'gen',''}},
pl={function(date1, state)
if state.precision == 10 then -- precision == month
return 'pierwszy tydzień $date1'
elseif state.precision == 7 then  -- precision == century
return 'pierwsze ćwierćwiecze $date1'
else
return 'pierwszy kwartał $date1'
end
end, case={'gen',''}},
qu='$date1 ñawpaq ñiqin tawa phatmanpi',
qu='$date1 ñawpaq ñiqin tawa phatmanpi',
ru={'первая четверть $date1', case={'gen',''}},
ru={'первая четверть $date1', case={'gen',''}},
Line 1,058: Line 1,010:
['2quarter']= {
['2quarter']= {
nDates = 1,
nDates = 1,
ar = 'الربع الثاني من $date1',
['be-tarask']={'другая чвэрць $date1', case={'gen',''}},
['be-tarask']={'другая чвэрць $date1', case={'gen',''}},
bn='$date1-এর দ্বিতীয় ত্রৈমাসিক',
bn='$date1-এর দ্বিতীয় ত্রৈমাসিক',
Line 1,082: Line 1,033:
nn='andre kvartalet av $date1',
nn='andre kvartalet av $date1',
no='andre kvartal av $date1',
no='andre kvartal av $date1',
--pl={'druga ćwiartka $date1', case={'gen',''}},
pl={'druga ćwiartka $date1', case={'gen',''}},
pl={function(date1, state)
if state.precision == 10 then -- precision == month
return 'drugi tydzień $date1'
elseif state.precision == 7 then  -- precision == century
return 'druge ćwierćwiecze $date1'
else
return 'drugi kwartał $date1'
end
end, case={'gen',''}},
qu='$date1 iskay ñiqin tawa phatmanpi',
qu='$date1 iskay ñiqin tawa phatmanpi',
ru={'вторая четверть $date1', case={'gen',''}},
ru={'вторая четверть $date1', case={'gen',''}},
Line 1,107: Line 1,049:
['3quarter']= {
['3quarter']= {
nDates = 1,
nDates = 1,
ar = 'الربع الثالث من $date1',
['be-tarask']={'трэцяя чвэрць $date1', case={'gen',''}},
['be-tarask']={'трэцяя чвэрць $date1', case={'gen',''}},
bn='$date1-এর তৃতীয় ত্রৈমাসিক',
bn='$date1-এর তৃতীয় ত্রৈমাসিক',
Line 1,131: Line 1,072:
nn='tredje kvartalet av $date1',
nn='tredje kvartalet av $date1',
no='tredje kvartal av $date1',
no='tredje kvartal av $date1',
--pl={'trzecia ćwiartka $date1', case={'gen',''}},
pl={'trzecia ćwiartka $date1', case={'gen',''}},
pl={function(date1, state)
if state.precision == 10 then -- precision == month
return 'trzeci tydzień $date1'
elseif state.precision == 7 then  -- precision == century
return 'trzecie ćwierćwiecze $date1'
else
return 'trzeci kwartał $date1'
end
end, case={'gen',''}},
qu='$date1 kimsa ñiqin tawa phatmanpi',
qu='$date1 kimsa ñiqin tawa phatmanpi',
sk={'3. štvrtina $date1', case={'gen',''}},
sk={'3. štvrtina $date1', case={'gen',''}},
Line 1,156: Line 1,088:
['4quarter']= {
['4quarter']= {
nDates = 1,
nDates = 1,
ar = 'الربع الرابع من $date1',
['be-tarask']={'чацьвёртая чвэрць $date1', case={'gen',''}},
['be-tarask']={'чацьвёртая чвэрць $date1', case={'gen',''}},
bn='$date1-এর চতুর্থ ত্রৈমাসিক',
bn='$date1-এর চতুর্থ ত্রৈমাসিক',
Line 1,173: Line 1,104:
hsb={'poslednja štwórćina $date1', case={'gen',''}},
hsb={'poslednja štwórćina $date1', case={'gen',''}},
hr='četvrta četvrtina $date1',
hr='četvrta četvrtina $date1',
it='ultimo quarto del $date1',
it='quarto quarto del $date1',
ja='$date1第4四半期',
ja='$date1第4四半期',
ml='$date1 നാലാം ത്രൈമാസം',
ml='$date1 നാലാം ത്രൈമാസം',
Line 1,180: Line 1,111:
nn='tredje kvartalet av $date1',
nn='tredje kvartalet av $date1',
no='fjerde kvartal av $date1',
no='fjerde kvartal av $date1',
--pl={'czwarta ćwiartka $date1', case={'gen',''}},
pl={'czwarta ćwiartka $date1', case={'gen',''}},
pl={function(date1, state)
if state.precision == 10 then -- precision == month
return 'ostatni tydzień $date1'
elseif state.precision == 7 then  -- precision == century
return 'ostatnie ćwierćwiecze $date1'
else
return 'ostatni kwartał $date1'
end
end, case={'gen',''}},
qu='$date1 qhipaq ñiqin tawa phatmanpi',
qu='$date1 qhipaq ñiqin tawa phatmanpi',
ru={'последняя четверть $date1', case={'gen',''}},
ru={'последняя четверть $date1', case={'gen',''}},
Line 1,403: Line 1,325:
['decade'] = {
['decade'] = {
nDates = 1,
nDates = 1,
ar = 'عقد $date1',
ar='أعوام $date1',
['be-tarask']='$date1-я гады',
['be-tarask']='$date1-я гады',
bn='$date1-এর দশক',
bn='$date1-এর দশক',
Line 1,425: Line 1,347:
hr='$date1-ih',
hr='$date1-ih',
hsb='$date1te lěta',
hsb='$date1te lěta',
hu = function(date1, state)
hu='$date1-s évek',
local suffix = 's'
if date1 % 100 == 10 or date1 % 100 == 40 or date1 % 100 == 50 or date1 % 100 == 70 or date1 % 100 == 90 then
suffix = 'es'
elseif date1 % 100 == 20 or date1 % 100 == 30 or date1 % 100 == 60 or date1 % 100 == 80 then
suffix = 'as'
elseif date1 % 100 == 0 then
if date1 % 1000 ~= 0 then
suffix = 'as'
elseif date1 % 1e6 ~= 0 then
suffix = 'es'
end
end
return string.format('%d-%s évek', date1, suffix)
end,
it="{{#ifexpr: $date1 mod 100 = 0 | primo decennio del {{Roman|{{#expr: ($date1 / 100) + 1}}}} sec. | anni '{{#expr: $date1 mod 100 }} del {{Roman|{{#expr: floor($date1 / 100) + 1}}}} sec.}}",
it="{{#ifexpr: $date1 mod 100 = 0 | primo decennio del {{Roman|{{#expr: ($date1 / 100) + 1}}}} sec. | anni '{{#expr: $date1 mod 100 }} del {{Roman|{{#expr: floor($date1 / 100) + 1}}}} sec.}}",
ja='$date1年代',
ja='$date1年代',
Line 1,527: Line 1,435:
['millennium'] = {
['millennium'] = {
nDates = 1,
nDates = 1,
ar = 'الألفية $date1',
['be-tarask']=function(date1, state) return Ordinal(date1, 'be-tarask') .. ' тысячагодзьдзе' end,
['be-tarask']=function(date1, state) return Ordinal(date1, 'be-tarask') .. ' тысячагодзьдзе' end,
bn=function(date1, state) return Ordinal(date1, 'bn') .. ' সহস্রাব্দ' end,
bn=function(date1, state) return Ordinal(date1, 'bn') .. ' সহস্রাব্দ' end,
Line 1,674: Line 1,581:
['be-tarask']='канец $date1-х — пачатак $date2-х гг.',
['be-tarask']='канец $date1-х — пачатак $date2-х гг.',
bn='$date1-এর দশকের শেষে এবং $date2-এর দশকের শুরুতে',
bn='$date1-এর দশকের শেষে এবং $date2-এর দশকের শুরুতে',
ckb='کۆتایییەکانی $date1 و سەرەتاکانی $date2',
cs=function(date1, date2, state)
cs=function(date1, date2, state)
local decade1  = math.floor((date1 % 100) / 10)
local decade1  = math.floor((date1 % 100) / 10)
Line 1,691: Line 1,597:
end,
end,
de='späte $date1er und frühe $date2er',
de='späte $date1er und frühe $date2er',
ckb='کۆتایییەکانی $date1 و سەرەتاکانی $date2',
en='late $date1s and early $date2s',
en='late $date1s and early $date2s',
['en-gb']='late $date1s and early $date2s',
['en-gb']='late $date1s and early $date2s',
Line 1,789: Line 1,696:
['circa2'] = {
['circa2'] = {
nDates = 2,
nDates = 2,
ar='بين $date1 – $date2',
ar='حوالي $date1 – $date2',
['be-tarask']={'прыкладна з $date1 да прыкладна $date2', case={'gen','gen'}},
['be-tarask']={'прыкладна з $date1 да прыкладна $date2', case={'gen','gen'}},
bn='প্রায় $date1 এবং প্রায় $date2-এর মাঝামাঝি',
bn='প্রায় $date1 এবং প্রায় $date2-এর মাঝামাঝি',
Line 1,798: Line 1,705:
de='etwa $date1 bis $date2',
de='etwa $date1 bis $date2',
el='περίπου μεταξύ $date1 και $date2',
el='περίπου μεταξύ $date1 και $date2',
en='between circa $date1 and circa $date2',
en='between c. $date1 and c. $date2',
['en-gb']='between circa $date1 and circa $date2',
['en-gb']='between circa $date1 and circa $date2',
['en-ca']='between circa $date1 and circa $date2',
['en-ca']='between circa $date1 and circa $date2',