# HG changeset patch # User cmlenz # Date 1180902319 0 # Node ID 11278622ede9317d519d236b005fbec32fb1187b # Parent 8521326b062704cc13f7682c2487e0420cb1bc99 Import basic timezone info from CLDR (see #3). Still missing a couple other pieces in the puzzle. diff --git a/babel/core.py b/babel/core.py --- a/babel/core.py +++ b/babel/core.py @@ -281,6 +281,19 @@ :type: `dict` """) + def time_zones(self): + return self._data['time_zones'] + time_zones = property(time_zones, doc="""\ + Locale display names for time zones. + + >>> Locale('en', 'US').time_zones['America/Los_Angeles']['long']['standard'] + u'Pacific Standard Time' + >>> Locale('en', 'US').time_zones['Europe/Dublin']['city'] + u'Dublin' + + :type: `dict` + """) + def first_week_day(self): return self._data['week_data']['first_day'] first_week_day = property(first_week_day, doc="""\ diff --git a/scripts/import_cldr.py b/scripts/import_cldr.py --- a/scripts/import_cldr.py +++ b/scripts/import_cldr.py @@ -153,7 +153,15 @@ time_zones = data.setdefault('time_zones', {}) for elem in tree.findall('//timeZoneNames/zone'): - time_zones[elem.tag] = unicode(elem.findtext('displayName')) + info = {} + city = elem.findtext('exemplarCity') + if city: + info['city'] = unicode(city) + for child in elem.findall('long/*'): + info.setdefault('long', {})[child.tag] = unicode(child.text) + for child in elem.findall('short/*'): + info.setdefault('short', {})[child.tag] = unicode(child.text) + time_zones[elem.attrib['type']] = info for calendar in tree.findall('//calendars/calendar'): if calendar.attrib['type'] != 'gregorian':