[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