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

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Sep 30 17:04:04 CEST 2009


Author: leonardo
Date: Wed Sep 30 17:04:03 2009
New Revision: 29334

URL: http://svn.erp5.org?rev=29334&view=rev
Log:
make Localizer actually work with itools 0.50.7

Modified:
    experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/.gitignore
    experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/LocalContent.py
    experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/LocalFiles.py
    experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/utils.py

Modified: experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/.gitignore
URL: http://svn.erp5.org/experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/.gitignore?rev=29334&r1=29333&r2=29334&view=diff
==============================================================================
--- experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/.gitignore [utf8] (original)
+++ experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/.gitignore [utf8] Wed Sep 30 17:04:03 2009
@@ -1,4 +1,6 @@
 *.pyc
 *.swp
+*~
+.svn
 locale/*.mo
 locale/*~

Modified: experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/LocalContent.py
URL: http://svn.erp5.org/experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/LocalContent.py?rev=29334&r1=29333&r2=29334&view=diff
==============================================================================
--- experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/LocalContent.py [utf8] (original)
+++ experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/LocalContent.py [utf8] Wed Sep 30 17:04:03 2009
@@ -215,9 +215,12 @@
 
 
     security.declareProtected('Manage messages', 'xliff_export')
-    def xliff_export(self, dst_lang, export_all=1, REQUEST, RESPONSE):
+    def xliff_export(self, dst_lang, export_all=1, REQUEST=None, RESPONSE=None):
         """ Exports the content of the message catalog to an XLIFF file
         """
+        # only export_all is actually optional, but we need to preserve the
+        # parameter order
+        assert REQUEST is not None and RESPONSE is not None
         from DateTime import DateTime
 
         src_lang = self._default_language

Modified: experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/LocalFiles.py
URL: http://svn.erp5.org/experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/LocalFiles.py?rev=29334&r1=29333&r2=29334&view=diff
==============================================================================
--- experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/LocalFiles.py [utf8] (original)
+++ experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/LocalFiles.py [utf8] Wed Sep 30 17:04:03 2009
@@ -25,6 +25,7 @@
 
 # Import from the Standard Library
 import os
+import sys
 
 # Import from itools
 from itools import get_abspath
@@ -43,7 +44,8 @@
         apply(LocalDTMLFile.inheritedAttribute('__init__'),
               (self, name, _prefix), kw)
 
-        domain = get_abspath(_prefix, 'locale')
+        domain = get_abspath('locale',
+                             sys._getframe(1).f_globals.get('__name__'))
         self.class_domain = domain
         register_domain(domain, domain)
 
@@ -76,7 +78,8 @@
             apply(LocalPageTemplateFile.inheritedAttribute('__init__'),
                   (self, name, _prefix), kw)
 
-            domain = get_abspath(_prefix, 'locale')
+            domain = get_abspath('locale',
+                                 sys._getframe(1).f_globals.get('__name__'))
             self.class_domain = domain
             register_domain(domain, domain)
 

Modified: experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/utils.py
URL: http://svn.erp5.org/experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/utils.py?rev=29334&r1=29333&r2=29334&view=diff
==============================================================================
--- experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/utils.py [utf8] (original)
+++ experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/utils.py [utf8] Wed Sep 30 17:04:03 2009
@@ -17,7 +17,7 @@
 # Import from itools
 from itools import get_abspath
 from itools.i18n import AcceptLanguageType
-from itools.gettext import register_domain, DomainAware as BaseDomainAware
+from itools.gettext import register_domain
 
 # Import from Zope
 from Globals import package_home
@@ -60,6 +60,44 @@
     return lang
 
 
+# Copy of DomainAware from itools-0.20.8 since it has been removed in 0.50.0
+class BaseDomainAware(object):
+
+    class_domain = None
+
+
+    @classmethod
+    def get_languages(cls):
+        return NotImplementedError
+
+
+    @classmethod
+    def select_language(cls, languages=None):
+        if languages is None:
+            languages = cls.get_languages()
+
+        accept = get_accept()
+        return accept.select_language(languages)
+
+
+    @classmethod
+    def gettext(cls, message, language=None, domain=None):
+        if domain is None:
+            domain = cls.class_domain
+
+        if domain not in domains:
+            return message
+
+        domain = domains[domain]
+        if language is None:
+            languages = domain.get_languages()
+            language = cls.select_language(languages)
+
+        if language is None:
+            return message
+
+        return domain.gettext(message, language)
+
 # Provide an API to access translations stored as MO files in the 'locale'
 # directory. This code has been moved from Localizer.
 
@@ -77,7 +115,7 @@
 class translation(DomainAware):
 
     def __init__(self, namespace):
-        domain = get_abspath(namespace, 'locale')
+        domain = get_abspath('locale')
         self.class_domain = domain
         register_domain(domain, domain)
 




More information about the Erp5-report mailing list