[Erp5-report] r29228 - /experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Sep 28 16:21:30 CEST 2009


Author: leonardo
Date: Mon Sep 28 16:21:28 2009
New Revision: 29228

URL: http://svn.erp5.org?rev=29228&view=rev
Log:
Add actual patch as generated by Yoshiro for Localizer

Modified:
    experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/MessageCatalog.py
    experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/__init__.py

Modified: experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/MessageCatalog.py
URL: http://svn.erp5.org/experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/MessageCatalog.py?rev=29228&r1=29227&r2=29228&view=diff
==============================================================================
--- experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/MessageCatalog.py [utf8] (original)
+++ experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/MessageCatalog.py [utf8] Mon Sep 28 16:21:28 2009
@@ -42,6 +42,9 @@
 from OFS.ObjectManager import ObjectManager
 from OFS.SimpleItem import SimpleItem
 from ZPublisher import HTTPRequest
+from zope.i18n.interfaces import ITranslationDomain
+from zope.interface import implements
+from zope.component import getSiteManager
 
 # Import from Localizer
 from LanguageManager import LanguageManager
@@ -149,7 +152,6 @@
     meta_type = 'MessageCatalog'
 
     security = ClassSecurityInfo()
-
 
     def __init__(self, id, title, sourcelang, languages):
         self.id = id
@@ -270,13 +272,28 @@
 
     __call__ = gettext
 
-
-    def translate(self, domain, msgid, *args, **kw):
-        """This method is required to get the i18n namespace from ZPT working.
-        """
-        msgstr = self.gettext(msgid)
-        mapping = kw.get('mapping')
+    implements(ITranslationDomain)
+
+    def translate(self, msgid, mapping=None, context=None,
+                  target_language=None, default=None):
+        """See zope.i18n.interfaces.ITranslationDomain."""
+        msgstr = self.gettext(msgid, lang=target_language, default=default)
         return interpolate(msgstr, mapping)
+
+    def getdomain(self): return unicode(self.id)
+    domain = property(fget=getdomain, 
+                      doc="See zope.i18n.interfaces.ITranslationDomain.")
+
+    def manage_afterAdd(self, item, container):
+        if item is self:
+            sm = getSiteManager(container)
+            sm.registerUtility(item, ITranslationDomain, item.domain)
+
+    def manage_beforeDelete(self, item, container):
+        if item is self:
+            sm = getSiteManager(container)
+            sm.unregisterUtility(item, ITranslationDomain, item.domain)
+        
 
 
     #######################################################################

Modified: experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/__init__.py
URL: http://svn.erp5.org/experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/__init__.py?rev=29228&r1=29227&r2=29228&view=diff
==============================================================================
--- experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/__init__.py [utf8] (original)
+++ experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/__init__.py [utf8] Mon Sep 28 16:21:28 2009
@@ -31,8 +31,6 @@
 # Import from Zope
 from App.ImageFile import ImageFile
 from DocumentTemplate.DT_String import String
-from Products.PageTemplates.GlobalTranslationService import \
-     setGlobalTranslationService
 
 # Import from Localizer
 from patches import get_request
@@ -48,60 +46,6 @@
          'eye_opened': ImageFile('img/eye_opened.gif', globals()),
          'eye_closed': ImageFile('img/eye_closed.gif', globals()),
          'obsolete': ImageFile('img/obsolete.gif', globals())}
-
-
-class GlobalTranslationService:
-    def __init__(self, service=None):
-        if service is not None:
-            self.pts_wrapper = PTSWrapper(service)
-        else:
-            self.pts_wrapper = None
-
-
-    def translate(self, domain, msgid, *args, **kw):
-        context = kw.get('context')
-        if context is None:
-            # Placeless!
-            return msgid
-
-        if domain is None or domain == 'default':
-            domain = 'gettext'
-
-        # Find it by acquisition
-        translation_service = getattr(context, domain, None)
-
-        # Try to get a catalog from a Localizer Object
-        if translation_service is None:
-            localizerObj = getattr(context, "Localizer", None)
-            if localizerObj is not None:
-                translation_service = getattr(localizerObj, domain, None)
-
-        if translation_service is not None:
-            from MessageCatalog import MessageCatalog
-            if isinstance(translation_service, MessageCatalog):
-                return translation_service.translate(domain, msgid, *args,
-                                                     **kw)
-        # Try PlacelessTranslationService
-        if self.pts_wrapper is not None:
-            return self.pts_wrapper.translate(domain, msgid, *args, **kw)
-
-        return msgid
-
-
-# Import from PlacelessTranslationService
-try:
-    from Products import PlacelessTranslationService
-except ImportError:
-    PTSWrapper = None
-else:
-    PTSWrapper = PlacelessTranslationService.PTSWrapper
-    PlacelessTranslationService.PTSWrapper = GlobalTranslationService
-
-# Try TranslationService
-try:
-    from Products import TranslationService
-except ImportError:
-    TranslationService = None
 
 
 def initialize(context):
@@ -152,7 +96,3 @@
 
     # Register the dtml-gettext tag
     String.commands['gettext'] = GettextTag
-
-    # Register the global translation service for the i18n namespace (ZPT)
-    if PTSWrapper is None and TranslationService is None:
-        setGlobalTranslationService(GlobalTranslationService())




More information about the Erp5-report mailing list