1
2
3
4
5
6
7
8
9
10
11
12
13 """ icsemantic.core languages.
14 """
15
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
26 """
27 platecom.language property utility
28 """
29 implements(IUserPreferredLanguages)
30
33
35 if not hasattr(self.context, 'set_language'):
36 return []
37
38 return self.context.set_language
39
42
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
53 languages = []
54
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
98