[Checkins] SVN: zope.i18n/branches/nadako-cldr/ Add support for calendar aliases.

Dan Korostelev nadako at gmail.com
Fri Feb 27 03:28:17 EST 2009


Log message for revision 97331:
  Add support for calendar aliases.

Changed:
  U   zope.i18n/branches/nadako-cldr/BRANCH-TODO.txt
  U   zope.i18n/branches/nadako-cldr/src/zope/i18n/locales/__init__.py
  U   zope.i18n/branches/nadako-cldr/src/zope/i18n/locales/xmlfactory.py

-=-
Modified: zope.i18n/branches/nadako-cldr/BRANCH-TODO.txt
===================================================================
--- zope.i18n/branches/nadako-cldr/BRANCH-TODO.txt	2009-02-26 20:01:31 UTC (rev 97330)
+++ zope.i18n/branches/nadako-cldr/BRANCH-TODO.txt	2009-02-27 08:28:17 UTC (rev 97331)
@@ -17,6 +17,7 @@
 
 - Updated the XML files and fixed incompatibilities.
 - Added support day and month contexts and widths.
+- Added support for calendar aliases.
 
 Still need to review other not so critical changes and implement them.
 

Modified: zope.i18n/branches/nadako-cldr/src/zope/i18n/locales/__init__.py
===================================================================
--- zope.i18n/branches/nadako-cldr/src/zope/i18n/locales/__init__.py	2009-02-26 20:01:31 UTC (rev 97330)
+++ zope.i18n/branches/nadako-cldr/src/zope/i18n/locales/__init__.py	2009-02-27 08:28:17 UTC (rev 97331)
@@ -71,6 +71,10 @@
 BC = 1
 AD = 2
 
+calendarAliases = {'islamic': ('arabic',),
+                   'islamic-civil': ('civil-arabic',),
+                   'buddhist': ('thai-buddhist', )}
+
 class LocaleIdentity(object):
     """Represents a unique identification of the locale
 

Modified: zope.i18n/branches/nadako-cldr/src/zope/i18n/locales/xmlfactory.py
===================================================================
--- zope.i18n/branches/nadako-cldr/src/zope/i18n/locales/xmlfactory.py	2009-02-26 20:01:31 UTC (rev 97330)
+++ zope.i18n/branches/nadako-cldr/src/zope/i18n/locales/xmlfactory.py	2009-02-27 08:28:17 UTC (rev 97331)
@@ -22,7 +22,7 @@
 from zope.i18n.locales import LocaleCalendar, LocaleCurrency, LocaleNumbers
 from zope.i18n.locales import LocaleFormat, LocaleFormatLength, dayMapping
 from zope.i18n.locales import LocaleOrientation, LocaleDayContext
-from zope.i18n.locales import LocaleMonthContext
+from zope.i18n.locales import LocaleMonthContext, calendarAliases
 from zope.i18n.locales.inheritance import InheritingDictionary
 
 class LocaleFactory(object):
@@ -825,7 +825,7 @@
           ...         </dateTimeFormatLength>
           ...       </dateTimeFormats>
           ...     </calendar>
-          ...     <calendar type="thai-buddhist">
+          ...     <calendar type="buddhist">
           ...       <eras>
           ...         <era type="0">BE</era>
           ...       </eras>
@@ -838,7 +838,13 @@
           >>> keys = calendars.keys()
           >>> keys.sort()
           >>> keys
-          [u'gregorian', u'thai-buddhist']
+          [u'buddhist', u'gregorian', 'thai-buddhist']
+          
+        Note that "thai-buddhist" are added as an alias to "buddhist".
+        
+          >>> calendars['buddhist'] is calendars['thai-buddhist']
+          True
+          
         """
         cals_nodes = dates_node.getElementsByTagName('calendars')
         # no calendar node
@@ -890,6 +896,9 @@
                     setattr(calendar, formatsName, formats)
 
             calendars[calendar.type] = calendar
+            if calendar.type in calendarAliases:
+                for alias in calendarAliases[calendar.type]:
+                    calendars[alias] = calendar
 
         return calendars
 



More information about the Checkins mailing list