Package platecom :: Package utils :: Module languages
[hide private]
[frames] | no frames]

Source Code for Module icsemantic.core.languages

 1  ############################################################################## 
 2  # 
 3  # Copyright (c) 2005 Zope Corporation and Contributors. All Rights Reserved. 
 4  # 
 5  # This software is subject to the provisions of the Zope Public License, 
 6  # Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution. 
 7  # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED 
 8  # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
 9  # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 
10  # FOR A PARTICULAR PURPOSE. 
11  # 
12  ############################################################################## 
13  """ icsemantic.core languages. 
14  """ 
15  # pylint: disable-msg=W0232,R0903 
16   
17  from zope.component import queryUtility 
18  from zope.interface import implements 
19  from zope.i18n.interfaces import IUserPreferredLanguages 
20  from zope.app.component.hooks import getSite 
21  from Products.CMFCore.utils import getToolByName 
22   
23  from interfaces import ILanguagesManager 
24   
25 -class RequestPreferredLanguage(object):
26 """ 27 platecom.language property utility 28 """ 29 implements(IUserPreferredLanguages) 30
31 - def __init__(self, context):
32 self.context = context
33
34 - def getPreferredLanguages(self):
35 if not hasattr(self.context, 'set_language'): 36 return [] 37 38 return self.context.set_language
39
40 -def request_preferred_languages(context):
41 return RequestPreferredLanguage(context)
42
43 -class PlatecomPreferredLanguage(object):
44 """ 45 platecom.language property utility 46 """ 47 implements(IUserPreferredLanguages) 48 49 utilities = ['authenticated_member_plone_preferred_languages', 50 'authenticated_member_icsemantic_languages_property',] 51
52 - def getPreferredLanguages(self, portal=None, request=None):
53 languages = [] 54 # TODO: mover estos a un adapter 55 if request and request.has_key('set_language'): 56 languages += [request['set_language']] 57 for utility in self.utilities: 58 lang_util = queryUtility(IUserPreferredLanguages, 59 name=utility) 60 languages += [n for n in lang_util.getPreferredLanguages() \ 61 if n not in languages] 62 63 languages += [n for n in IUserPreferredLanguages(request).getPreferredLanguages() \ 64 if n not in languages] 65 if not portal: 66 portal = getSite() 67 if portal: 68 portal_properties = getToolByName(portal, 'portal_properties') 69 site_language = getattr(portal_properties.site_properties, 70 'default_language', None) 71 platecom_site_languages = getattr(portal_properties.site_properties, 72 'platecom.languages', None) 73 if site_language and site_language not in languages: 74 languages += [site_language] 75 if platecom_site_languages: 76 languages += [n for n in platecom_site_languages \ 77 if n not in languages] 78 79 return languages
80
81 -class LanguagesManager(object):
82 """ 83 TODO: WCD 205 84 """ 85 implements( ILanguagesManager ) 86
88 """ 89 """
90
91 - def listUserLanguages(self, user_id):
92 """ 93 """
94
95 - def storeUserLanguages(self, user_id, languages):
96 """ 97 """
98