[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]