Index: CHANGES.txt =================================================================== --- CHANGES.txt (revision 128543) +++ CHANGES.txt (working copy) @@ -5,9 +5,8 @@ 3.6.4 (unreleased) ------------------ -- Nothing changed yet. +- Fix translate() when used with ZODB 4. - 3.6.3 (2010-09-01) ------------------ Index: src/zope/app/i18n/translationdomain.py =================================================================== --- src/zope/app/i18n/translationdomain.py (revision 128543) +++ src/zope/app/i18n/translationdomain.py (working copy) @@ -23,7 +23,6 @@ import zope.component from zope.interface import implements from zope.i18n import interpolate -from zope.i18n.negotiator import negotiator from zope.i18n.interfaces import INegotiator, ITranslationDomain from zope.i18n.simpletranslationdomain import SimpleTranslationDomain @@ -71,7 +70,10 @@ target_language = negotiator.getLanguage(avail_langs, context) # Get the translation. Default is the source text itself. - catalog_names = self._catalogs.get(target_language, []) + if target_language is not None: + catalog_names = self._catalogs.get(target_language, []) + else: + catalog_names = [] for name in catalog_names: catalog = super(TranslationDomain, self).__getitem__(name)