Bug fixing of DateParser class in _Date_bg.py.

svn: r14785
This commit is contained in:
Boril Gourinov 2010-03-12 23:04:56 +00:00
parent f3ff5bd3c8
commit 0f8219efba

View File

@ -50,53 +50,50 @@ from _DateHandler import register_datehandler
class DateParserBG(DateParser): class DateParserBG(DateParser):
modifier_to_int = { modifier_to_int = {
u'преди' : Date.MOD_BEFORE, u'преди' : Date.MOD_BEFORE,
u'пр.' : Date.MOD_BEFORE, u'пр.' : Date.MOD_BEFORE,
u'пр' : Date.MOD_BEFORE, u'пр' : Date.MOD_BEFORE,
u'след' : Date.MOD_AFTER, u'след' : Date.MOD_AFTER,
u'сл.' : Date.MOD_AFTER, u'сл.' : Date.MOD_AFTER,
u'сл' : Date.MOD_AFTER, u'сл' : Date.MOD_AFTER,
u'ок' : Date.MOD_ABOUT, u'ок' : Date.MOD_ABOUT,
u'ок.' : Date.MOD_ABOUT, u'ок.' : Date.MOD_ABOUT,
u'около' : Date.MOD_ABOUT, u'около' : Date.MOD_ABOUT,
u'примерно' : Date.MOD_ABOUT, u'примерно' : Date.MOD_ABOUT,
u'прим' : Date.MOD_ABOUT, u'прим' : Date.MOD_ABOUT,
u'прим.' : Date.MOD_ABOUT, u'прим.' : Date.MOD_ABOUT,
u'приблизително' : Date.MOD_ABOUT, u'приблизително' : Date.MOD_ABOUT,
u'приб.' : Date.MOD_ABOUT, u'приб.' : Date.MOD_ABOUT,
u'прибл.' : Date.MOD_ABOUT, u'прибл.' : Date.MOD_ABOUT,
u'приб' : Date.MOD_ABOUT, u'приб' : Date.MOD_ABOUT,
u'прибл' : Date.MOD_ABOUT, u'прибл' : Date.MOD_ABOUT,
} }
calendar_to_int = { calendar_to_int = {
u'григориански' : Date.CAL_GREGORIAN, u'григориански' : Date.CAL_GREGORIAN,
u'г' : Date.CAL_GREGORIAN, u'г' : Date.CAL_GREGORIAN,
u'юлиански' : Date.CAL_JULIAN, u'юлиански' : Date.CAL_JULIAN,
u'ю' : Date.CAL_JULIAN, u'ю' : Date.CAL_JULIAN,
u'еврейски' : Date.CAL_HEBREW, u'еврейски' : Date.CAL_HEBREW,
u'е' : Date.CAL_HEBREW, u'е' : Date.CAL_HEBREW,
u'ислямски' : Date.CAL_ISLAMIC, u'ислямски' : Date.CAL_ISLAMIC,
u'и' : Date.CAL_ISLAMIC, u'и' : Date.CAL_ISLAMIC,
u'френски републикански': Date.CAL_FRENCH, u'френски републикански' : Date.CAL_FRENCH,
u'републикански': Date.CAL_FRENCH, u'републикански' : Date.CAL_FRENCH,
u'фр.реп.': Date.CAL_FRENCH, u'фр.реп.' : Date.CAL_FRENCH,
u'р' : Date.CAL_FRENCH, u'р' : Date.CAL_FRENCH,
u'френски' : Date.CAL_FRENCH, u'френски' : Date.CAL_FRENCH,
u'фр.' : Date.CAL_FRENCH, u'фр.' : Date.CAL_FRENCH,
u'персийски' : Date.CAL_PERSIAN, u'персийски' : Date.CAL_PERSIAN,
u'п' : Date.CAL_PERSIAN, u'п' : Date.CAL_PERSIAN,
} }
quality_to_int = { quality_to_int = {
u'приблизително' : Date.QUAL_ESTIMATED, u'приблизително' : Date.QUAL_ESTIMATED,
u'прибл.' : Date.QUAL_ESTIMATED, u'прибл.' : Date.QUAL_ESTIMATED,
u'прибл' : Date.QUAL_ESTIMATED,
u'изчислено' : Date.QUAL_CALCULATED, u'изчислено' : Date.QUAL_CALCULATED,
u'изчисл.' : Date.QUAL_CALCULATED, u'изчисл.' : Date.QUAL_CALCULATED,
u'изч.' : Date.QUAL_CALCULATED, u'изч.' : Date.QUAL_CALCULATED,
u'изчисл' : Date.QUAL_CALCULATED,
u'изч' : Date.QUAL_CALCULATED,
} }
hebrew_to_int = { hebrew_to_int = {
@ -169,14 +166,14 @@ class DateParserBG(DateParser):
DateParser.init_strings(self) DateParser.init_strings(self)
_span_1 = [u'от'] _span_1 = [u'от']
_span_2 = [u'до'] _span_2 = [u'до']
_range_1 = [u'между', u'меж\.', u'меж'] _range_1 = [u'между']
_range_2 = [u'и'] _range_2 = [u'и']
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" % self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)), ('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE) re.IGNORECASE)
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" % self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)), ('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE) re.IGNORECASE)
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -191,7 +188,7 @@ class DateDisplayBG(DateDisplay):
u"юни", u"юли", u"август", u"септември", u"октомври", u"юни", u"юли", u"август", u"септември", u"октомври",
u"ноември", u"декември" ) u"ноември", u"декември" )
short_months = ( u"", u"ян", u"февр", u"март", u"апр", u"май", u"юни", short_months = ( u"", u"яну", u"февр", u"март", u"апр", u"май", u"юни",
u"юли", u"авг", u"септ", u"окт", u"ное", u"дек" ) u"юли", u"авг", u"септ", u"окт", u"ное", u"дек" )
@ -205,20 +202,14 @@ class DateDisplayBG(DateDisplay):
u" (шведски)" u" (шведски)"
) )
_mod_str = ( _mod_str = ("", "преди ", "след ", "около ", "", "", "")
u"",
u"преди ",
u"след ",
u"около ",
u"", u"", u"")
_qual_str = (u"", u"по преценка ", u"пресметнато ") _qual_str = ("", "приблизително ", "изчислено ")
_bce_str = u"%s пр. Хр." _bce_str = u"%s пр. Хр."
formats = ( formats = (
"ГГГГ-ММ-ДД (ISO)", "Числов", "Месец Ден, Год.", "ГГГГ-ММ-ДД (ISO)", "Числов", "Ден Месец Год", "ДД ММ ГГГГГ"
"МЕС ДД, ГГГГГ", "Ден Месец, Год.", "ДД МЕС, ГГГГГ"
) )
hebrew = ( u"", hebrew = ( u"",
@ -301,21 +292,19 @@ class DateDisplayBG(DateDisplay):
elif mod == Date.MOD_SPAN: elif mod == Date.MOD_SPAN:
d1 = self.display_cal[cal](start) d1 = self.display_cal[cal](start)
d2 = self.display_cal[cal](date.get_stop_date()) d2 = self.display_cal[cal](date.get_stop_date())
return "%sс %s %s %s%s" % (qual_str, d1, u'преди', d2, return "%s%s %s %s %s%s" % (qual_str, u'от', d1, u'до', d2, self.calendar[cal])
self.calendar[cal])
elif mod == Date.MOD_RANGE: elif mod == Date.MOD_RANGE:
d1 = self.display_cal[cal](start) d1 = self.display_cal[cal](start)
d2 = self.display_cal[cal](date.get_stop_date()) d2 = self.display_cal[cal](date.get_stop_date())
return "%s%s %s %s %s%s" % (qual_str, u'между', d1, u'и', return "%s%s %s %s %s%s" % (qual_str, u'между', d1, u'и', d2, self.calendar[cal])
d2, self.calendar[cal])
else: else:
text = self.display_cal[date.get_calendar()](start) text = self.display_cal[date.get_calendar()](start)
return "%s%s%s%s" % (qual_str, self._mod_str[mod], return "%s%s%s%s" % (qual_str, self._mod_str[mod], text, self.calendar[cal])
text, self.calendar[cal])
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
# Register classes # Register classes
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
register_datehandler(('bg_BG', 'bg', 'bulgarian', 'Bulgarian'), DateParserBG, DateDisplayBG) register_datehandler(('bg_BG', 'bg', 'bulgarian', 'Bulgarian'),
DateParserBG, DateDisplayBG)