local p = {}
--[[ Different languages use different date formats, and many formats are shared among whole families of languages.
"DateLang" picks a cluster of languages associated with a single date format, based on the language to be used.
All unlisted languages default to English form. Languages like "de-formal" follows regular language fallback chain
and would default to German, and only if that does not exist then to English.
]]
p.DateLang = {
['be'] = 'ru-form', -- Belarusian
['be-tarsk'] = 'ru-form', -- Belarusian (Tara۫ievica)
['bn'] = 'bn-form', -- Bengali
['bpy'] = 'bpy-form', -- Bishnupuriya Manipuri
['cs'] = 'cs-form', -- Czech
['da'] = 'de-form', -- Danish
['de'] = 'de-form', -- German
['el'] = 'ru-form', -- Greek
['en'] = 'en-form', -- English
['eo'] = 'eo-form', -- Esperanto
['es'] = 'es-form', -- Spanish
['et'] = 'de-form', -- Estonian
['fa'] = 'en-form', -- Persian
['fi'] = 'fi-form', -- Finnish
['fr'] = 'fr-form', -- French
['ga'] = 'ga-form', -- Gallic
['gl'] = 'es-form', -- Galician based on https://translatewiki.net/wiki/MediaWiki:Pagetriage-info-timestamp-date-format/gl
['hi'] = 'en-form', -- Hindi
['he'] = 'ru-form', -- Hebrew
['hr'] = 'hr-form', -- Croatian
['hu'] = 'hu-form', -- Hungarian
['hsb'] = 'cs-form', -- Upper Sorbian
['ia'] = 'ia-form', -- Interlingua
['is'] = 'de-form', -- Icelandic
['ja'] = 'zh-form', -- Japanese
['kn'] = 'bn-form', -- Kannada
['ko'] = 'ko-form', -- Korean
['lt'] = 'lt-form', -- Lithuanian
['lv'] = 'lv-form', -- Latvian
['mk'] = 'en-form', -- Macedonian
['ml'] = 'ml-form', -- Malayalam
['mr'] = 'mr-form', -- Marathi
['new'] = 'new-form', -- Newari
['nn'] = 'de-form', -- Norwegian Nynorsk
['no'] = 'de-form', -- Norwegian (bokm欩
['oc'] = 'oc-form', -- Occitan
['pa'] = 'en-form', -- Punjabi
['pl'] = 'ru-form', -- Polish
['pt'] = 'es-form', -- Portuguese
['qu'] = 'qu-form', -- Quechua based on https://translatewiki.net/wiki/MediaWiki:Pagetriage-info-timestamp-date-format/qu
['qug'] = 'qug-form', -- Kichwa based on Template_talk:Date#Kichwa_.5Bqug.5D
['ru'] = 'ru-form', -- Russian
['sl'] = 'sl-form', -- Slovene
['sr'] = 'hr-form', -- Serbian
['th'] = 'th-form', -- Thai solar calendar
['vi'] = 'vi-form', -- Vietnamese
['zh-hans'] = 'zh-form', -- Chinese
}
--[[ Date format parameter which will be passed to {{#time:}} parser function.
It depends on the language and which parts of the date need to be displayed.
Different forms are:
* YMDHMS = stands for YYYY:MM:DD, HH:MM:SS format or equivalent
* YMDHM = stands for YYYY:MM:DD, HH:MM format or equivalent
* YMD = stands for YYYY:MM:DD format or equivalent
* YM = stands for YYYY:MM (year-month) format or equivalent
* MD = stands for MM:DD (month-day) format or equivalent
* Y = stands for YYYY (year only) format or equivalent
* M = stands for month name only
See https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions#.23time for documentation
Original set was developed to match the output of the pre-Lua {{date}} template, preserved as {{date/old}}
]]
p.DateFormat = {
-- day/month/year languages
['en-form'] = {
YMDHMS='j F Y, H:i:s',
YMDHM ='j F Y, H:i',
YMD ='j F Y',
YM ='F Y',
MD ='j F',
Y ='Y',
M ='F'
},
['de-form'] = {
YMDHMS='j. F Y, H:i:s',
YMDHM ='j. F Y, H:i',
YMD ='j. F Y',
YM ='F Y',
MD ='j. F',
Y ='Y',
M ='F'
},
['hr-form'] = {
YMDHMS='j. F Y., H:i:s',
YMDHM ='j. F Y., H:i',
YMD ='j. F Y.',
YM ='F Y.',
MD ='j. F',
Y ='Y.',
M ='F'
},
['ml-form'] = {
YMDHMS='j F Y, H:i:s',
YMDHM ='j F Y, H:i',
YMD ='j F Y',
YM ='F Y',
MD ='F j',
Y ='Y',
M ='F'
},
['th-form'] = {
YMDHMS='j F "พ.ศ." xkY, H:i:s',
YMDHM ='j F "พ.ศ." xkY, H:i',
YMD ='j F "พ.ศ." xkY',
YM ='F "พ.ศ." xkY',
MD ='j F',
Y ='"พ.ศ." xkY',
M ='F'
},
['fi-form'] = {
YMDHMS='j. F"ta" Y, H:i:s',
YMDHM ='j. F"ta" Y, H:i',
YMD ='j. F"ta" Y',
YM ='F Y',
MD ='j. F"ta"',
Y ='Y',
M ='F'
},
['es-form'] = {
YMDHMS='j "de" F "de" Y, H:i:s',
YMDHM ='j "de" F "de" Y, H:i',
YMD ='j "de" F "de" Y',
YM ='F "de" Y',
MD ='j "de" F',
Y ='Y',
M ='F'
},
['oc-form'] = {
YMDHMS='j F "de" Y, H:i:s',
YMDHM ='j F "de" Y, H:i',
YMD ='j F "de" Y',
YM ='F "de" Y',
MD ='j F',
Y ='Y',
M ='F'
},
['ia-form'] = {
YMDHMS='j "de" F Y, H:i:s',
YMDHM ='j "de" F Y, H:i',
YMD ='j "de" F Y',
YM ='F Y',
MD ='j "de" F',
Y ='Y',
M ='F'
},
['eo-form'] = {
YMDHMS='"la" j"-a de" F Y, H:i:s',
YMDHM ='"la" j"-a de" F Y, H:i',
YMD ='"la" j"-a de" F Y',
YM ='F Y',
MD ='"la" j"-a de" F',
Y ='Y',
M ='F'
},
['vi-form'] = {
YMDHMS='j F "năm" Y "lúc" H:i:s',
YMDHM ='j F "năm" Y "lúc" H:i',
YMD ='j F "năm" Y',
YM ='F "năm" Y',
MD ='j F',
Y ='Y',
M ='F'
},
['qu-form'] = {
YMDHMS='j "ñiqin" F"pi" Y "watapi", H:i:s',
YMDHM ='j "ñiqin" F"pi" Y "watapi", H:i',
YMD ='j "ñiqin" F"pi" Y "watapi"',
YM ='F"pi" Y "watapi"',
MD ='j "ñiqin" F"pi"',
Y ='Y',
M ='F'
},
['qug-form'] = {
YMDHMS='j "niki" F"pi" Y "watapi", H:i:s',
YMDHM ='j "niki" F"pi" Y "watapi", H:i',
YMD ='j "niki" F"pi" Y "watapi"',
YM ='F"pi" Y "watapi"',
MD ='j "niki" F"pi"',
Y ='Y',
M ='F'
},
-- French and Gallic languages require different form for first day of the month and
-- different for the other days
['fr-form'] = {
YMDHMS='j F Y, H:i:s',
YMDHM ='j F Y, H:i',
YMD ='j F Y',
YM ='F Y',
MD ='j F',
Y ='Y',
M ='F'
},
['ga-form'] = {
YMDHMS='j F Y, H:i:s',
YMDHM ='j F Y, H:i',
YMD ='j F Y',
YM ='F Y',
MD ='j F',
Y ='Y',
M ='F'
},
['fr-form1'] = { -- 1st of the month form
YMDHMS='j"<sup>er</sup>" F Y, H:i:s',
YMDHM ='j"<sup>er</sup>" F Y, H:i',
YMD ='j"<sup>er</sup>" F Y',
YM ='F Y',
MD ='j"<sup>er</sup>" F',
Y ='Y',
M ='F'
},
['ga-form1'] = { -- 1st of the month form
YMDHMS='j"<sup>ú</sup>" F Y, H:i:s',
YMDHM ='j"<sup>ú</sup>" F Y, H:i',
YMD ='j"<sup>ú</sup>" F Y',
YM ='F Y',
MD ='j"<sup>ú</sup>" F',
Y ='Y',
M ='F'
},
-- day/month/year slavic languages
['ru-form'] = {
YMDHMS='j xg Y, H:i:s',
YMDHM ='j xg Y, H:i',
YMD ='j xg Y',
YM ='F Y',
MD ='j xg',
Y ='Y',
M ='F'
},
['cs-form'] = {
YMDHMS='j. xg Y, H:i:s',
YMDHM ='j. xg Y, H:i',
YMD ='j. xg Y',
YM ='F Y',
MD ='j. xg',
Y ='Y',
M ='F'
},
['sl-form'] = {
YMDHMS='j. xg Y "ob" H:i:s',
YMDHM ='j. xg Y "ob" H:i',
YMD ='j. xg Y',
YM ='F Y',
MD ='j. xg',
Y ='Y',
M ='F'
},
-- year/month/day languages
['zh-form'] = {
YMDHMS='Y年Fj日, H:i:s',
YMDHM ='Y年Fj日, H:i',
YMD ='Y年Fj日',
YM ='Y年F',
MD ='Fj日',
Y ='Y年',
M ='F'
},
['ko-form'] = {
YMDHMS='Y년 F j일, H:i:s',
YMDHM ='Y년 F j일, H:i',
YMD ='Y년 F j일',
YM ='Y년 F',
MD ='F j일',
Y ='Y년',
M ='F'
},
['hu-form'] = {
YMDHMS='Y. F j., H:i:s',
YMDHM ='Y. F j., H:i',
YMD ='Y. F j.',
YM ='Y. F',
MD ='F j.',
Y ='Y',
M ='F'
},
['lt-form'] = {
YMDHMS='Y "m". F j "d"., H:i:s',
YMDHM ='Y "m". F j "d"., H:i',
YMD ='Y "m". F j "d".',
YM ='Y "m". F',
MD ='F j "d".',
Y ='Y "m".',
M ='F'
},
-- year/day/month languages
['lv-form'] = {
YMDHMS='Y". gada" j. F, H:i:s',
YMDHM ='Y". gada" j. F, H:i',
YMD ='Y". gada" j. F',
YM ='Y". gada" F',
MD ='j. F',
Y ='Y". gada"',
M ='F'
},
-- month/day/year languages
['bn-form'] = {
YMDHMS='F j, Y, H:i:s',
YMDHM ='F j, Y, H:i',
YMD ='F j, Y',
YM ='F, Y',
MD ='F j',
Y ='Y',
M ='F'
},
['bpy-form']= {
YMDHMS='F j, মারি Y, H:i:s',
YMDHM ='F j, মারি Y, H:i',
YMD ='F j, মারি Y',
YM ='F, মারি Y',
MD ='F j',
Y ='মারি Y',
M ='F'
},
['mr-form'] = {
YMDHMS='F j, इ.स. Y, H:i:s',
YMDHM ='F j, इ.स. Y, H:i',
YMD ='F j, इ.स. Y',
YM ='F, इ.स. Y',
MD ='F j',
Y ='इ.स. Y',
M ='F'
},
['new-form']= {
YMDHMS='F j, ई सं Y, H:i:s',
YMDHM ='F j, ई सं Y, H:i',
YMD ='F j, ई सं Y',
YM ='F, ई सं Y',
MD ='F j',
Y ='ई सं Y',
M ='F'
},
}
return p