[Zope-Checkins] CVS: Zope3/lib/python/Zope/I18n - TranslationService.py:1.3

Barry Warsaw barry@wooz.org
Wed, 12 Jun 2002 11:58:56 -0400


Update of /cvs-repository/Zope3/lib/python/Zope/I18n
In directory cvs.zope.org:/tmp/cvs-serv18159/lib/python/Zope/I18n

Modified Files:
	TranslationService.py 
Log Message:
Use absolute import paths instead of intra-package imports.

Removed empty docstrings (we should fill them in if we're going to
have them ;).

Also changed translate(..., source, ...) to translate(..., msgid, ...)
for consistency.

getAvailableLanguages(): Use a nice list comprehension. :)


=== Zope3/lib/python/Zope/I18n/TranslationService.py 1.2 => 1.3 ===
 from Zope.App.OFS.Container.IContainer import IHomogenousContainer
 
-from Negotiator import negotiator
-from IMessageCatalog import IMessageCatalog
-from ITranslationService import ITranslationService
+from Zope.I18n.Negotiator import negotiator
+from Zope.I18n.IMessageCatalog import IMessageCatalog
+from Zope.I18n.ITranslationService import ITranslationService
 
 
 # Setting up some regular expressions for finding interpolation variables in
@@ -43,19 +43,15 @@
 
 
 class TranslationService(BTreeContainer):
-    ''' '''
 
     __implements__ =  ILocalTranslationService
 
-
     def __init__(self, default_domain='global'):
-        ''' '''
         self.__data = OOBTree()
         self._catalogs = OOBTree()
 
 
     def _registerMessageCatalog(self, language, domain, catalog_name):
-        ''' '''
         if (language, domain) not in self._catalogs.keys():
             self._catalogs[(language, domain)] = []
 
@@ -64,7 +60,6 @@
 
 
     def _unregisterMessageCatalog(self, language, domain, catalog_name):
-        ''' '''
         mc = self._catalogs.get((language, domain), [])
         mc.append(catalog_name)
 
@@ -74,7 +69,7 @@
     # Zope.App.OFS.Container.IContainer.IWriteContainer
 
     def setObject(self, name, object):
-        'See Zope.App.OFS.Container.IContainer.IWriteContainer'
+        """See Zope.App.OFS.Container.IContainer.IWriteContainer"""
         if type(name) in StringTypes and len(name)==0:
             raise ValueError
         if not self.isAddable(getattr(object,'__implements__', None)):
@@ -85,20 +80,20 @@
         return name
 
     def __delitem__(self, name):
-        'See Zope.App.OFS.Container.IContainer.IWriteContainer'
+        """See Zope.App.OFS.Container.IContainer.IWriteContainer"""
         del self.__data[name]
         self._unregisterMessageCatalog(object.language, object.domain, name)
         
 
     def isAddable(self, interfaces):
-        'See Zope.App.OFS.Container.IContainer.IWriteContainer'
+        """See Zope.App.OFS.Container.IContainer.IWriteContainer"""
         if type(interfaces) != TupleType:
             interfaces = (interfaces,)
         if IMessageCatalog in interfaces:
             return 1
         return 0
 
-    #
+    # end Zope.App.OFS.Container.IContainer.IWriteContainer
     ############################################################
 
 
@@ -106,9 +101,9 @@
     # Implementation methods for interface
     # Zope.I18n.ITranslationService.
 
-    def translate(self, domain, source, mapping=None, context=None,  
+    def translate(self, domain, msgid, mapping=None, context=None,  
                   target_language=None):
-        '''See interface ITranslationService'''
+        """See interface ITranslationService"""
 
         if domain is None:
             domain = self.default_domain
@@ -123,11 +118,11 @@
         # Get the translation. Default is the source text itself.
         catalog_names = self._catalogs.get((target_language, domain), {})
 
-        text = source
+        text = msgid
         for name in catalog_names:
             catalog = self.__data[name]
             try:
-                text = catalog.getMessage(source)
+                text = catalog.getMessage(msgid)
                 break
             except:
                 pass
@@ -135,7 +130,7 @@
         # Now we need to do the interpolation
         return self.interpolate(text, mapping)
 
-    #
+    # end Zope.I18n.ITranslationService
     ############################################################
 
 
@@ -153,7 +148,5 @@
 
     def getAvailableLanguages(self, domain):
         """Find all the languages that are available for this domain"""
-        identifiers = self._catalogs.keys()
-        identifiers = filter(lambda x, d=domain: x[1] == domain, identifiers)
-        languages = map(lambda x: x[0], identifiers)
-        return languages
+        
+        return [x[0] for x in self._catalogs.keys() if x[1] == domain]