[Erp5-report] r29519 - /experimental/erp5.buildout-zope-2.12/trunk/src/Products/Localizer/
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Oct 9 13:59:23 CEST 2009
Author: leonardo
Date: Fri Oct 9 13:59:22 2009
New Revision: 29519
URL: http://svn.erp5.org?rev=29519&view=rev
Log:
Sync with upstream
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=29519&r1=29518&r2=29519&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] Fri Oct 9 13:59:22 2009
@@ -1,6 +1,4 @@
*.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=29519&r1=29518&r2=29519&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] Fri Oct 9 13:59:22 2009
@@ -215,12 +215,10 @@
security.declareProtected('Manage messages', 'xliff_export')
- def xliff_export(self, dst_lang, export_all=1, REQUEST=None, RESPONSE=None):
+ 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=29519&r1=29518&r2=29519&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] Fri Oct 9 13:59:22 2009
@@ -25,11 +25,6 @@
# Import from the Standard Library
import os
-import sys
-
-# Import from itools
-from itools import get_abspath
-from itools.gettext import register_domain
# Import Zope modules
from Globals import DTMLFile
@@ -38,16 +33,13 @@
from utils import DomainAware
-class LocalDTMLFile(DTMLFile):
+
+class LocalDTMLFile(DomainAware, DTMLFile):
+ """ """
def __init__(self, name, _prefix=None, **kw):
- apply(LocalDTMLFile.inheritedAttribute('__init__'),
- (self, name, _prefix), kw)
-
- domain = get_abspath('locale',
- sys._getframe(1).f_globals.get('__name__'))
- self.class_domain = domain
- register_domain(domain, domain)
+ DTMLFile.__init__(self, name, _prefix, **kw)
+ DomainAware.__init__(self, _prefix)
def _exec(self, bound_data, args, kw):
@@ -56,10 +48,6 @@
bound_data['ugettext'] = self.gettext # XXX backwards compatibility
return apply(LocalDTMLFile.inheritedAttribute('_exec'),
(self, bound_data, args, kw))
-
-
- def gettext(self, message, language=None):
- return DomainAware.gettext(message, language, self.class_domain)
@@ -72,16 +60,12 @@
class LocalPageTemplateFile:
pass
else:
- class LocalPageTemplateFile(PageTemplateFile):
+ class LocalPageTemplateFile(DomainAware, PageTemplateFile):
+ """ """
def __init__(self, name, _prefix=None, **kw):
- apply(LocalPageTemplateFile.inheritedAttribute('__init__'),
- (self, name, _prefix), kw)
-
- domain = get_abspath('locale',
- sys._getframe(1).f_globals.get('__name__'))
- self.class_domain = domain
- register_domain(domain, domain)
+ PageTemplateFile.__init__(self, name, _prefix, **kw)
+ DomainAware.__init__(self, _prefix)
def _exec(self, bound_data, args, kw):
@@ -91,6 +75,3 @@
return apply(LocalPageTemplateFile.inheritedAttribute('_exec'),
(self, bound_data, args, kw))
-
- def gettext(self, message, language=None):
- return DomainAware.gettext(message, language, self.class_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=29519&r1=29518&r2=29519&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] Fri Oct 9 13:59:22 2009
@@ -16,8 +16,8 @@
# Import from itools
from itools import get_abspath
-from itools.i18n import AcceptLanguageType
-from itools.gettext import register_domain
+from itools.i18n import AcceptLanguageType, init_language_selector
+from itools.gettext import get_domain, register_domain
# Import from Zope
from Globals import package_home
@@ -36,10 +36,9 @@
# Language negotiation
def lang_negotiator(available_languages):
- """
- Receives two ordered lists, the list of user preferred languages
- and the list of available languages. Returns the first user pref.
- language that is available, if none is available returns None.
+ """Receives two ordered lists, the list of user preferred languages and
+ the list of available languages. Returns the first user pref. language
+ that is available, if none is available returns None.
"""
request = get_request()
if request is None:
@@ -49,81 +48,32 @@
accept = request['AcceptLanguage']
except KeyError:
return None
- else:
- lang = accept.select_language(available_languages)
-
- # XXX Here we should set the Vary header, but, which value should it have??
-## response = request.RESPONSE
-## response.setHeader('Vary', 'accept-language')
-## response.setHeader('Vary', '*')
-
- 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]
+
+ return accept.select_language(available_languages)
+
+
+init_language_selector(lang_negotiator)
+
+
+# Provide an API to access translations stored as MO files in the 'locale'
+# directory.
+class DomainAware(object):
+
+ def __init__(self, namespace):
+ mname = namespace['__name__']
+ domain = get_abspath('locale', mname=mname)
+ self.class_domain = domain
+ register_domain(domain, domain)
+
+
+ def gettext(self, message, language=None):
+ domain = get_domain(self.class_domain)
if language is None:
languages = domain.get_languages()
- language = cls.select_language(languages)
-
- if language is None:
- return message
-
+ language = select_language(languages)
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.
-
-class DomainAware(BaseDomainAware):
-
- def select_language(cls, languages):
- request = get_request()
- accept = request.get_header('accept-language', default='')
- accept = AcceptLanguageType.decode(accept)
- return accept.select_language(languages)
-
- select_language = classmethod(select_language)
-
-
-class translation(DomainAware):
-
- def __init__(self, namespace):
- domain = get_abspath('locale')
- self.class_domain = domain
- register_domain(domain, domain)
-
-
- def __call__(self, message, language=None):
- return DomainAware.gettext(message, language, self.class_domain)
-
-_ = translation(globals())
+_ = DomainAware(globals()).gettext
# Defines strings that must be internationalized
More information about the Erp5-report
mailing list