* src/DateDisplay.py: Remove localized displayers.
* src/DateParser.py: Remove localized parsers. * src/DateHandler.py: Remove hard-coded localization assignments; load localized classes from dates directory. * src/const.py.in: Add datesDir constant. * src/dates/Date_ru.py: Add to CVS. * src/dates/Date_fr.py: Add to CVS. * src/dates/Makefile.am: Add to CVS. * src/dates/.cvsignore: Add to CVS. * configure.in: Generate src/dates/Makefile. * src/Makefile.am: Add dates to SUBDIRS. svn: r3729
This commit is contained in:
		
							
								
								
									
										13
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								ChangeLog
									
									
									
									
									
								
							@@ -1,3 +1,16 @@
 | 
				
			|||||||
 | 
					2004-11-15 Alex Roitman  <shura@alex.neuro.umn.edu>
 | 
				
			||||||
 | 
						* src/DateDisplay.py: Remove localized displayers.
 | 
				
			||||||
 | 
						* src/DateParser.py: Remove localized parsers.
 | 
				
			||||||
 | 
						* src/DateHandler.py: Remove hard-coded localization assignments;
 | 
				
			||||||
 | 
						load localized classes from dates directory.
 | 
				
			||||||
 | 
						* src/const.py.in: Add datesDir constant.
 | 
				
			||||||
 | 
						* src/dates/Date_ru.py: Add to CVS.
 | 
				
			||||||
 | 
						* src/dates/Date_fr.py: Add to CVS. 
 | 
				
			||||||
 | 
						* src/dates/Makefile.am: Add to CVS. 
 | 
				
			||||||
 | 
						* src/dates/.cvsignore: Add to CVS. 
 | 
				
			||||||
 | 
						* configure.in: Generate src/dates/Makefile.
 | 
				
			||||||
 | 
						* src/Makefile.am: Add dates to SUBDIRS.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2004-11-14  Don Allingham  <dallingham@users.sourceforge.net>
 | 
					2004-11-14  Don Allingham  <dallingham@users.sourceforge.net>
 | 
				
			||||||
	* src/DateParser.py: handle leap year in gregorial validity check
 | 
						* src/DateParser.py: handle leap year in gregorial validity check
 | 
				
			||||||
	* src/MergeData.py: Preserve more data when merging 
 | 
						* src/MergeData.py: Preserve more data when merging 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -245,6 +245,7 @@ src/Makefile
 | 
				
			|||||||
src/const.py
 | 
					src/const.py
 | 
				
			||||||
src/docgen/Makefile
 | 
					src/docgen/Makefile
 | 
				
			||||||
src/plugins/Makefile
 | 
					src/plugins/Makefile
 | 
				
			||||||
 | 
					src/dates/Makefile
 | 
				
			||||||
src/data/Makefile
 | 
					src/data/Makefile
 | 
				
			||||||
src/data/templates/Makefile
 | 
					src/data/templates/Makefile
 | 
				
			||||||
src/po/Makefile
 | 
					src/po/Makefile
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -295,90 +295,3 @@ class DateDisplay:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    def _display_islamic(self,date_val):
 | 
					    def _display_islamic(self,date_val):
 | 
				
			||||||
        return self._display_calendar(date_val,self._islamic)
 | 
					        return self._display_calendar(date_val,self._islamic)
 | 
				
			||||||
 | 
					 | 
				
			||||||
#-------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# French parser
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#-------------------------------------------------------------------------
 | 
					 | 
				
			||||||
class DateDisplayFR(DateDisplay):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    calendar = (
 | 
					 | 
				
			||||||
        "", " (Julien)", " (H\xc3\xa9breu)", 
 | 
					 | 
				
			||||||
        " (R\xc3\xa9volutionnaire)", " (Perse)", " (Islamique)"
 | 
					 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    _mod_str = ("","avant ","apr\xc3\xa8s ","vers ","","","")
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    def display(self,date):
 | 
					 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        Returns a text string representing the date.
 | 
					 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        mod = date.get_modifier()
 | 
					 | 
				
			||||||
        cal = date.get_calendar()
 | 
					 | 
				
			||||||
        qual = date.get_quality()
 | 
					 | 
				
			||||||
        start = date.get_start_date()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        qual_str = self._qual_str[qual]
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        if mod == Date.MOD_TEXTONLY:
 | 
					 | 
				
			||||||
            return date.get_text()
 | 
					 | 
				
			||||||
        elif start == Date.EMPTY:
 | 
					 | 
				
			||||||
            return ""
 | 
					 | 
				
			||||||
        elif mod == Date.MOD_SPAN:
 | 
					 | 
				
			||||||
            d1 = self.display_cal[cal](start)
 | 
					 | 
				
			||||||
            d2 = self.display_cal[cal](date.get_stop_date())
 | 
					 | 
				
			||||||
            return "%sde %s \xc3\xa0 %s%s" % (qual_str,d1,d2,self.calendar[cal])
 | 
					 | 
				
			||||||
        elif mod == Date.MOD_RANGE:
 | 
					 | 
				
			||||||
            d1 = self.display_cal[cal](start)
 | 
					 | 
				
			||||||
            d2 = self.display_cal[cal](date.get_stop_date())
 | 
					 | 
				
			||||||
            return "%sentre %s et %s%s" % (qual_str,d1,d2,self.calendar[cal])
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            text = self.display_cal[date.get_calendar()](start)
 | 
					 | 
				
			||||||
            return "%s%s%s%s" % (qual_str,self._mod_str[mod],text,self.calendar[cal])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#-------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Russian parser
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#-------------------------------------------------------------------------
 | 
					 | 
				
			||||||
class DateDisplayRU(DateDisplay):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    calendar = (
 | 
					 | 
				
			||||||
        "", " (\xd1\x8e\xd0\xbb\xd0\xb8\xd0\xb0\xd0\xbd\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9)", 
 | 
					 | 
				
			||||||
        " (\xd0\xb5\xd0\xb2\xd1\x80\xd0\xb5\xd0\xb9\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9)", 
 | 
					 | 
				
			||||||
        " (\xd1\x80\xd0\xb5\xd1\x81\xd0\xbf\xd1\x83\xd0\xb1\xd0\xbb\xd0\xb8\xd0\xba\xd0\xb0\xd0\xbd\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9)", 
 | 
					 | 
				
			||||||
        " (\xd0\xbf\xd0\xb5\xd1\x80\xd1\x81\xd0\xb8\xd0\xb4\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9)", 
 | 
					 | 
				
			||||||
        " (\xd0\xb8\xd1\x81\xd0\xbb\xd0\xb0\xd0\xbc\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9)"
 | 
					 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    _mod_str = ("","\xd0\xb4\xd0\xbe ",
 | 
					 | 
				
			||||||
        "\xd0\xbf\xd0\xbe\xd1\x81\xd0\xbb\xd0\xb5 ",
 | 
					 | 
				
			||||||
        "\xd0\xbe\xd0\xba\xd0\xbe\xd0\xbb\xd0\xbe ","","","")
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    def display(self,date):
 | 
					 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        Returns a text string representing the date.
 | 
					 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        mod = date.get_modifier()
 | 
					 | 
				
			||||||
        cal = date.get_calendar()
 | 
					 | 
				
			||||||
        qual = date.get_quality()
 | 
					 | 
				
			||||||
        start = date.get_start_date()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        qual_str = self._qual_str[qual]
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        if mod == Date.MOD_TEXTONLY:
 | 
					 | 
				
			||||||
            return date.get_text()
 | 
					 | 
				
			||||||
        elif start == Date.EMPTY:
 | 
					 | 
				
			||||||
            return ""
 | 
					 | 
				
			||||||
        elif mod == Date.MOD_SPAN:
 | 
					 | 
				
			||||||
            d1 = self.display_cal[cal](start)
 | 
					 | 
				
			||||||
            d2 = self.display_cal[cal](date.get_stop_date())
 | 
					 | 
				
			||||||
            return "%s\xd1\x81 %s \xd0\xbf\xd0\xbe %s%s" % (qual_str,d1,d2,self.calendar[cal])
 | 
					 | 
				
			||||||
        elif mod == Date.MOD_RANGE:
 | 
					 | 
				
			||||||
            d1 = self.display_cal[cal](start)
 | 
					 | 
				
			||||||
            d2 = self.display_cal[cal](date.get_stop_date())
 | 
					 | 
				
			||||||
            return "%s\xd0\xbc\xd0\xb5\xd0\xb6\xd0\xb4\xd1\x83 %s \xd0\xb8 %s%s" % (qual_str,d1,d2,self.calendar[cal])
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            text = self.display_cal[date.get_calendar()](start)
 | 
					 | 
				
			||||||
            return "%s%s%s%s" % (qual_str,self._mod_str[mod],text,self.calendar[cal])
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -50,32 +50,22 @@ _lang = locale.getlocale(locale.LC_TIME)[0]
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
_lang_to_parser = {
 | 
					_lang_to_parser = {
 | 
				
			||||||
    'C'      : DateParser.DateParser,
 | 
					    'C'      : DateParser.DateParser,
 | 
				
			||||||
    'fr_FR'  : DateParser.DateParserFR,
 | 
					 | 
				
			||||||
    'en_US'  : DateParser.DateParser,
 | 
					    'en_US'  : DateParser.DateParser,
 | 
				
			||||||
    'en_GB'  : DateParser.DateParser,
 | 
					    'en_GB'  : DateParser.DateParser,
 | 
				
			||||||
    'en_AU'  : DateParser.DateParser,
 | 
					    'en_AU'  : DateParser.DateParser,
 | 
				
			||||||
    'en_CA'  : DateParser.DateParser,
 | 
					    'en_CA'  : DateParser.DateParser,
 | 
				
			||||||
    'en_SE'  : DateParser.DateParser,
 | 
					    'en_SE'  : DateParser.DateParser,
 | 
				
			||||||
    'en'     : DateParser.DateParser,
 | 
					    'en'     : DateParser.DateParser,
 | 
				
			||||||
    'ru_RU'  : DateParser.DateParserRU,
 | 
					 | 
				
			||||||
    'ru_RU.koi8r'  : DateParser.DateParserRU,
 | 
					 | 
				
			||||||
    'ru_RU.utf8'  : DateParser.DateParserRU,
 | 
					 | 
				
			||||||
    'russian'  : DateParser.DateParserRU,
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
_lang_to_display = {
 | 
					_lang_to_display = {
 | 
				
			||||||
    'C'      : DateDisplay.DateDisplay,
 | 
					    'C'      : DateDisplay.DateDisplay,
 | 
				
			||||||
    'fr_FR'  : DateDisplay.DateDisplayFR,
 | 
					 | 
				
			||||||
    'en_US'  : DateDisplay.DateDisplay,
 | 
					    'en_US'  : DateDisplay.DateDisplay,
 | 
				
			||||||
    'en_GB'  : DateDisplay.DateDisplay,
 | 
					    'en_GB'  : DateDisplay.DateDisplay,
 | 
				
			||||||
    'en_AU'  : DateDisplay.DateDisplay,
 | 
					    'en_AU'  : DateDisplay.DateDisplay,
 | 
				
			||||||
    'en_CA'  : DateDisplay.DateDisplay,
 | 
					    'en_CA'  : DateDisplay.DateDisplay,
 | 
				
			||||||
    'en_SE'  : DateDisplay.DateDisplay,
 | 
					    'en_SE'  : DateDisplay.DateDisplay,
 | 
				
			||||||
    'en'     : DateDisplay.DateDisplay,
 | 
					    'en'     : DateDisplay.DateDisplay,
 | 
				
			||||||
    'ru_RU'  : DateDisplay.DateDisplayRU,
 | 
					 | 
				
			||||||
    'ru_RU.koi8r'  : DateDisplay.DateDisplayRU,
 | 
					 | 
				
			||||||
    'ru_RU.utf8'  : DateDisplay.DateDisplayRU,
 | 
					 | 
				
			||||||
    'russian'  : DateDisplay.DateDisplayRU,
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#-------------------------------------------------------------------------
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
@@ -116,3 +106,12 @@ def get_format():
 | 
				
			|||||||
    except:
 | 
					    except:
 | 
				
			||||||
        print "not found"
 | 
					        print "not found"
 | 
				
			||||||
        return 0
 | 
					        return 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Import localized date classes
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					from Plugins import load_plugins
 | 
				
			||||||
 | 
					from const import datesDir
 | 
				
			||||||
 | 
					load_plugins(datesDir)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -524,117 +524,3 @@ class DateParser:
 | 
				
			|||||||
        new_date = Date.Date()
 | 
					        new_date = Date.Date()
 | 
				
			||||||
        self.set_date(new_date,text)
 | 
					        self.set_date(new_date,text)
 | 
				
			||||||
        return new_date
 | 
					        return new_date
 | 
				
			||||||
 | 
					 | 
				
			||||||
#-------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# French parser
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#-------------------------------------------------------------------------
 | 
					 | 
				
			||||||
class DateParserFR(DateParser):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    modifier_to_int = {
 | 
					 | 
				
			||||||
        'avant'    : Date.MOD_BEFORE, 
 | 
					 | 
				
			||||||
        'av.'      : Date.MOD_BEFORE, 
 | 
					 | 
				
			||||||
        'av'       : Date.MOD_BEFORE, 
 | 
					 | 
				
			||||||
        'apr\xc3\xa8s' : Date.MOD_AFTER,
 | 
					 | 
				
			||||||
        'ap.'    : Date.MOD_AFTER,
 | 
					 | 
				
			||||||
        'ap'     : Date.MOD_AFTER,
 | 
					 | 
				
			||||||
        'env.'   : Date.MOD_ABOUT,
 | 
					 | 
				
			||||||
        'env'    : Date.MOD_ABOUT,
 | 
					 | 
				
			||||||
        'circa'  : Date.MOD_ABOUT,
 | 
					 | 
				
			||||||
        'c.'     : Date.MOD_ABOUT,
 | 
					 | 
				
			||||||
        'vers'   : Date.MOD_ABOUT,
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    calendar_to_int = {
 | 
					 | 
				
			||||||
        'gr\xc3\xa9gorien'      : Date.CAL_GREGORIAN,
 | 
					 | 
				
			||||||
        'g'                     : Date.CAL_GREGORIAN,
 | 
					 | 
				
			||||||
        'julien'                : Date.CAL_JULIAN,
 | 
					 | 
				
			||||||
        'j'                     : Date.CAL_JULIAN,
 | 
					 | 
				
			||||||
        'h\xc3\xa9breu'         : Date.CAL_HEBREW,
 | 
					 | 
				
			||||||
        'h'                     : Date.CAL_HEBREW,
 | 
					 | 
				
			||||||
        'islamique'             : Date.CAL_ISLAMIC,
 | 
					 | 
				
			||||||
        'i'                     : Date.CAL_ISLAMIC,
 | 
					 | 
				
			||||||
        'r\xc3\xa9volutionnaire': Date.CAL_FRENCH,
 | 
					 | 
				
			||||||
        'r'                     : Date.CAL_FRENCH,
 | 
					 | 
				
			||||||
        'perse'                 : Date.CAL_PERSIAN,
 | 
					 | 
				
			||||||
        'p'                     : Date.CAL_PERSIAN,
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    quality_to_int = {
 | 
					 | 
				
			||||||
        'estimated'  : Date.QUAL_ESTIMATED,
 | 
					 | 
				
			||||||
        'est.'       : Date.QUAL_ESTIMATED,
 | 
					 | 
				
			||||||
        'est'        : Date.QUAL_ESTIMATED,
 | 
					 | 
				
			||||||
        'calc.'      : Date.QUAL_CALCULATED,
 | 
					 | 
				
			||||||
        'calc'       : Date.QUAL_CALCULATED,
 | 
					 | 
				
			||||||
        'calculated' : Date.QUAL_CALCULATED,
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def init_strings(self):
 | 
					 | 
				
			||||||
        DateParser.init_strings(self)
 | 
					 | 
				
			||||||
        self._span     = re.compile("(de)\s+(.+)\s+(\xc3\xa0)\s+(.+)",
 | 
					 | 
				
			||||||
                           re.IGNORECASE)
 | 
					 | 
				
			||||||
        self._range    = re.compile("(ent.|ent|entre)\s+(.+)\s+(et)\s+(.+)",
 | 
					 | 
				
			||||||
                           re.IGNORECASE)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#-------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Russian parser
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#-------------------------------------------------------------------------
 | 
					 | 
				
			||||||
class DateParserRU(DateParser):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    modifier_to_int = {
 | 
					 | 
				
			||||||
        '\xd0\xb4\xd0\xbe'    : Date.MOD_BEFORE, 
 | 
					 | 
				
			||||||
        '\xd0\xbf\xd0\xbe'    : Date.MOD_BEFORE,
 | 
					 | 
				
			||||||
        '\xd0\xbf\xd0\xbe\xd1\x81\xd0\xbb\xd0\xb5' : Date.MOD_AFTER,
 | 
					 | 
				
			||||||
        '\xd0\xbf.'    : Date.MOD_AFTER,
 | 
					 | 
				
			||||||
        '\xd0\xbf'    : Date.MOD_AFTER,
 | 
					 | 
				
			||||||
        '\xd1\x81'     : Date.MOD_AFTER,
 | 
					 | 
				
			||||||
        '\xd0\xbe\xd0\xba' : Date.MOD_ABOUT,
 | 
					 | 
				
			||||||
        '\xd0\xbe\xd0\xba.'   : Date.MOD_ABOUT,
 | 
					 | 
				
			||||||
        '\xd0\xbe\xd0\xba\xd0\xbe\xd0\xbb\xd0\xbe'    : Date.MOD_ABOUT,
 | 
					 | 
				
			||||||
        '\xd0\xbf\xd1\x80\xd0\xb8\xd0\xbc\xd0\xb5\xd1\x80\xd0\xbd\xd0\xbe'  : Date.MOD_ABOUT,
 | 
					 | 
				
			||||||
        '\xd0\xbf\xd1\x80\xd0\xb8\xd0\xbc'     : Date.MOD_ABOUT,
 | 
					 | 
				
			||||||
        '\xd0\xbf\xd1\x80\xd0\xb8\xd0\xbc.'     : Date.MOD_ABOUT,
 | 
					 | 
				
			||||||
        '\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb1\xd0\xbb\xd0\xb8\xd0\xb7\xd0\xb8\xd1\x82\xd0\xb5\xd0\xbb\xd1\x8c\xd0\xbd\xd0\xbe'  : Date.MOD_ABOUT,
 | 
					 | 
				
			||||||
        '\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb1.'  : Date.MOD_ABOUT,
 | 
					 | 
				
			||||||
        '\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb1\xd0\xbb.'  : Date.MOD_ABOUT,
 | 
					 | 
				
			||||||
        '\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb1'  : Date.MOD_ABOUT,
 | 
					 | 
				
			||||||
        '\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb1\xd0\xbb'  : Date.MOD_ABOUT,
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    calendar_to_int = {
 | 
					 | 
				
			||||||
        '\xd0\xb3\xd1\x80\xd0\xb8\xd0\xb3\xd0\xbe\xd1\x80\xd0\xb8\xd0\xb0\xd0\xbd\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9'   : Date.CAL_GREGORIAN,
 | 
					 | 
				
			||||||
        '\xd0\xb3'                 : Date.CAL_GREGORIAN,
 | 
					 | 
				
			||||||
        '\xd1\x8e\xd0\xbb\xd0\xb8\xd0\xb0\xd0\xbd\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9'            : Date.CAL_JULIAN,
 | 
					 | 
				
			||||||
        '\xd1\x8e'                 : Date.CAL_JULIAN,
 | 
					 | 
				
			||||||
        '\xd0\xb5\xd0\xb2\xd1\x80\xd0\xb5\xd0\xb9\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9'         : Date.CAL_HEBREW,
 | 
					 | 
				
			||||||
        '\xd0\xb5'         : Date.CAL_HEBREW,
 | 
					 | 
				
			||||||
        '\xd0\xb8\xd1\x81\xd0\xbb\xd0\xb0\xd0\xbc\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9'         : Date.CAL_ISLAMIC,
 | 
					 | 
				
			||||||
        '\xd0\xb8'                 : Date.CAL_ISLAMIC,
 | 
					 | 
				
			||||||
        '\xd1\x80\xd0\xb5\xd1\x81\xd0\xbf\xd1\x83\xd0\xb1\xd0\xbb\xd0\xb8\xd0\xba\xd0\xb0\xd0\xbd\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9': Date.CAL_FRENCH,
 | 
					 | 
				
			||||||
        '\xd1\x80'                 : Date.CAL_FRENCH,
 | 
					 | 
				
			||||||
        '\xd0\xbf\xd0\xb5\xd1\x80\xd1\x81\xd0\xb8\xd0\xb4\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9'             : Date.CAL_PERSIAN,
 | 
					 | 
				
			||||||
        '\xd0\xbf'             : Date.CAL_PERSIAN,
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    quality_to_int = {
 | 
					 | 
				
			||||||
        '\xd0\xbe\xd1\x86\xd0\xb5\xd0\xbd\xd0\xb5\xd0\xbd\xd0\xbe'  : Date.QUAL_ESTIMATED,
 | 
					 | 
				
			||||||
        '\xd0\xbe\xd1\x86\xd0\xb5\xd0\xbd.'       : Date.QUAL_ESTIMATED,
 | 
					 | 
				
			||||||
        '\xd0\xbe\xd1\x86.'        : Date.QUAL_ESTIMATED,
 | 
					 | 
				
			||||||
        '\xd0\xbe\xd1\x86\xd0\xb5\xd0\xbd'       : Date.QUAL_ESTIMATED,
 | 
					 | 
				
			||||||
        '\xd0\xbe\xd1\x86'        : Date.QUAL_ESTIMATED,
 | 
					 | 
				
			||||||
        '\xd0\xb2\xd1\x8b\xd1\x87\xd0\xb8\xd1\x81\xd0\xbb\xd0\xb5\xd0\xbd\xd0\xbe'      : Date.QUAL_CALCULATED,
 | 
					 | 
				
			||||||
        '\xd0\xb2\xd1\x8b\xd1\x87\xd0\xb8\xd1\x81\xd0\xbb.'       : Date.QUAL_CALCULATED,
 | 
					 | 
				
			||||||
        '\xd0\xb2\xd1\x8b\xd1\x87.' : Date.QUAL_CALCULATED,
 | 
					 | 
				
			||||||
        '\xd0\xb2\xd1\x8b\xd1\x87\xd0\xb8\xd1\x81\xd0\xbb'       : Date.QUAL_CALCULATED,
 | 
					 | 
				
			||||||
        '\xd0\xb2\xd1\x8b\xd1\x87' : Date.QUAL_CALCULATED,
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def init_strings(self):
 | 
					 | 
				
			||||||
        DateParser.init_strings(self)
 | 
					 | 
				
			||||||
        self._span     = re.compile("(\xd1\x81|\xd0\xbe\xd1\x82)\\s+(.+)\\s+(\xd0\xbf\xd0\xbe|\xd0\xb4\xd0\xbe)\\s+(.+)",
 | 
					 | 
				
			||||||
                           re.IGNORECASE)
 | 
					 | 
				
			||||||
        self._range    = re.compile("(\xd0\xbc\xd0\xb5\xd0\xb6\xd0\xb4\xd1\x83|\xd0\xbc\xd0\xb5\xd0\xb6|\xd0\xbc\xd0\xb5\xd0\xb6.)\\s+(.+)\\s+(\xd0\xb8)\\s+(.+)",
 | 
					 | 
				
			||||||
                           re.IGNORECASE)
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
# This is the src level Makefile for Gramps
 | 
					# This is the src level Makefile for Gramps
 | 
				
			||||||
SUBDIRS = docgen plugins data po 
 | 
					SUBDIRS = docgen plugins dates data po 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# For intl. support, how do we compile?
 | 
					# For intl. support, how do we compile?
 | 
				
			||||||
MOSTLYCLEANFILES = 
 | 
					MOSTLYCLEANFILES = 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -96,6 +96,7 @@ filterFile     = "%s/rule.glade" % rootDir
 | 
				
			|||||||
errdialogsFile = "%s/gramps.glade" % rootDir
 | 
					errdialogsFile = "%s/gramps.glade" % rootDir
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pluginsDir     = "%s/plugins" % rootDir
 | 
					pluginsDir     = "%s/plugins" % rootDir
 | 
				
			||||||
 | 
					datesDir       = "%s/dates" % rootDir
 | 
				
			||||||
docgenDir      = "%s/docgen" % rootDir
 | 
					docgenDir      = "%s/docgen" % rootDir
 | 
				
			||||||
dataDir        = "%s/data" % rootDir
 | 
					dataDir        = "%s/data" % rootDir
 | 
				
			||||||
template_dir   = "%s/templates" % dataDir
 | 
					template_dir   = "%s/templates" % dataDir
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								src/dates/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/dates/.cvsignore
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					Makefile
 | 
				
			||||||
 | 
					Makefile.in
 | 
				
			||||||
 | 
					*.pyc
 | 
				
			||||||
 | 
					*.pyo
 | 
				
			||||||
							
								
								
									
										146
									
								
								src/dates/Date_fr.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								src/dates/Date_fr.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,146 @@
 | 
				
			|||||||
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Gramps - a GTK+/GNOME based genealogy program
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Copyright (C) 2004  Donald N. Allingham
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This program is free software; you can redistribute it and/or modify
 | 
				
			||||||
 | 
					# it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					# the Free Software Foundation; either version 2 of the License, or
 | 
				
			||||||
 | 
					# (at your option) any later version.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					# GNU General Public License for more details.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					# along with this program; if not, write to the Free Software
 | 
				
			||||||
 | 
					# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# $Id$
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					French-specific classes for parsing and displaying dates.
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Python modules
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					import re
 | 
				
			||||||
 | 
					import calendar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# GRAMPS modules
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					import Date
 | 
				
			||||||
 | 
					from DateParser import DateParser
 | 
				
			||||||
 | 
					from DateDisplay import DateDisplay
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# French parser
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					class DateParserFR(DateParser):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    modifier_to_int = {
 | 
				
			||||||
 | 
					        'avant'    : Date.MOD_BEFORE, 
 | 
				
			||||||
 | 
					        'av.'      : Date.MOD_BEFORE, 
 | 
				
			||||||
 | 
					        'av'       : Date.MOD_BEFORE, 
 | 
				
			||||||
 | 
					        'après' : Date.MOD_AFTER,
 | 
				
			||||||
 | 
					        'ap.'    : Date.MOD_AFTER,
 | 
				
			||||||
 | 
					        'ap'     : Date.MOD_AFTER,
 | 
				
			||||||
 | 
					        'env.'   : Date.MOD_ABOUT,
 | 
				
			||||||
 | 
					        'env'    : Date.MOD_ABOUT,
 | 
				
			||||||
 | 
					        'circa'  : Date.MOD_ABOUT,
 | 
				
			||||||
 | 
					        'c.'     : Date.MOD_ABOUT,
 | 
				
			||||||
 | 
					        'vers'   : Date.MOD_ABOUT,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    calendar_to_int = {
 | 
				
			||||||
 | 
					        'grégorien'      : Date.CAL_GREGORIAN,
 | 
				
			||||||
 | 
					        'g'                     : Date.CAL_GREGORIAN,
 | 
				
			||||||
 | 
					        'julien'                : Date.CAL_JULIAN,
 | 
				
			||||||
 | 
					        'j'                     : Date.CAL_JULIAN,
 | 
				
			||||||
 | 
					        'hébreu'         : Date.CAL_HEBREW,
 | 
				
			||||||
 | 
					        'h'                     : Date.CAL_HEBREW,
 | 
				
			||||||
 | 
					        'islamique'             : Date.CAL_ISLAMIC,
 | 
				
			||||||
 | 
					        'i'                     : Date.CAL_ISLAMIC,
 | 
				
			||||||
 | 
					        'révolutionnaire': Date.CAL_FRENCH,
 | 
				
			||||||
 | 
					        'r'                     : Date.CAL_FRENCH,
 | 
				
			||||||
 | 
					        'perse'                 : Date.CAL_PERSIAN,
 | 
				
			||||||
 | 
					        'p'                     : Date.CAL_PERSIAN,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    quality_to_int = {
 | 
				
			||||||
 | 
					        'estimated'  : Date.QUAL_ESTIMATED,
 | 
				
			||||||
 | 
					        'est.'       : Date.QUAL_ESTIMATED,
 | 
				
			||||||
 | 
					        'est'        : Date.QUAL_ESTIMATED,
 | 
				
			||||||
 | 
					        'calc.'      : Date.QUAL_CALCULATED,
 | 
				
			||||||
 | 
					        'calc'       : Date.QUAL_CALCULATED,
 | 
				
			||||||
 | 
					        'calculated' : Date.QUAL_CALCULATED,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def init_strings(self):
 | 
				
			||||||
 | 
					        DateParser.init_strings(self)
 | 
				
			||||||
 | 
					        self._span     = re.compile("(de)\s+(.+)\s+(à)\s+(.+)",
 | 
				
			||||||
 | 
					                           re.IGNORECASE)
 | 
				
			||||||
 | 
					        self._range    = re.compile("(ent.|ent|entre)\s+(.+)\s+(et)\s+(.+)",
 | 
				
			||||||
 | 
					                           re.IGNORECASE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# French display
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					class DateDisplayFR(DateDisplay):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    calendar = (
 | 
				
			||||||
 | 
					        "", " (Julien)", " (Hébreu)", 
 | 
				
			||||||
 | 
					        " (Révolutionnaire)", " (Perse)", " (Islamique)"
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    _mod_str = ("","avant ","après ","vers ","","","")
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    def display(self,date):
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        Returns a text string representing the date.
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        mod = date.get_modifier()
 | 
				
			||||||
 | 
					        cal = date.get_calendar()
 | 
				
			||||||
 | 
					        qual = date.get_quality()
 | 
				
			||||||
 | 
					        start = date.get_start_date()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        qual_str = self._qual_str[qual]
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        if mod == Date.MOD_TEXTONLY:
 | 
				
			||||||
 | 
					            return date.get_text()
 | 
				
			||||||
 | 
					        elif start == Date.EMPTY:
 | 
				
			||||||
 | 
					            return ""
 | 
				
			||||||
 | 
					        elif mod == Date.MOD_SPAN:
 | 
				
			||||||
 | 
					            d1 = self.display_cal[cal](start)
 | 
				
			||||||
 | 
					            d2 = self.display_cal[cal](date.get_stop_date())
 | 
				
			||||||
 | 
					            return "%sde %s à %s%s" % (qual_str,d1,d2,self.calendar[cal])
 | 
				
			||||||
 | 
					        elif mod == Date.MOD_RANGE:
 | 
				
			||||||
 | 
					            d1 = self.display_cal[cal](start)
 | 
				
			||||||
 | 
					            d2 = self.display_cal[cal](date.get_stop_date())
 | 
				
			||||||
 | 
					            return "%sentre %s et %s%s" % (qual_str,d1,d2,self.calendar[cal])
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            text = self.display_cal[date.get_calendar()](start)
 | 
				
			||||||
 | 
					            return "%s%s%s%s" % (qual_str,self._mod_str[mod],text,self.calendar[cal])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Register classes
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					from DateHandler import _lang_to_parser, _lang_to_display
 | 
				
			||||||
 | 
					for lang_str in ('fr_FR','fr_FR.iso88591','fr_FR.utf8','french'):
 | 
				
			||||||
 | 
					    _lang_to_parser[lang_str] = DateParserFR
 | 
				
			||||||
 | 
					    _lang_to_display[lang_str] = DateDisplayFR
 | 
				
			||||||
							
								
								
									
										161
									
								
								src/dates/Date_ru.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										161
									
								
								src/dates/Date_ru.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,161 @@
 | 
				
			|||||||
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Gramps - a GTK+/GNOME based genealogy program
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Copyright (C) 2004  Donald N. Allingham
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This program is free software; you can redistribute it and/or modify
 | 
				
			||||||
 | 
					# it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					# the Free Software Foundation; either version 2 of the License, or
 | 
				
			||||||
 | 
					# (at your option) any later version.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					# GNU General Public License for more details.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					# along with this program; if not, write to the Free Software
 | 
				
			||||||
 | 
					# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# $Id$
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					Russian-specific classes for parsing and displaying dates.
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Python modules
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					import re
 | 
				
			||||||
 | 
					import calendar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# GRAMPS modules
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					import Date
 | 
				
			||||||
 | 
					from DateParser import DateParser
 | 
				
			||||||
 | 
					from DateDisplay import DateDisplay
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Russian parser
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					class DateParserRU(DateParser):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    modifier_to_int = {
 | 
				
			||||||
 | 
					        'до'    : Date.MOD_BEFORE, 
 | 
				
			||||||
 | 
					        'по'    : Date.MOD_BEFORE,
 | 
				
			||||||
 | 
					        'после' : Date.MOD_AFTER,
 | 
				
			||||||
 | 
					        'п.'    : Date.MOD_AFTER,
 | 
				
			||||||
 | 
					        'п'    : Date.MOD_AFTER,
 | 
				
			||||||
 | 
					        'с'     : Date.MOD_AFTER,
 | 
				
			||||||
 | 
					        'ок' : Date.MOD_ABOUT,
 | 
				
			||||||
 | 
					        'ок.'   : Date.MOD_ABOUT,
 | 
				
			||||||
 | 
					        'около'    : Date.MOD_ABOUT,
 | 
				
			||||||
 | 
					        'примерно'  : Date.MOD_ABOUT,
 | 
				
			||||||
 | 
					        'прим'     : Date.MOD_ABOUT,
 | 
				
			||||||
 | 
					        'прим.'     : Date.MOD_ABOUT,
 | 
				
			||||||
 | 
					        'приблизительно'  : Date.MOD_ABOUT,
 | 
				
			||||||
 | 
					        'приб.'  : Date.MOD_ABOUT,
 | 
				
			||||||
 | 
					        'прибл.'  : Date.MOD_ABOUT,
 | 
				
			||||||
 | 
					        'приб'  : Date.MOD_ABOUT,
 | 
				
			||||||
 | 
					        'прибл'  : Date.MOD_ABOUT,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    calendar_to_int = {
 | 
				
			||||||
 | 
					        'григорианский'   : Date.CAL_GREGORIAN,
 | 
				
			||||||
 | 
					        'г'                 : Date.CAL_GREGORIAN,
 | 
				
			||||||
 | 
					        'юлианский'            : Date.CAL_JULIAN,
 | 
				
			||||||
 | 
					        'ю'                 : Date.CAL_JULIAN,
 | 
				
			||||||
 | 
					        'еврейский'         : Date.CAL_HEBREW,
 | 
				
			||||||
 | 
					        'е'         : Date.CAL_HEBREW,
 | 
				
			||||||
 | 
					        'исламский'         : Date.CAL_ISLAMIC,
 | 
				
			||||||
 | 
					        'и'                 : Date.CAL_ISLAMIC,
 | 
				
			||||||
 | 
					        'республиканский': Date.CAL_FRENCH,
 | 
				
			||||||
 | 
					        'р'                 : Date.CAL_FRENCH,
 | 
				
			||||||
 | 
					        'персидский'             : Date.CAL_PERSIAN,
 | 
				
			||||||
 | 
					        'п'             : Date.CAL_PERSIAN,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    quality_to_int = {
 | 
				
			||||||
 | 
					        'оценено'  : Date.QUAL_ESTIMATED,
 | 
				
			||||||
 | 
					        'оцен.'       : Date.QUAL_ESTIMATED,
 | 
				
			||||||
 | 
					        'оц.'        : Date.QUAL_ESTIMATED,
 | 
				
			||||||
 | 
					        'оцен'       : Date.QUAL_ESTIMATED,
 | 
				
			||||||
 | 
					        'оц'        : Date.QUAL_ESTIMATED,
 | 
				
			||||||
 | 
					        'вычислено'      : Date.QUAL_CALCULATED,
 | 
				
			||||||
 | 
					        'вычисл.'       : Date.QUAL_CALCULATED,
 | 
				
			||||||
 | 
					        'выч.' : Date.QUAL_CALCULATED,
 | 
				
			||||||
 | 
					        'вычисл'       : Date.QUAL_CALCULATED,
 | 
				
			||||||
 | 
					        'выч' : Date.QUAL_CALCULATED,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def init_strings(self):
 | 
				
			||||||
 | 
					        DateParser.init_strings(self)
 | 
				
			||||||
 | 
					        self._span     = re.compile("(с|от)\s+(.+)\s+(по|до)\s+(.+)",
 | 
				
			||||||
 | 
					                           re.IGNORECASE)
 | 
				
			||||||
 | 
					        self._range    = re.compile("(между|меж|меж.)\s+(.+)\s+(и)\s+(.+)",
 | 
				
			||||||
 | 
					                           re.IGNORECASE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Russian displayer
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					class DateDisplayRU(DateDisplay):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    calendar = (
 | 
				
			||||||
 | 
					        "", " (юлианский)", 
 | 
				
			||||||
 | 
					        " (еврейский)", 
 | 
				
			||||||
 | 
					        " (республиканский)", 
 | 
				
			||||||
 | 
					        " (персидский)", 
 | 
				
			||||||
 | 
					        " (исламский)"
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    _mod_str = ("","до ",
 | 
				
			||||||
 | 
					        "после ",
 | 
				
			||||||
 | 
					        "около ","","","")
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    def display(self,date):
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        Returns a text string representing the date.
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        mod = date.get_modifier()
 | 
				
			||||||
 | 
					        cal = date.get_calendar()
 | 
				
			||||||
 | 
					        qual = date.get_quality()
 | 
				
			||||||
 | 
					        start = date.get_start_date()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        qual_str = self._qual_str[qual]
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        if mod == Date.MOD_TEXTONLY:
 | 
				
			||||||
 | 
					            return date.get_text()
 | 
				
			||||||
 | 
					        elif start == Date.EMPTY:
 | 
				
			||||||
 | 
					            return ""
 | 
				
			||||||
 | 
					        elif mod == Date.MOD_SPAN:
 | 
				
			||||||
 | 
					            d1 = self.display_cal[cal](start)
 | 
				
			||||||
 | 
					            d2 = self.display_cal[cal](date.get_stop_date())
 | 
				
			||||||
 | 
					            return "%sс %s по %s%s" % (qual_str,d1,d2,self.calendar[cal])
 | 
				
			||||||
 | 
					        elif mod == Date.MOD_RANGE:
 | 
				
			||||||
 | 
					            d1 = self.display_cal[cal](start)
 | 
				
			||||||
 | 
					            d2 = self.display_cal[cal](date.get_stop_date())
 | 
				
			||||||
 | 
					            return "%sмежду %s и %s%s" % (qual_str,d1,d2,self.calendar[cal])
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            text = self.display_cal[date.get_calendar()](start)
 | 
				
			||||||
 | 
					            return "%s%s%s%s" % (qual_str,self._mod_str[mod],text,self.calendar[cal])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Register classes
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#-------------------------------------------------------------------------
 | 
				
			||||||
 | 
					from DateHandler import _lang_to_parser, _lang_to_display
 | 
				
			||||||
 | 
					for lang_str in ('ru_RU','ru_RU.koi8r','ru_RU.utf8','russian'):
 | 
				
			||||||
 | 
					    _lang_to_parser[lang_str] = DateParserRU
 | 
				
			||||||
 | 
					    _lang_to_display[lang_str] = DateDisplayRU
 | 
				
			||||||
							
								
								
									
										19
									
								
								src/dates/Makefile.am
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								src/dates/Makefile.am
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					# This is the src/plugins level Makefile for Gramps
 | 
				
			||||||
 | 
					# We could use GNU make's ':=' syntax for nice wildcard use,
 | 
				
			||||||
 | 
					# but that is not necessarily portable.
 | 
				
			||||||
 | 
					# If not using GNU make, then list all .py files individually
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pkgdatadir = $(datadir)/@PACKAGE@/dates
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pkgdata_PYTHON = \
 | 
				
			||||||
 | 
						Date_ru.py\
 | 
				
			||||||
 | 
						Date_fr.py
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pkgpyexecdir = @pkgpyexecdir@/dates
 | 
				
			||||||
 | 
					pkgpythondir = @pkgpythondir@/dates
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GRAMPS_PY_MODPATH = ".."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pycheck: 
 | 
				
			||||||
 | 
						(export PYTHONPATH=$(GRAMPS_PY_MODPATH); \
 | 
				
			||||||
 | 
						pychecker $(pkgdata_PYTHON));
 | 
				
			||||||
		Reference in New Issue
	
	Block a user