diff --git a/dateparser/data/date_translation_data/hr.py b/dateparser/data/date_translation_data/hr.py index 443da093e..25cbb56dc 100644 --- a/dateparser/data/date_translation_data/hr.py +++ b/dateparser/data/date_translation_data/hr.py @@ -4,62 +4,89 @@ "january": [ "sij", "siječanj", - "siječnja" + "siječnja", + "siječnju", + "siječnjem" ], "february": [ "velj", "veljača", - "veljače" + "veljače", + "veljači", + "veljačom" ], "march": [ "ožu", "ožujak", - "ožujka" + "ožujka", + "ožujku", + "ožujkom" ], "april": [ "tra", "travanj", - "travnja" + "travnja", + "travnju", + "travnjem" ], "may": [ "svi", "svibanj", - "svibnja" + "svibnja", + "svibnju", + "svibnjem" ], "june": [ "lip", "lipanj", - "lipnja" + "lipnja", + "lipnju", + "lipnjem" ], "july": [ "srp", "srpanj", - "srpnja" + "srpnja", + "srpnju", + "srpnjem" ], "august": [ "kol", "kolovoz", - "kolovoza" + "kolovoza", + "kolovozu", + "kolovozom" ], "september": [ "ruj", "rujan", - "rujna" + "rujna", + "rujnu", + "rujnom" ], "october": [ "lis", "listopad", - "listopada" + "listopada", + "listopadu", + "listopadom" ], "november": [ "stu", "studeni", - "studenoga" + "studenoga", + "studenom", + "studenomu", + "studenome", + "studenog", + "studenim" ], "december": [ "pro", "prosinac", - "prosinca" + "prosinca", + "prosincu", + "prosincem" ], "monday": [ "pon", @@ -151,36 +178,85 @@ "ove godine" ], "1 day ago": [ + "jučer", "jučer" ], "1 month ago": [ "prošli mj", - "prošli mjesec" + "prošli mjesec", + "prošlog mjeseca", + "prošlom mjesecu" ], "1 week ago": [ "prošli tj", - "prošli tjedan" + "prošli tjedan", + "prošlog tjedna", + "prošlom tjednu" ], "1 year ago": [ "prošle g", "prošle god", - "prošle godine" + "prošle godine", + "prošla godina", + "prošloj godini", + "lani" ], "in 1 day": [ + "sutra", "sutra" ], "in 1 month": [ "sljedeći mj", - "sljedeći mjesec" + "sljedeći mjesec", + "sljedećeg mjeseca", + "sljedećem mjesecu", + "idući mj", + "idućeg mj", + "idućem mj", + "idući mjesec", + "idućeg mjeseca", + "idućem mjesecu" ], "in 1 week": [ "sljedeći tj", - "sljedeći tjedan" + "sljedeći tjedan", + "sljedećeg tjedna", + "sljedećem tjednu", + "idući tj", + "idućeg tj", + "idućem tj", + "idući tjedan", + "idućeg tjedna", + "idućem tjednu" ], "in 1 year": [ "sljedeće g", "sljedeće god", - "sljedeće godine" + "sljedeće godine", + "sljedeća g", + "sljedeća god", + "sljedeća godina", + "sljedećoj godini", + "iduća g", + "iduće g", + "idućoj g", + "iduća god", + "iduće god", + "idućoj god", + "iduća godina", + "iduće godine", + "idućoj godini", + "dogodine", + "nagodinu" + ], + "in 2 day": [ + "prekosutra" + ], + "2 year ago": [ + "preklani" + ], + "2 day ago": [ + "prekjučer" ] }, "relative-type-regex": { @@ -192,32 +268,39 @@ "\\1 hour ago": [ "prije (\\d+) h", "prije (\\d+) sat", - "prije (\\d+) sati" + "prije (\\d+) sati", + "prije (\\d+) sata" ], "\\1 minute ago": [ "prije (\\d+) min", "prije (\\d+) minuta", - "prije (\\d+) minutu" + "prije (\\d+) minutu", + "prije (\\d+) minute" ], "\\1 month ago": [ "prije (\\d+) mj", "prije (\\d+) mjesec", - "prije (\\d+) mjeseci" + "prije (\\d+) mjeseci", + "prije (\\d+) mjeseca" ], "\\1 second ago": [ "prije (\\d+) s", "prije (\\d+) sekundi", + "prije (\\d+) sekundu", + "prije (\\d+) sekunde", "prije (\\d+) sekundu" ], "\\1 week ago": [ "prije (\\d+) tj", "prije (\\d+) tjedan", - "prije (\\d+) tjedana" + "prije (\\d+) tjedana", + "prije (\\d+) tjedna" ], "\\1 year ago": [ "prije (\\d+) g", "prije (\\d+) godina", - "prije (\\d+) godinu" + "prije (\\d+) godinu", + "prije (\\d+) godine" ], "in \\1 day": [ "za (\\d+) d", @@ -227,32 +310,39 @@ "in \\1 hour": [ "za (\\d+) h", "za (\\d+) sat", - "za (\\d+) sati" + "za (\\d+) sati", + "za (\\d+) sata" ], "in \\1 minute": [ "za (\\d+) min", "za (\\d+) minuta", - "za (\\d+) minutu" + "za (\\d+) minutu", + "za (\\d+) minute" ], "in \\1 month": [ "za (\\d+) mj", "za (\\d+) mjesec", - "za (\\d+) mjeseci" + "za (\\d+) mjeseci", + "za (\\d+) mjeseca" ], "in \\1 second": [ "za (\\d+) s", "za (\\d+) sekundi", + "za (\\d+) sekundu", + "za (\\d+) sekunde", "za (\\d+) sekundu" ], "in \\1 week": [ "za (\\d+) tj", "za (\\d+) tjedan", - "za (\\d+) tjedana" + "za (\\d+) tjedana", + "za (\\d+) tjedna" ], "in \\1 year": [ "za (\\d+) g", "za (\\d+) godina", - "za (\\d+) godinu" + "za (\\d+) godinu", + "za (\\d+) godine" ] }, "locale_specific": { @@ -260,6 +350,17 @@ "name": "hr-BA" } }, + "in": [ + "u" + ], + "simplifications": [ + { + "podne": "12:00" + }, + { + "ponoć": "00:00" + } + ], "skip": [ " ", "'", diff --git a/dateparser_data/supplementary_language_data/date_translation_data/hr.yaml b/dateparser_data/supplementary_language_data/date_translation_data/hr.yaml new file mode 100644 index 000000000..750d63b6c --- /dev/null +++ b/dateparser_data/supplementary_language_data/date_translation_data/hr.yaml @@ -0,0 +1,145 @@ +in: + - u + +january: + - siječnju + - siječnjem +february: + - veljači + - veljačom +march: + - ožujku + - ožujkom +april: + - travnju + - travnjem +may: + - svibnju + - svibnjem +june: + - lipnju + - lipnjem +july: + - srpnju + - srpnjem +august: + - kolovozu + - kolovozom +september: + - rujnu + - rujnom +october: + - listopadu + - listopadom +november: + - studenom + - studenomu + - studenome + - studenog + - studenim +december: + - prosincu + - prosincem + +relative-type: + in 1 year: + - sljedeća g + - sljedeća god + - sljedeća godina + - sljedećoj godini + + - iduća g + - iduće g + - idućoj g + - iduća god + - iduće god + - idućoj god + - iduća godina + - iduće godine + - idućoj godini + + - dogodine + - nagodinu + + in 1 month: + - sljedećeg mjeseca + - sljedećem mjesecu + + - idući mj + - idućeg mj + - idućem mj + - idući mjesec + - idućeg mjeseca + - idućem mjesecu + + in 1 week: + - sljedećeg tjedna + - sljedećem tjednu + + - idući tj + - idućeg tj + - idućem tj + - idući tjedan + - idućeg tjedna + - idućem tjednu + + in 1 day: + - sutra + + in 2 day: + - prekosutra + + 1 year ago: + - prošla godina + - prošloj godini + - lani + + 2 year ago: + - preklani + + 1 month ago: + - prošlog mjeseca + - prošlom mjesecu + + 1 week ago: + - prošlog tjedna + - prošlom tjednu + + 1 day ago: + - jučer + + 2 day ago: + - prekjučer + +relative-type-regex: + \1 year ago: + - prije (\d+) godine + \1 month ago: + - prije (\d+) mjeseca + \1 week ago: + - prije (\d+) tjedna + \1 hour ago: + - prije (\d+) sata + \1 minute ago: + - prije (\d+) minute + \1 second ago: + - prije (\d+) sekunde + - prije (\d+) sekundu + + in \1 year: + - za (\d+) godine + in \1 month: + - za (\d+) mjeseca + in \1 week: + - za (\d+) tjedna + in \1 hour: + - za (\d+) sata + in \1 minute: + - za (\d+) minute + in \1 second: + - za (\d+) sekunde + - za (\d+) sekundu + +simplifications: + - podne: '12:00' + - ponoć: '00:00' diff --git a/tests/test_date_parser.py b/tests/test_date_parser.py index fb2209c0b..36d3060fb 100644 --- a/tests/test_date_parser.py +++ b/tests/test_date_parser.py @@ -187,8 +187,19 @@ def setUp(self): param('2015 წ. 12 ივნ, 15:34', datetime(2015, 6, 12, 15, 34)), # Finnish dates param('5.7.2018 5.45 ip.', datetime(2018, 7, 5, 17, 45)), - param('5 .7 .2018 5.45 ip.', datetime(2018, 7, 5, 17, 45)) - + param('5 .7 .2018 5.45 ip.', datetime(2018, 7, 5, 17, 45)), + # Croatian dates + param('06. travnja 2021.', datetime(2021, 4, 6, 0, 0)), + param('13. svibanj 2022.', datetime(2022, 5, 13, 0, 0)), + param('24.03.2019. u 22:22', datetime(2019, 3, 24, 22, 22)), + param('20. studenoga 2010. @ 07:28', datetime(2010, 11, 20, 7, 28)), + param('13. studenog 1989.', datetime(1989, 11, 13, 0, 0)), + param('29.01.2008. 00:00', datetime(2008, 1, 29, 0, 0)), + param('02/10/2016 u 17:20', datetime(2016, 10, 2, 17, 20)), + param('27. 05. 2022. u 14:34', datetime(2022, 5, 27, 14, 34)), + param('28. u studenom 2017.', datetime(2017, 11, 28, 0, 0)), + param('13. veljače 1999. u podne', datetime(1999, 2, 13, 12, 0)), + param('27. siječnja 1994. u ponoć', datetime(1994, 1, 27, 0, 0)) ]) def test_dates_parsing(self, date_string, expected): self.given_parser(settings={'NORMALIZE': False, diff --git a/tests/test_languages.py b/tests/test_languages.py index daecac2f4..128f04727 100644 --- a/tests/test_languages.py +++ b/tests/test_languages.py @@ -414,6 +414,14 @@ def setUp(self): # hr param('hr', "2 ožujak 1980 pet", "2 march 1980 friday"), param('hr', "nedjelja 3 lis 1879", "sunday 3 october 1879"), + param('hr', '06. travnja 2021.', '06. april 2021.'), + param('hr', '13. svibanj 2022. u 14:34', '13. may 2022. 14:34'), + param('hr', '20. studenoga 2010. @ 07:28', '20. november 2010. 07:28'), + param('hr', '13. studenog 1989.', '13. november 1989.'), + param('hr', 'u listopadu 2056.', ' october 2056.'), + param('hr', 'u studenome 1654.', ' november 1654.'), + param('hr', 'u studenomu 2001.', ' november 2001.'), + param('hr', '15. studenog 2007.', '15. november 2007.'), # hsb param('hsb', "5 měrc 1789 póndźela 11:13 popołdnju", "5 march 1789 monday 11:13 pm"), @@ -1264,9 +1272,90 @@ def test_translation(self, shortname, datetime_string, expected_translation): param('ha', "gobe", "in 1 day"), param('ha', "jiya", "1 day ago"), # hr - param('hr', "prije 3 dana", "3 day ago"), + param('hr', "sljedeća godina", "in 1 year"), + param('hr', "sljedeće godine", "in 1 year"), + param('hr', "sljedećoj godini", "in 1 year"), + param('hr', "iduća godina", "in 1 year"), + param('hr', "iduće godine", "in 1 year"), + param('hr', "idućoj godini", "in 1 year"), + param('hr', "prošla godina", "1 year ago"), + param('hr', "prošle godine", "1 year ago"), + param('hr', "prošloj godini", "1 year ago"), + param('hr', "sljedeći mjesec", "in 1 month"), - param('hr', "za 2 sati", "in 2 hour"), + param('hr', "sljedećeg mjeseca", "in 1 month"), + param('hr', "sljedećem mjesecu", "in 1 month"), + param('hr', "idući mjesec", "in 1 month"), + param('hr', "idućeg mjeseca", "in 1 month"), + param('hr', "idućem mjesecu", "in 1 month"), + param('hr', "prošli mjesec", "1 month ago"), + param('hr', "prošlog mjeseca", "1 month ago"), + param('hr', "prošlom mjesecu", "1 month ago"), + + param('hr', "sljedeći tjedan", "in 1 week"), + param('hr', "sljedećeg tjedna", "in 1 week"), + param('hr', "sljedećem tjednu", "in 1 week"), + param('hr', "idući tjedan", "in 1 week"), + param('hr', "idućeg tjedna", "in 1 week"), + param('hr', "idućem tjednu", "in 1 week"), + param('hr', "prošli tjedan", "1 week ago"), + param('hr', "prošlog tjedna", "1 week ago"), + param('hr', "prošlom tjednu", "1 week ago"), + + param('hr', "prije 7 godina", "7 year ago"), + param('hr', "za 7 godina", "in 7 year"), + param('hr', "prije 2 godine", "2 year ago"), + param('hr', "za 2 godine", "in 2 year"), + param('hr', "prije 1 godinu", "1 year ago"), + param('hr', "za 1 godinu", "in 1 year"), + + param('hr', "prije 7 mjeseci", "7 month ago"), + param('hr', "za 7 mjeseci", "in 7 month"), + param('hr', "prije 2 mjeseca", "2 month ago"), + param('hr', "za 2 mjeseca", "in 2 month"), + param('hr', "prije 1 mjesec", "1 month ago"), + param('hr', "za 1 mjesec", "in 1 month"), + + param('hr', "prije 7 tjedana", "7 week ago"), + param('hr', "za 7 tjedana", "in 7 week"), + param('hr', "prije 2 tjedna", "2 week ago"), + param('hr', "za 2 tjedna", "in 2 week"), + param('hr', "prije 1 tjedan", "1 week ago"), + param('hr', "za 1 tjedan", "in 1 week"), + + param('hr', "prije 7 dana", "7 day ago"), + param('hr', "za 7 dana", "in 7 day"), + param('hr', "prije 1 dan", "1 day ago"), + param('hr', "za 1 dan", "in 1 day"), + + param('hr', "prije 7 sati", "7 hour ago"), + param('hr', "za 7 sati", "in 7 hour"), + param('hr', "prije 2 sata", "2 hour ago"), + param('hr', "za 2 sata", "in 2 hour"), + param('hr', "prije 1 sat", "1 hour ago"), + param('hr', "za 1 sat", "in 1 hour"), + + param('hr', "prije 7 minuta", "7 minute ago"), + param('hr', "za 7 minuta", "in 7 minute"), + param('hr', "prije 2 minute", "2 minute ago"), + param('hr', "za 2 minute", "in 2 minute"), + + param('hr', "prije 7 sekundi", "7 second ago"), + param('hr', "za 7 sekundi", "in 7 second"), + param('hr', "prije 2 sekunde", "2 second ago"), + param('hr', "za 2 sekunde", "in 2 second"), + param('hr', "prije 1 sekundu", "1 second ago"), + param('hr', "za 1 sekundu", "in 1 second"), + + param('hr', "jučer", "1 day ago"), + param('hr', "prekjučer", "2 day ago"), + param('hr', "sutra", "in 1 day"), + param('hr', "prekosutra", "in 2 day"), + param('hr', "lani", "1 year ago"), + param('hr', "preklani", "2 year ago"), + param('hr', "dogodine", "in 1 year"), + param('hr', "nagodinu", "in 1 year"), + # hsb param('hsb', "před 5 tydźenjemi", "5 week ago"), param('hsb', "za 60 sekundow", "in 60 second"),