mirror of
https://github.com/facebook/duckling.git
synced 2024-09-11 21:27:13 +03:00
Translated all computed holidays from English into German and added HolidayHelpers to reduce code duplication.
Summary: Added German langauage support for all computed holidays currently supported in English. Also created HolidayHelpers, which contains more complex holiday calculations used across languages. Reviewed By: patapizza Differential Revision: D17386163 fbshipit-source-id: 9dd88f8b0d699e5d7254a5ba7114bfa01b15176a
This commit is contained in:
parent
71e1b9760d
commit
4218897f64
File diff suppressed because it is too large
Load Diff
@ -689,4 +689,438 @@ allExamples = concat
|
||||
[ "am vierten Dezember"
|
||||
, "der vierte Dezember"
|
||||
]
|
||||
, examples (datetimeHoliday (2014, 1, 31, 0, 0, 0) Day "Chinesisches Neujahr")
|
||||
[ "Chinesisches Neujahr"
|
||||
, "Chinesisches Frühlingsfest"
|
||||
, "Chinesisches Neujahrsfest"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 2, 16, 0, 0, 0) Day "Chinesisches Neujahr")
|
||||
[ "Chinesisches Neujahr 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 9, 18, 0, 0, 0) Day "Jom Kippur")
|
||||
[ "Jom Kippur 2018"
|
||||
, "Yom Kippur 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 9, 30, 0, 0, 0) Day "Schmini Azeret")
|
||||
[ "Schmini Azeret 2018"
|
||||
, "Schemini Azeret 2018"
|
||||
, "Shemini Atzeret 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 10, 1, 0, 0, 0) Day "Simchat Torah")
|
||||
[ "simchat torah 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 7, 21, 0, 0, 0) Day "Tisha B'Av")
|
||||
[ "tisha b'av 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 4, 18, 0, 0, 0) Day "Jom Ha'atzmaut")
|
||||
[ "Jom Haatzmaut 2018"
|
||||
, "Yom Haatzmaut 2018"
|
||||
, "Yom Ha'atzmaut 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2017, 5, 13, 0, 0, 0) Day "Lag BaOmer")
|
||||
[ "Lag BaOmer 2017"
|
||||
, "Lag LaOmer 2017"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 4, 11, 0, 0, 0) Day "Jom HaShoah")
|
||||
[ "Jom HaShoah 2018"
|
||||
, "Yom HaShoah 2018"
|
||||
, "Holocaustgedenktag 2018"
|
||||
, "Holocaust-Gedenktag 2018"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((2018, 9, 9, 0, 0, 0), (2018, 9, 12, 0, 0, 0)) Day "Rosch haSchana")
|
||||
[ "Rosch haSchana 2018"
|
||||
, "Rosch ha-Schana 2018"
|
||||
, "Rosch ha-Schanah 2018"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((2018, 12, 2, 0, 0, 0), (2018, 12, 10, 0, 0, 0)) Day "Chanukka")
|
||||
[ "Chanukka 2018"
|
||||
, "Hanukkah 2018"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((2018, 3, 30, 0, 0, 0), (2018, 4, 8, 0, 0, 0)) Day "Pessach")
|
||||
[ "Passover 2018"
|
||||
, "Pessach 2018"
|
||||
, "Passa 2018"
|
||||
, "Passah 2018"
|
||||
, "Pascha 2018"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((2018, 9, 23, 0, 0, 0), (2018, 10, 2, 0, 0, 0)) Day "Sukkot")
|
||||
[ "Laubhüttenfest 2018"
|
||||
, "Sukkot 2018"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((2018, 5, 19, 0, 0, 0), (2018, 5, 22, 0, 0, 0)) Day "Schawuot")
|
||||
[ "Shavuot 2018"
|
||||
, "Schawuot 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2017, 11, 30, 0, 0, 0) Day "Maulid an-Nabī")
|
||||
[ "Mawlid al-Nabawi 2017"
|
||||
, "Maulid an-Nabī 2017"
|
||||
]
|
||||
, examples (datetimeHoliday (1950, 7, 16, 0, 0, 0) Day "Eid al-Fitr")
|
||||
[ "Eid al-Fitr 1950"
|
||||
]
|
||||
, examples (datetimeHoliday (1975, 10, 6, 0, 0, 0) Day "Eid al-Fitr")
|
||||
[ "Eid al-Fitr 1975"
|
||||
]
|
||||
, examples (datetimeHoliday (1988, 5, 16, 0, 0, 0) Day "Eid al-Fitr")
|
||||
[ "Eid al-Fitr 1988"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 6, 15, 0, 0, 0) Day "Eid al-Fitr")
|
||||
[ "Eid al-Fitr 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2034, 12, 12, 0, 0, 0) Day "Eid al-Fitr")
|
||||
[ "Eid al-Fitr 2034"
|
||||
]
|
||||
, examples (datetimeHoliday (2046, 8, 4, 0, 0, 0) Day "Eid al-Fitr")
|
||||
[ "Eid al-Fitr 2046"
|
||||
]
|
||||
, examples (datetimeHoliday (2050, 6, 21, 0, 0, 0) Day "Eid al-Fitr")
|
||||
[ "Eid al-Fitr 2050"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 8, 21, 0, 0, 0) Day "Eid al-Adha")
|
||||
[ "Eid al-Adha 2018"
|
||||
, "id ul-adha 2018"
|
||||
, "Opferfest 2018"
|
||||
, "Bakr Id 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (1980, 10, 19, 0, 0, 0) Day "Eid al-Adha")
|
||||
[ "Eid al-Adha 1980"
|
||||
, "id ul-adha 1980"
|
||||
, "Opferfest 1980"
|
||||
, "Bakr Id 1980"
|
||||
]
|
||||
, examples (datetimeHoliday (1966, 4, 1, 0, 0, 0) Day "Eid al-Adha")
|
||||
[ "Eid al-Adha 1966"
|
||||
, "id ul-adha 1966"
|
||||
, "Opferfest 1966"
|
||||
, "Bakr Id 1966"
|
||||
]
|
||||
, examples (datetimeHoliday (1974, 1, 3, 0, 0, 0) Day "Eid al-Adha")
|
||||
[ "Eid al-Adha 1974"
|
||||
, "id ul-adha 1974"
|
||||
, "Opferfest 1974"
|
||||
, "Bakr Id 1974"
|
||||
]
|
||||
, examples (datetimeHoliday (2017, 6, 22, 0, 0, 0) Day "Lailat al-Qadr")
|
||||
[ "laylat al kadr 2017"
|
||||
, "die Nacht der Bestimmung 2017"
|
||||
, "Laylat al-Qadr 2017"
|
||||
, "Lailat al-Qadr 2017"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 6, 11, 0, 0, 0) Day "Lailat al-Qadr")
|
||||
[ "laylat al-qadr 2018"
|
||||
, "die Nacht der Allmacht 2018"
|
||||
, "Laylat al-Qadr 2018"
|
||||
, "Lailat al-Qadr 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 9, 11, 0, 0, 0) Day "Islamisches Neujahr")
|
||||
[ "Islamisches Neujahr 2018"
|
||||
, "Amun Jadid 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2017, 9, 30, 0, 0, 0) Day "Aschura")
|
||||
[ "Aschura-Tag 2017"
|
||||
, "Aschura 2017"
|
||||
, "Ashura 2017"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 1, 30, 0, 0, 0) Day "Tu biSchevat")
|
||||
[ "Tu BiShvat 2018"
|
||||
, "Tu biSchevat 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2017, 6, 23, 0, 0, 0) Day "Jumu'atul-Wida")
|
||||
[ "Jamat Ul-Vida 2017"
|
||||
, "Jumu'atul-Wida 2017"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 6, 8, 0, 0, 0) Day "Jumu'atul-Wida")
|
||||
[ "Jamat Ul-Vida 2018"
|
||||
, "Jumu'atul-Wida 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 4, 13, 0, 0, 0) Day "Isra and Mi'raj")
|
||||
[ "isra and mi'raj 2018"
|
||||
, "Aufstieg des Propheten 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2019, 4, 3, 0, 0, 0) Day "Isra and Mi'raj")
|
||||
[ "Die Nachtreise 2019"
|
||||
, "Aufstieg in den Himmel 2019"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((1950, 6, 17, 0, 0, 0), (1950, 7, 16, 0, 0, 0)) Day "Ramadan")
|
||||
[ "Ramadan 1950"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((1977, 8, 15, 0, 0, 0), (1977, 9, 14, 0, 0, 0)) Day "Ramadan")
|
||||
[ "Ramadan 1977"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((2018, 5, 16, 0, 0, 0), (2018, 6, 15, 0, 0, 0)) Day "Ramadan")
|
||||
[ "Ramadan 2018"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((2034, 11, 12, 0, 0, 0), (2034, 12, 12, 0, 0, 0)) Day "Ramadan")
|
||||
[ "Ramadan 2034"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((2046, 7, 5, 0, 0, 0), (2046, 8, 4, 0, 0, 0)) Day "Ramadan")
|
||||
[ "Ramadan 2046"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((2050, 5, 22, 0, 0, 0), (2050, 6, 21, 0, 0, 0)) Day "Ramadan")
|
||||
[ "Ramadan 2050"
|
||||
]
|
||||
, examples (datetimeHoliday (2017, 10, 17, 0, 0, 0) Day "Dhanteras")
|
||||
[ "Dhanatrayodashi 2017"
|
||||
]
|
||||
, examples (datetimeHoliday (2019, 10, 25, 0, 0, 0) Day "Dhanteras")
|
||||
[ "Dhanteras 2019"
|
||||
]
|
||||
, examples (datetimeHoliday (2019, 10, 26, 0, 0, 0) Day "Naraka Chaturdashi")
|
||||
[ "kali chaudas 2019"
|
||||
, "choti diwali 2019"
|
||||
]
|
||||
, examples (datetimeHoliday (2019, 10, 27, 0, 0, 0) Day "Diwali")
|
||||
[ "diwali 2019"
|
||||
, "Deepavali 2019"
|
||||
, "Lakshmi Puja 2019"
|
||||
]
|
||||
, examples (datetimeHoliday (2019, 10, 29, 0, 0, 0) Day "Bhai Dooj")
|
||||
[ "bhai dooj 2019"
|
||||
]
|
||||
, examples (datetimeHoliday (2019, 11, 2, 0, 0, 0) Day "Chhath")
|
||||
[ "chhath 2019"
|
||||
, "dala puja 2019"
|
||||
, "Surya Shashthi 2019"
|
||||
]
|
||||
, examples (datetimeHoliday (2021, 10, 14, 0, 0, 0) Day "Maha Navami")
|
||||
[ "Maha Navami 2021"
|
||||
]
|
||||
, examples (datetimeHoliday (2021, 10, 12, 0, 0, 0) Day "Maha Saptami")
|
||||
[ "Maha Saptami 2021"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 10, 18, 0, 0, 0) Day "Vijayadashami")
|
||||
[ "Dussehra 2018"
|
||||
, "vijayadashami 2018"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((2018, 10, 9, 0, 0, 0), (2018, 10, 19, 0, 0, 0)) Day "Navaratri")
|
||||
[ "navaratri 2018"
|
||||
, "durga puja 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 10, 27, 0, 0, 0) Day "Karva Chauth")
|
||||
[ "karva chauth 2018"
|
||||
, "karva chauth 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 8, 26, 0, 0, 0) Day "Raksha Bandhan")
|
||||
[ "rakhi 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2020, 4, 6, 0, 0, 0) Day "Mahavir Jayanti")
|
||||
[ "mahavir jayanti 2020"
|
||||
, "mahaveer janma kalyanak 2020"
|
||||
]
|
||||
, examples (datetimeHoliday (2020, 2, 21, 0, 0, 0) Day "Maha Shivaratri")
|
||||
[ "maha shivaratri 2020"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 2, 10, 0, 0, 0) Day "Dayananda Saraswati Jayanti")
|
||||
[ "saraswati jayanti 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 1, 14, 0, 0, 0) Day "Thai Pongal")
|
||||
[ "pongal 2018"
|
||||
, "makara sankranthi 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 1, 13, 0, 0, 0) Day "Boghi")
|
||||
[ "bogi pandigai 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 1, 15, 0, 0, 0) Day "Mattu Pongal")
|
||||
[ "maattu pongal 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 1, 16, 0, 0, 0) Day "Kaanum Pongal")
|
||||
[ "kaanum pongal 2018"
|
||||
, "kanni pongal 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2019, 1, 15, 0, 0, 0) Day "Thai Pongal")
|
||||
[ "makar sankranti 2019"
|
||||
, "maghi 2019"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 4, 14, 0, 0, 0) Day "Vaisakhi")
|
||||
[ "Vaisakhi 2018"
|
||||
, "baisakhi 2018"
|
||||
, "Vasakhi 2018"
|
||||
, "vaishakhi 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 8, 24, 0, 0, 0) Day "Thiru Onam")
|
||||
[ "onam 2018"
|
||||
, "Thiru Onam 2018"
|
||||
, "Thiruvonam 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2019, 2, 10, 0, 0, 0) Day "Vasant Panchami")
|
||||
[ "vasant panchami 2019"
|
||||
, "basant panchami 2019"
|
||||
]
|
||||
, examples (datetimeHoliday (2019, 3, 20, 0, 0, 0) Day "Holika Dahan")
|
||||
[ "chhoti holi 2019"
|
||||
, "holika dahan 2019"
|
||||
, "kamudu pyre 2019"
|
||||
]
|
||||
, examples (datetimeHoliday (2019, 8, 23, 0, 0, 0) Day "Krishna Janmashtami")
|
||||
[ "krishna janmashtami 2019"
|
||||
, "gokulashtami 2019"
|
||||
]
|
||||
, examples (datetimeHoliday (2019, 3, 21, 0, 0, 0) Day "Holi")
|
||||
[ "holi 2019"
|
||||
, "dhulandi 2019"
|
||||
, "phagwah 2019"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 8, 17, 0, 0, 0) Day "Parsi Neujahr")
|
||||
[ "Parsi Neujahr 2018"
|
||||
, "Jamshedi Navroz 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2022, 8, 16, 0, 0, 0) Day "Parsi Neujahr")
|
||||
[ "jamshedi Navroz 2022"
|
||||
, "Parsi Neujahr 2022"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((2013, 4, 26, 0, 0, 0), (2013, 4, 29, 0, 0, 0)) Day "Global Youth Service-Tag")
|
||||
[ "GYSD 2013"
|
||||
, "Global Youth Service-Tag"
|
||||
]
|
||||
, examples (datetimeHoliday (2013, 5, 24, 0, 0, 0) Day "Vesak")
|
||||
[ "vesak"
|
||||
, "vaisakha"
|
||||
, "Buddha-Tag"
|
||||
, "Buddha Purnima"
|
||||
, "Wesakfest"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((2013, 3, 23, 20, 30, 0), (2013, 3, 23, 21, 31, 0)) Minute "Earth Hour")
|
||||
[ "Earth Hour"
|
||||
, "Stunde der Erde"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((2016, 3, 19, 20, 30, 0), (2016, 3, 19, 21, 31, 0)) Minute "Earth Hour")
|
||||
[ "Earth Hour 2016"
|
||||
, "Stunde der Erde 2016"
|
||||
]
|
||||
, examples (datetimeHoliday (2013, 2, 23, 0, 0, 0) Day "Purim")
|
||||
[ "purim"
|
||||
]
|
||||
, examples (datetimeHoliday (2013, 2, 24, 0, 0, 0) Day "Shushan Purim")
|
||||
[ "Shushan Purim"
|
||||
]
|
||||
, examples (datetimeHoliday (2014, 1, 7, 0, 0, 0) Day "Guru Gobind Singh Jayanti")
|
||||
[ "Guru Gobind Singh Geburtstag"
|
||||
, "Guru Gobind Singh Jayanti 2014"
|
||||
, "Guru Govind Singh Jayanti"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 4, 27, 0, 0, 0) Day "Königstag")
|
||||
[ "Koningsdag 2018"
|
||||
, "königstag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2014, 4, 26, 0, 0, 0) Day "Königstag")
|
||||
[ "Koningsdag 2014"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 5, 9, 0, 0, 0) Day "Rabindra Jayanti")
|
||||
[ "Rabindra Jayanti 2018"
|
||||
, "Rabindranath Jayanti 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2019, 5, 9, 0, 0, 0) Day "Rabindra Jayanti")
|
||||
[ "Rabindra Jayanti 2019"
|
||||
, "Rabindranath Jayanti 2019"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 1, 31, 0, 0, 0) Day "Guru Ravidass Jayanti")
|
||||
[ "Guru Ravidas Jayanti 2018"
|
||||
, "Guru Ravidass Geburtstag 2018"
|
||||
, "Guru Ravidass Jayanti 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2019, 2, 19, 0, 0, 0) Day "Guru Ravidass Jayanti")
|
||||
[ "Guru Ravidass Jayanti 2019"
|
||||
, "Guru Ravidas Geburtstag 2019"
|
||||
]
|
||||
, examples (datetimeHoliday (2019, 10, 13, 0, 0, 0) Day "Pargat Diwas")
|
||||
[ "Valmiki Jayanti 2019"
|
||||
, "Pargat Diwas 2019"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 10, 24, 0, 0, 0) Day "Pargat Diwas")
|
||||
[ "Maharishi Valmiki Jayanti 2018"
|
||||
, "Pargat Diwas 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 5, 10, 0, 0, 0) Day "Christi Himmelfahrt")
|
||||
[ "Christi Himmelfahrt 2018"
|
||||
, "Himmelfahrt 2018"
|
||||
, "Himmelfahrtstag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 2, 14, 0, 0, 0) Day "Aschermittwoch")
|
||||
[ "Aschermittwoch 2018"
|
||||
, "Aschertag 2018"
|
||||
, "Aschetag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 2, 19, 0, 0, 0) Day "Aschermontag")
|
||||
[ "Aschermontag 2018"
|
||||
, "Reiner Montag 2018"
|
||||
, "Sauberer Montag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 5, 31, 0, 0, 0) Day "Corpus Christi")
|
||||
[ "Corpus Christi 2018"
|
||||
, "Fronleichnam 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 4, 2, 0, 0, 0) Day "Ostermontag")
|
||||
[ "Ostermontag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 4, 1, 0, 0, 0) Day "Ostersonntag")
|
||||
[ "Ostersonntag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 11, 8, 0, 0, 0) Day "Govardhan Puja")
|
||||
[ "Govardhan Puja 2018"
|
||||
, "Annakut 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 3, 30, 0, 0, 0) Day "Karfreitag")
|
||||
[ "Karfreitag 2018"
|
||||
, "Stiller Freitag 2018"
|
||||
, "Hoher Freitag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 3, 31, 0, 0, 0) Day "Karsamstag")
|
||||
[ "Karsamstag 2018"
|
||||
, "Stiller Samstag 2018"
|
||||
, "Karsonnabend 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 3, 31, 0, 0, 0) Day "Lazarus-Samstag")
|
||||
[ "Lazarus-Samstag 2018"
|
||||
, "Lazarus Samstag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 3, 29, 0, 0, 0) Day "Gründonnerstag")
|
||||
[ "Gründonnerstag 2018"
|
||||
, "Hoher Donnerstag 2018"
|
||||
, "Heiliger Donnerstag 2018"
|
||||
, "Weißer Donnerstag 2018"
|
||||
, "Palmdonnerstag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 4, 9, 0, 0, 0) Day "Orthodoxer Ostermontag")
|
||||
[ "Orthodoxer Ostermontag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 4, 8, 0, 0, 0) Day "Orthodoxer Ostersonntag")
|
||||
[ "Orthodoxer Ostersonntag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 4, 7, 0, 0, 0) Day "Orthodoxer Karsamstag")
|
||||
[ "Orthodoxer Karsamstag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 4, 6, 0, 0, 0) Day "Orthodoxer Karfreitag")
|
||||
[ "Orthodoxer Karfreitag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 4, 1, 0, 0, 0) Day "Orthodoxer Palmsonntag")
|
||||
[ "Orthodoxer Palmsonntag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 3, 25, 0, 0, 0) Day "Palmsonntag")
|
||||
[ "Palmsonntag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 5, 20, 0, 0, 0) Day "Pfingsten")
|
||||
[ "Pfingsten 2018"
|
||||
, "pentecost 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 2, 13, 0, 0, 0) Day "Fastnacht")
|
||||
[ "Fastnacht 2018"
|
||||
, "mardi gras 2018"
|
||||
, "Fastnachtsdienstag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 5, 27, 0, 0, 0) Day "Dreifaltigkeitssonntag")
|
||||
[ "Dreifaltigkeitssonntag 2018"
|
||||
, "Dreifaltigkeitsfest 2018"
|
||||
, "Trinitatis 2018"
|
||||
, "Goldener Sonntag 2018"
|
||||
]
|
||||
, examples (datetimeHoliday (2018, 5, 21, 0, 0, 0) Day "Pfingstmontag")
|
||||
[ "Pfingstmontag 2018"
|
||||
, "Pentecost Montag 2018"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((2018, 2, 19, 0, 0, 0), (2018, 3, 31, 0, 0, 0)) Day "Große Fastenzeit")
|
||||
[ "Große Fastenzeit 2018"
|
||||
]
|
||||
, examples (datetimeIntervalHoliday ((2018, 2, 14, 0, 0, 0), (2018, 4, 1, 0, 0, 0)) Day "Fastenzeit")
|
||||
[ "Fastenzeit 2018"
|
||||
]
|
||||
]
|
||||
|
@ -21,7 +21,9 @@ import Duckling.Dimensions.Types
|
||||
import Duckling.Numeral.Helpers (parseInt)
|
||||
import Duckling.Ordinal.Types (OrdinalData (..))
|
||||
import Duckling.Regex.Types (GroupMatch(..))
|
||||
import Duckling.Time.Computed
|
||||
import Duckling.Time.Helpers
|
||||
import Duckling.Time.HolidayHelpers
|
||||
import Duckling.Time.Types (TimeData (..))
|
||||
import Duckling.Types
|
||||
import qualified Duckling.Ordinal.Types as TOrdinal
|
||||
@ -111,6 +113,190 @@ ruleHolidays = mkRuleHolidays
|
||||
, nthDOWOfMonth 3 7 6 )
|
||||
]
|
||||
|
||||
ruleComputedHolidays :: [Rule]
|
||||
ruleComputedHolidays = mkRuleHolidays
|
||||
[ ( "Christi Himmelfahrt", "(christi\\s+)?himmelfahrt(stag)?"
|
||||
, cycleNthAfter False TG.Day 39 easterSunday )
|
||||
, ( "Aschermittwoch", "ascher?(tag|mittwoch)"
|
||||
, cycleNthAfter False TG.Day (-46) easterSunday )
|
||||
, ( "Aschura", "asc?hura(\\-?tag)?"
|
||||
, cycleNthAfter False TG.Day 9 muharram )
|
||||
, ( "Bhai Dooj", "bhai(ya)?\\s+d(u|oo)j|bhau\\-beej|bhai\\s+(tika|phonta)"
|
||||
, cycleNthAfter False TG.Day 4 dhanteras )
|
||||
, ( "Chhath", "chhathi?|chhath (parv|puja)|dala (chhath|puja)|surya shashthi"
|
||||
, cycleNthAfter False TG.Day 8 dhanteras )
|
||||
, ( "Boghi", "boghi|bogi\\s+pandigai"
|
||||
, cycleNthAfter False TG.Day (-1) thaiPongal )
|
||||
, ( "Chinesisches Neujahr", "chinesische(s|r)\\s+(neujahr(s(tag|fest))?|frühlingsfest)"
|
||||
, chineseNewYear )
|
||||
, ( "Aschermontag"
|
||||
, "(orthodoxer?\\s+)?(ascher|reiner?\\s+|sauberer?\\s+)montag"
|
||||
, cycleNthAfter False TG.Day (-48) orthodoxEaster )
|
||||
, ( "Corpus Christi", "corpus\\s+christi|fronleichnam"
|
||||
, cycleNthAfter False TG.Day 60 easterSunday )
|
||||
, ( "Dhanteras", "dhanatrayodashi|dhanteras|dhanvantari\\s+trayodashi"
|
||||
, dhanteras )
|
||||
, ( "Diwali", "deepavali|diwali|lakshmi\\s+puja"
|
||||
, cycleNthAfter False TG.Day 2 dhanteras )
|
||||
, ( "Durga Ashtami", "(durga|maha)(\\s+a)?shtami"
|
||||
, cycleNthAfter False TG.Day 7 navaratri )
|
||||
, ( "Ostermontag", "ostermontag"
|
||||
, cycleNthAfter False TG.Day 1 easterSunday )
|
||||
, ( "Ostersonntag", "ostersonntag", easterSunday )
|
||||
, ( "Eid al-Adha", "bakr[\\-\\s]e?id|e?id [au]l\\-adha|opferfest"
|
||||
, eidalAdha )
|
||||
, ( "Eid al-Fitr", "eid al\\-fitr", eidalFitr )
|
||||
, ( "Govardhan Puja", "govardhan\\s+puja|annak(u|oo)t"
|
||||
, cycleNthAfter False TG.Day 3 dhanteras )
|
||||
, ( "Karfreitag", "(kar|stiller\\s+|hoher\\s+)freitag"
|
||||
, cycleNthAfter False TG.Day (-2) easterSunday )
|
||||
, ( "Guru Gobind Singh Jayanti"
|
||||
, "guru\\s+(gobind|govind)\\s+singh\\s+(Geburtstag|jayanti)"
|
||||
, guruGobindSinghJayanti )
|
||||
, ( "Holi", "(rangwali )?holi|dhuleti|dhulandi|phagwah"
|
||||
, cycleNthAfter False TG.Day 39 vasantPanchami )
|
||||
, ( "Holika Dahan", "holika dahan|kamudu pyre|chhoti holi"
|
||||
, cycleNthAfter False TG.Day 38 vasantPanchami )
|
||||
, ( "Karsamstag"
|
||||
, "(kar|stiller\\s+)samstag|karsonnabend"
|
||||
, cycleNthAfter False TG.Day (-1) easterSunday )
|
||||
, ( "Islamisches Neujahr", "(arabisches|hijri|islamisches) neujahr|amun jadid|muharram"
|
||||
, muharram )
|
||||
, ( "Isra and Mi'raj"
|
||||
, "isra and mi'raj|aufstieg des propheten|(die\\s+)?nachtreise|aufstieg\\s+in\\s+den\\s+himmel"
|
||||
, cycleNthAfter False TG.Day 26 rajab
|
||||
)
|
||||
, ( "Jumu'atul-Wida", "jumu'atul\\-widaa?'?|jamat[\\-\\s]ul[\\-\\s]vida"
|
||||
, predNthAfter (-1) (dayOfWeek 5) eidalFitr )
|
||||
, ( "Kaanum Pongal", "(kaanum|kanni)\\s+pongal"
|
||||
, cycleNthAfter False TG.Day 2 thaiPongal )
|
||||
, ( "Lag BaOmer", "lag (b|l)[a']omer", lagBaOmer )
|
||||
, ( "Vaisakhi", "mesadi|[bv]aisakhi|vaisakhadi|vasakhi|vaishakhi", vaisakhi)
|
||||
, ( "Lailat al-Qadr"
|
||||
, "la[iy]lat al[\\-\\s][qk]adr|(die)? nacht der (bestimmung|allmacht)"
|
||||
, cycleNthAfter False TG.Day 26 ramadan )
|
||||
, ( "Lazarus-Samstag", "lazarus(\\-|\\s+)samstag"
|
||||
, cycleNthAfter False TG.Day (-8) orthodoxEaster )
|
||||
, ( "Maha Navami", "maha\\s+navami", cycleNthAfter False TG.Day 8 navaratri )
|
||||
, ( "Maha Saptami", "maha\\s+saptami", cycleNthAfter False TG.Day 6 navaratri )
|
||||
, ( "Mattu Pongal", "maa?ttu\\s+pongal"
|
||||
, cycleNthAfter False TG.Day 1 thaiPongal )
|
||||
, ( "Gründonnerstag"
|
||||
, "(grün|hoher\\s+|heiliger\\s+|weißer\\s+|palm)donnerstag"
|
||||
, cycleNthAfter False TG.Day (-3) easterSunday )
|
||||
, ( "Maulid an-Nabī"
|
||||
, "Maulid\\s+an\\-Nabī|mawlid(\\s+al\\-nab(awi|i\\s+al\\-sharif))?|mevli[dt]|mulud|geburtstag des propheten( muhammad)?"
|
||||
, mawlid )
|
||||
, ( "Naraka Chaturdashi"
|
||||
, "naraka? (nivaran )?chaturdashi|(kali|roop) chaudas|choti diwali"
|
||||
, cycleNthAfter False TG.Day 1 dhanteras )
|
||||
, ( "Orthodoxer Ostermontag", "orthodoxer\\s+ostermontag"
|
||||
, cycleNthAfter False TG.Day 1 orthodoxEaster )
|
||||
, ( "Orthodoxer Ostersonntag", "orthodoxer\\s+ostersonntag"
|
||||
, orthodoxEaster )
|
||||
, ( "Orthodoxer Karsamstag", "orthodoxer\\s+karsamstag"
|
||||
, cycleNthAfter False TG.Day (-1) orthodoxEaster )
|
||||
, ( "Orthodoxer Karfreitag", "orthodoxer\\s+karfreitag"
|
||||
, cycleNthAfter False TG.Day (-2) orthodoxEaster )
|
||||
, ( "Orthodoxer Palmsonntag", "orthodoxer\\s+palmsonntag"
|
||||
, cycleNthAfter False TG.Day (-7) orthodoxEaster )
|
||||
, ( "Palmsonntag", "palmsonntag"
|
||||
, cycleNthAfter False TG.Day (-7) easterSunday )
|
||||
, ( "Pfingsten", "pfingsten|pentecost"
|
||||
, cycleNthAfter False TG.Day 49 easterSunday )
|
||||
, ( "Purim", "purim", purim )
|
||||
, ( "Raksha Bandhan", "raksha(\\s+)?bandhan|rakhi", rakshaBandhan )
|
||||
, ( "Pargat Diwas", "pargat diwas|(maharishi )?valmiki jayanti", pargatDiwas )
|
||||
, ( "Mahavir Jayanti", "(mahavir|mahaveer) (jayanti|janma kalyanak)"
|
||||
, mahavirJayanti )
|
||||
, ( "Maha Shivaratri", "maha(\\s+)?shivaratri", mahaShivaRatri)
|
||||
, ( "Dayananda Saraswati Jayanti","((maharishi|swami) )?(dayananda )?saraswati jayanti", saraswatiJayanti )
|
||||
, ( "Karva Chauth", "karva\\s+chauth|karaka\\s+chaturthi", karvaChauth)
|
||||
, ( "Krishna Janmashtami", "(krishna )?janmashtami|gokulashtami", krishnaJanmashtami )
|
||||
, ( "Schmini Azeret", "sc?he?mini\\s+at?zeret"
|
||||
, cycleNthAfter False TG.Day 21 roshHashana )
|
||||
, ( "Fastnacht", "fastnacht(sdienstag)?|mardi gras"
|
||||
, cycleNthAfter False TG.Day (-47) easterSunday )
|
||||
, ( "Shushan Purim", "shushan\\s+purim", cycleNthAfter False TG.Day 1 purim )
|
||||
, ( "Simchat Torah", "simc?hat\\s+torah"
|
||||
, cycleNthAfter False TG.Day 22 roshHashana )
|
||||
, ( "Thai Pongal"
|
||||
, "(thai )?pongal|pongal pandigai|(makara? |magha )?sankranth?i|maghi"
|
||||
, thaiPongal )
|
||||
, ( "Thiru Onam", "(thiru(v|\\s+))?onam", thiruOnam )
|
||||
, ( "Tisha B'Av", "tisha b'av", tishaBAv )
|
||||
, ( "Dreifaltigkeitssonntag",
|
||||
"trinitatis(fest)?|(dreifaltigkeits|goldener\\s+)sonntag|drei(faltigkeit|einigkeit)(sfest)?"
|
||||
, cycleNthAfter False TG.Day 56 easterSunday )
|
||||
, ( "Vasant Panchami", "[bv]asant\\s+panchami", vasantPanchami )
|
||||
, ( "Vijayadashami", "dasara|duss(eh|he)ra|vijayadashami"
|
||||
, cycleNthAfter False TG.Day 9 navaratri )
|
||||
, ( "Tu biSchevat", "tu b[i']sc?he?vat", tuBishvat )
|
||||
, ( "Vesak", "v(e|ai)sak(ha)?|buddha(\\-?tag|\\s+purnima)|wesakfest", vesak )
|
||||
, ( "Jom Ha'atzmaut", "[yj]om ha'?atzmaut", yomHaatzmaut )
|
||||
, ( "Jom HaShoah"
|
||||
, "[yj]om hashoah|[yj]om hazikaron lashoah ve-lag'vurah|holocaust\\-?gedenktag"
|
||||
, cycleNthAfter False TG.Day 12 passover )
|
||||
, ( "Jom Kippur", "[yj]om\\s+kippur", cycleNthAfter False TG.Day 9 roshHashana )
|
||||
, ( "Pfingstmontag", "pfingstmontag|(pentecost|whit)\\s+montag"
|
||||
, cycleNthAfter False TG.Day 50 easterSunday )
|
||||
, ( "Rabindra Jayanti", "rabindra(nath)?\\s+jayanti", rabindraJayanti )
|
||||
, ("Guru Ravidass Jayanti", "guru\\s+ravidass?\\s+(geburtstag|jayanti)"
|
||||
, ravidassJayanti )
|
||||
]
|
||||
|
||||
ruleComputedHolidays' :: [Rule]
|
||||
ruleComputedHolidays' = mkRuleHolidays'
|
||||
[ ( "Global Youth Service-Tag", "global youth service[\\-\\s]?tag|gysd"
|
||||
, let start = globalYouthServiceDay
|
||||
end = cycleNthAfter False TG.Day 2 globalYouthServiceDay
|
||||
in interval TTime.Open start end )
|
||||
, ( "Große Fastenzeit", "große\\s+fastenzeit"
|
||||
, let start = cycleNthAfter False TG.Day (-48) orthodoxEaster
|
||||
end = cycleNthAfter False TG.Day (-9) orthodoxEaster
|
||||
in interval TTime.Open start end )
|
||||
, ( "Chanukka", "c?hann?ukk?ah?"
|
||||
, let start = chanukah
|
||||
end = cycleNthAfter False TG.Day 7 chanukah
|
||||
in interval TTime.Open start end )
|
||||
, ( "Fastenzeit", "fastenzeit"
|
||||
, let start = cycleNthAfter False TG.Day (-46) easterSunday
|
||||
end = cycleNthAfter False TG.Day (-1) easterSunday
|
||||
in interval TTime.Open start end )
|
||||
, ( "Navaratri", "durga\\s+puja|durgotsava|nava?rath?ri"
|
||||
, let start = navaratri
|
||||
end = cycleNthAfter False TG.Day 9 navaratri
|
||||
in interval TTime.Open start end )
|
||||
, ( "Pessach", "passover|pess?a[ck]?h|pascha|Passah?"
|
||||
, let start = passover
|
||||
end = cycleNthAfter False TG.Day 8 passover
|
||||
in interval TTime.Open start end )
|
||||
, ( "Ramadan", "rama[dt]h?an|ramzaa?n"
|
||||
, let start = ramadan
|
||||
end = cycleNthAfter False TG.Day (-1) eidalFitr
|
||||
in interval TTime.Open start end )
|
||||
, ( "Rosch haSchana", "rosch ha\\-?schanah?"
|
||||
, let start = roshHashana
|
||||
end = cycleNthAfter False TG.Day 2 roshHashana
|
||||
in interval TTime.Open start end )
|
||||
, ( "Schawuot", "sc?ha[vw]u'?oth?|shovuos"
|
||||
, let start = cycleNthAfter False TG.Day 50 passover
|
||||
end = cycleNthAfter False TG.Day 52 passover
|
||||
in interval TTime.Open start end )
|
||||
, ( "Sukkot", "Laubhüttenfest|su[ck]{2}o[st]"
|
||||
, let start = cycleNthAfter False TG.Day 14 roshHashana
|
||||
end = cycleNthAfter False TG.Day 22 roshHashana
|
||||
in interval TTime.Open start end )
|
||||
-- Does not account for leap years, so every 365 days.
|
||||
, ( "Parsi Neujahr", "parsi neujahr|jamshedi navroz"
|
||||
, predEveryNDaysFrom 365 (2020, 8, 16)
|
||||
)
|
||||
, ( "Earth Hour", "earth hour|stunde der erde"
|
||||
, computeEarthHour )
|
||||
, ( "Königstag", "königstag|koningsdag"
|
||||
, computeKingsDay )
|
||||
]
|
||||
|
||||
ruleRelativeMinutesTotillbeforeIntegerHourofday :: Rule
|
||||
ruleRelativeMinutesTotillbeforeIntegerHourofday = Rule
|
||||
{ name = "relative minutes to|till|before <integer> (hour-of-day)"
|
||||
@ -1716,3 +1902,5 @@ rules =
|
||||
++ ruleMonths
|
||||
++ ruleSeasons
|
||||
++ ruleHolidays
|
||||
++ ruleComputedHolidays
|
||||
++ ruleComputedHolidays'
|
||||
|
@ -28,6 +28,7 @@ import Duckling.Ordinal.Types (OrdinalData (..))
|
||||
import Duckling.Regex.Types
|
||||
import Duckling.Time.Computed
|
||||
import Duckling.Time.Helpers
|
||||
import Duckling.Time.HolidayHelpers
|
||||
import Duckling.Time.Types (TimeData (..), TimeIntervalType (..))
|
||||
import Duckling.Types
|
||||
import qualified Duckling.Duration.Types as TDuration
|
||||
@ -1910,32 +1911,14 @@ ruleComputedHolidays' = mkRuleHolidays'
|
||||
, let start = cycleNthAfter False TG.Day 14 roshHashana
|
||||
end = cycleNthAfter False TG.Day 22 roshHashana
|
||||
in interval TTime.Open start end )
|
||||
|
||||
-- Other
|
||||
-- Last Saturday of March unless it falls on Holy Saturday
|
||||
-- In which case it's the Saturday before
|
||||
, ( "Earth Hour", "earth hour"
|
||||
, let holySaturday = cycleNthAfter False TG.Day (-1) easterSunday
|
||||
tentative = predLastOf (dayOfWeek 6) (month 3)
|
||||
alternative = cycleNthAfter False TG.Day (-7) tentative
|
||||
in do
|
||||
day <- intersectWithReplacement holySaturday tentative alternative
|
||||
start <- intersect day $ hourMinute True 20 30
|
||||
interval TTime.Closed start $ cycleNthAfter False TG.Minute 60 start )
|
||||
-- Does not account for leap years, so every 365 days.
|
||||
, ( "Parsi New Year", "parsi new year|jamshedi navroz"
|
||||
, predEveryNDaysFrom 365 (2020, 8, 16)
|
||||
)
|
||||
-- king's day is on April 27th unless its on Sunday in which case its a day
|
||||
-- earlier used a bit of a trick since intersectWithReplacement expects all
|
||||
-- times to be aligned in granularity (e.g once a week, twice a year, etc.)
|
||||
-- we intersect with last Sunday of April since if "4/27 is on Sunday" it
|
||||
-- will be the last Sunday on April
|
||||
, ( "Earth Hour", "earth hour"
|
||||
, computeEarthHour )
|
||||
, ( "King's Day", "king's day|koningsdag"
|
||||
, let tentative = monthDay 4 27
|
||||
alternative = monthDay 4 26
|
||||
lastSundayOfApril = predLastOf (dayOfWeek 7) (month 4)
|
||||
in intersectWithReplacement lastSundayOfApril tentative alternative )
|
||||
, computeKingsDay )
|
||||
]
|
||||
|
||||
ruleCycleThisLastNext :: Rule
|
||||
|
40
Duckling/Time/HolidayHelpers.hs
Normal file
40
Duckling/Time/HolidayHelpers.hs
Normal file
@ -0,0 +1,40 @@
|
||||
-- Copyright (c) 2016-present, Facebook, Inc.
|
||||
-- All rights reserved.
|
||||
--
|
||||
-- This source code is licensed under the BSD-style license found in the
|
||||
-- LICENSE file in the root directory of this source tree.
|
||||
|
||||
module Duckling.Time.HolidayHelpers
|
||||
( computeEarthHour, computeKingsDay
|
||||
) where
|
||||
|
||||
import Data.Maybe
|
||||
import Prelude
|
||||
|
||||
import Duckling.Time.Helpers
|
||||
import Duckling.Time.Computed
|
||||
import Duckling.Time.Types (TimeData (..))
|
||||
import qualified Duckling.Time.Types as TTime
|
||||
import qualified Duckling.TimeGrain.Types as TG
|
||||
|
||||
-- Last Saturday of March unless it falls on Holy Saturday,
|
||||
-- in which case it's the Saturday before.
|
||||
computeEarthHour :: Maybe TimeData
|
||||
computeEarthHour =
|
||||
let holySaturday = cycleNthAfter False TG.Day (-1) easterSunday
|
||||
tentative = predLastOf (dayOfWeek 6) (month 3)
|
||||
alternative = cycleNthAfter False TG.Day (-7) tentative
|
||||
in do
|
||||
day <- intersectWithReplacement holySaturday tentative alternative
|
||||
start <- intersect day $ hourMinute True 20 30
|
||||
interval TTime.Closed start $ cycleNthAfter False TG.Minute 60 start
|
||||
|
||||
-- King's day is on April 27th unless it's on Sunday, in which case it's a day
|
||||
-- earlier. We intersect with the last Sunday of April. If 4/27 is a Sunday it
|
||||
-- will be the last Sunday in April.
|
||||
computeKingsDay :: Maybe TimeData
|
||||
computeKingsDay =
|
||||
let tentative = monthDay 4 27
|
||||
alternative = monthDay 4 26
|
||||
lastSundayOfApril = predLastOf (dayOfWeek 7) (month 4)
|
||||
in intersectWithReplacement lastSundayOfApril tentative alternative
|
@ -24,6 +24,7 @@ import Duckling.Numeral.Types (NumeralData (..))
|
||||
import Duckling.Ordinal.Types (OrdinalData (..))
|
||||
import Duckling.Regex.Types
|
||||
import Duckling.Time.Helpers
|
||||
import Duckling.Time.HolidayHelpers
|
||||
import Duckling.Time.Types (TimeData (..))
|
||||
import Duckling.Types
|
||||
import qualified Duckling.Numeral.Types as TNumeral
|
||||
@ -95,16 +96,8 @@ ruleHolidays = mkRuleHolidays
|
||||
ruleComputedHolidays' :: [Rule]
|
||||
ruleComputedHolidays' = mkRuleHolidays'
|
||||
[
|
||||
-- king's day is on April 27th unless its on Sunday in which case its a day
|
||||
-- earlier used a bit of a trick since intersectWithReplacement expects all
|
||||
-- times to be aligned in granularity (e.g once a week, twice a year, etc.)
|
||||
-- we intersect with last Sunday of April since if "4/27 is on Sunday" it
|
||||
-- will be the last Sunday on April
|
||||
( "Koningsdag", "king's day|koningsdag"
|
||||
, let tentative = monthDay 4 27
|
||||
alternative = monthDay 4 26
|
||||
lastSundayOfApril = predLastOf (dayOfWeek 7) (month 4)
|
||||
in intersectWithReplacement lastSundayOfApril tentative alternative )
|
||||
, computeKingsDay )
|
||||
]
|
||||
ruleRelativeMinutesToOrAfterIntegerPartOfDay :: Rule
|
||||
ruleRelativeMinutesToOrAfterIntegerPartOfDay = Rule
|
||||
|
@ -707,6 +707,7 @@ library
|
||||
, Duckling.Time.Computed
|
||||
, Duckling.Time.Corpus
|
||||
, Duckling.Time.Helpers
|
||||
, Duckling.Time.HolidayHelpers
|
||||
, Duckling.Time.Types
|
||||
-- REMOVE ME
|
||||
, Duckling.Time.TimeZone.Parse
|
||||
|
Loading…
Reference in New Issue
Block a user