------------------------------------------------------------------------ r11689 | cboos | 2013-02-17 16:47:01 +0100 (Sun, 17 Feb 2013) | 1 line 1.0.2dev: follow-up to r11684, `parse_date()` needs the full list of locales Index: trac/util/translation.py =================================================================== --- trac/util/translation.py (revision 11688) +++ trac/util/translation.py (revision 11689) @@ -330,16 +330,20 @@ def get_translations(): return translations - def get_available_locales(): + def get_available_locales(check_catalog=True): """Return a list of locale identifiers of the locales for which translations are available. + + :param check_catalog: if `True` check for the compiled catalog + (.mo), otherwise the presence of the + directory is enough. """ try: return [dirname for dirname in pkg_resources.resource_listdir('trac', 'locale') if '.' not in dirname - and pkg_resources.resource_exists( - 'trac', 'locale/%s/LC_MESSAGES/messages.mo' % dirname)] + and (not check_catalog or pkg_resources.resource_exists( + 'trac', 'locale/%s/LC_MESSAGES/messages.mo' % dirname))] except Exception: return [] @@ -378,7 +382,7 @@ def get_translations(): return translations - def get_available_locales(): + def get_available_locales(check_catalog=True): return [] def get_negotiated_locale(preferred=None, default=None): Index: trac/util/datefmt.py =================================================================== --- trac/util/datefmt.py (revision 11688) +++ trac/util/datefmt.py (revision 11689) @@ -534,8 +534,8 @@ 'period_names': period_names, } -_I18N_PARSE_DATE_PATTERNS = dict(map(lambda l: (l, False), - get_available_locales())) +_I18N_PARSE_DATE_PATTERNS = dict( + (l, False) for l in get_available_locales(check_catalog=False)) def _i18n_parse_date(text, tzinfo, locale): locale = Locale.parse(locale) ------------------------------------------------------------------------