diff --git a/dateparser/data/languages_info.py b/dateparser/data/languages_info.py index 02ab3df43..d2ea0d19e 100644 --- a/dateparser/data/languages_info.py +++ b/dateparser/data/languages_info.py @@ -1066,7 +1066,8 @@ "nl-SX" ], "ko": [ - "ko-KP" + "ko-KP", + "ko-KR" ], "th": [], "he": [], diff --git a/dateparser_data/cldr_language_data/date_translation_data/ko.json b/dateparser_data/cldr_language_data/date_translation_data/ko.json index 0aa9a72fb..2bc723e2c 100644 --- a/dateparser_data/cldr_language_data/date_translation_data/ko.json +++ b/dateparser_data/cldr_language_data/date_translation_data/ko.json @@ -2,40 +2,52 @@ "name": "ko", "date_order": "YMD", "january": [ - "1월" + "1월", + "일월" ], "february": [ - "2월" + "2월", + "이월" ], "march": [ - "3월" + "3월", + "삼월" ], "april": [ - "4월" + "4월", + "사월" ], "may": [ - "5월" + "5월", + "오월" ], "june": [ - "6월" + "6월", + "유월" ], "july": [ - "7월" + "7월", + "칠월" ], "august": [ - "8월" + "8월", + "팔월" ], "september": [ - "9월" + "9월", + "구월" ], "october": [ - "10월" + "10월", + "시월" ], "november": [ - "11월" + "11월", + "십일월" ], "december": [ - "12월" + "12월", + "십이월" ], "monday": [ "월", @@ -67,10 +79,14 @@ ], "am": [ "am", + "a.m.", + "AM", "오전" ], "pm": [ "pm", + "p.m.", + "PM", "오후" ], "year": [ @@ -102,19 +118,22 @@ "현재 시간" ], "0 minute ago": [ - "현재 분" + "현재" ], "0 month ago": [ - "이번 달" + "이번 달", + "이달" ], "0 second ago": [ "지금" ], "0 week ago": [ - "이번 주" + "이번 주", + "금주" ], "0 year ago": [ - "올해" + "올해", + "금년" ], "1 day ago": [ "어제" @@ -188,6 +207,9 @@ "locale_specific": { "ko-KP": { "name": "ko-KP" + }, + "ko-KR": { + "name": "ko-KR" } } } \ No newline at end of file diff --git a/dateparser_data/supplementary_language_data/date_translation_data/ko.yaml b/dateparser_data/supplementary_language_data/date_translation_data/ko.yaml new file mode 100644 index 000000000..444832733 --- /dev/null +++ b/dateparser_data/supplementary_language_data/date_translation_data/ko.yaml @@ -0,0 +1,132 @@ +no_word_spacing: "False" + +sentence_splitter_group : 1 + +skip: ["약", "約"] + +monday: + - (월) + - (月) +tuesday: + - (화) + - (火) +wednesday: + - (수) + - (水) +thursday: + - (목) + - (木) +friday: + - (금) + - (金) +saturday: + - (토) + - (土) +sunday: + - (일) + - (日) + +january: + - 1월 + - 일월 + - 一月 +february: + - 2월 + - 이월 + - 二月 +march: + - 3월 + - 삼월 + - 三月 +april: + - 4월 + - 사월 + - 四月 +may: + - 5월 + - 오월 + - 五月 +june: + - 6월 + - 유월 + - 六月 +july: + - 7월 + - 칠월 + - 七月 +august: + - 8월 + - 팔월 + - 八月 +september: + - 9월 + - 구월 + - 九月 +october: + - 10월 + - 시월 + - 十月 +november: + - 11월 + - 십일월 + - 十一月 +december: + - 12월 + - 십이월 + - 十二月 + +month: + - 개월 + - 個月 + - 월간 + - 月間 + - 개월간 + - 個月間 +week: + - 주간 + - 週間 +day: + - 일간 + - 日間 +hour: + - 시간 + - 時間 +minute: + - 분간 + - 分間 +second: + - 초간 + - 秒間 +ago: + - 전 + - 前 +in: + - 지금부터 + - 只今부터 + +relative-type: + 0 second ago: + - 현재 + - 現在 + 2 day ago: + - 그저께 + - 그제 + 2 week ago: + - 2주 전 + - 이주 전 + - 二週 前 + 1 year ago: + - 작년 + - 昨年 + +simplifications: + - (\d+)년(?:\s+)?(\d+)월(?:\s+)?(\d+)일: \1-\2-\3 + - (\d+)월(?:\s+)?(\d+)일: \1-\2 + - (\d+)시(?:\s+)?(\d+)분(?:\s+)?(\d+)초: \1:\2:\3 + - (\d+)시(?:\s+)?(\d+)분: \1:\2 + - (\d+)시$: \1:00 + - (\d+)년(?:\s+)?(\d+)월(?:\s+)?(\d+)일: \1-\2-\3 + - (\d+)년(?:\s+)?(\d+)일: \1-\2 + - (\d+)시(?:\s+)?(\d+)분(?:\s+)?(\d+)초: \1:\2:\3 + - (\d+)시(?:\s+)?(\d+)분: \1:\2 + - (\d+)시$: \1:00 diff --git a/docs/supported_locales.rst b/docs/supported_locales.rst index c2523236b..88c81ecf7 100644 --- a/docs/supported_locales.rst +++ b/docs/supported_locales.rst @@ -97,7 +97,7 @@ kl kln km kn -ko 'ko-KP' +ko 'ko-KP', 'ko-KR' kok ks ksb diff --git a/tests/test_date_parser.py b/tests/test_date_parser.py index ead18292b..87c6be868 100644 --- a/tests/test_date_parser.py +++ b/tests/test_date_parser.py @@ -144,6 +144,9 @@ def setUp(self): # Japanese dates param('2016年3月20日(日) 21時40分', datetime(2016, 3, 20, 21, 40)), param("2016年3月20日 21時40分", datetime(2016, 3, 20, 21, 40)), + # Korean dates + param('2016년 3월 20일(일) 21시 40분', datetime(2016, 3, 20, 21, 40)), + param("2016년 3월 20일 21시 40분", datetime(2016, 3, 20, 21, 40)), # Numeric dates param('06-17-2014', datetime(2014, 6, 17)), param('13/03/2014', datetime(2014, 3, 13)), diff --git a/tests/test_languages.py b/tests/test_languages.py index a9d292d8f..a0fac0ab0 100644 --- a/tests/test_languages.py +++ b/tests/test_languages.py @@ -170,6 +170,24 @@ def setUp(self): param('ja', "2016年3月20日(日) 21時40分", "2016-3-20 sunday 21:40"), param('ja', "2016年3月20日 (日) 21時40分", "2016-3-20 sunday 21:40"), + # Korean + param('ko', "오후 3시", "pm 3:00"), + param('ko', "2시", "2:00"), + param('ko', "11시 42분", "11:42"), + param('ko', "3개월", "3 month"), + param('ko', "약 53개월 전", "53 month ago"), + param('ko', "3월", "march"), + param('ko', "십이월", "december"), + param('ko', "2월 10일", "2-10"), + param('ko', "2013년 2월", "2013 year february"), + param('ko', "2013년 04월 08일", "2013-04-08"), + param('ko', "2016년 03월 24일 목요일 10시 05분", "2016-03-24 thursday 10:05"), + param('ko', "2016년 3월 20일 21시 40분", "2016-3-20 21:40"), + param('ko', "2016년 03월 21일 23시 05분 11초", "2016-03-21 23:05:11"), + param('ko', "2016녀 3월 21일(월) 14시 48분", "2016-3-21 monday 14:48"), + param('ko', "2016년 3월 20일(일) 21시 40분", "2016-3-20 sunday 21:40"), + param('ko', "2016년 3월 20일 (일) 21시 40분", "2016-3-20 sunday 21:40"), + # Hebrew param('he', "20 לאפריל 2012", "20 april 2012"), param('he', "יום רביעי ה-19 בנובמבר 2013", "wednesday 19 november 2013"), @@ -1026,6 +1044,30 @@ def test_translation(self, shortname, datetime_string, expected_translation): param('ja', "60秒", "60 second"), param('ja', "3秒前", "3 second ago"), param('ja', "現在", "0 second ago"), + # Korean + param('ko', "금년", "0 year ago"), + param('ko', "작년", "1 year ago"), + param('ko', "17년 전", "17 year ago"), + param('ko', "이번 달", "0 month ago"), + param('ko', "저번 달", "1 month ago"), + param('ko', "1개월 전", "1 month ago"), + param('ko', "2개월 전", "2 month ago"), + param('ko', "이번 주", "0 week ago"), + param('ko', "지난 주", "1 week ago"), + param('ko', "저번 주", "2 week ago"), + param('ko', "2주 전", "2 week ago"), + param('ko', "3주간", "3 week"), + param('ko', "오늘", "0 day ago"), + param('ko', "어제", "1 day ago"), + param('ko', "그저께", "2 day ago"), + param('ko', "3일전", "3 day ago"), + param('ko', "1시간", "1 hour"), + param('ko', "23시간 전", "23 hour ago"), + param('ko', "30분", "30 minute"), + param('ko', "3분간", "3 minute"), + param('ko', "60초", "60 second"), + param('ko', "3초전", "3 second ago"), + param('ko', "현재", "0 second ago"), # Hebrew param('he', "אתמול", "1 day ago"), param('he', "אתמול בשעה 3", "1 day ago 3"), diff --git a/tests/test_search.py b/tests/test_search.py index 1ea7b7bff..937cafe89 100644 --- a/tests/test_search.py +++ b/tests/test_search.py @@ -190,6 +190,24 @@ def check_error_message(self, message): param('ja', "2016年3月20日(日) 21時40分"), param('ja', "2016年3月20日 (日) 21時40分"), + # Korean + param('ko', "오후 3시"), + param('ko', "2시"), + param('ko', "11시 42분"), + param('ko', "3개월"), + param('ko', "약 53개월 전"), + param('ko', "3월"), + param('ko', "십이월"), + param('ko', "2월 10일"), + param('ko', "2013년 2월"), + param('ko', "2013년 04월 08일"), + param('ko', "2016년 03월 24일 목요일 10시 05분"), + param('ko', "2016년 3월 20일 21시 40분"), + param('ko', "2016년 03월 21일 23시 05분 11초"), + param('ko', "2016년 3월 21일(월) 14시 48분"), + param('ko', "2016년 3월 20일(일) 21시 40분"), + param('ko', "2016년 3월 20일 (일) 21시 40분"), + # Hebrew param('he', "20 לאפריל 2012"), param('he', "יום רביעי ה-19 בנובמבר 2013"),