]> CRI, Mines Paris - PSL - Plinn.git/blobdiff - userlanguages.py
Préférences linguistiques enregistrées dans les données utilisateur et utilisées...
[Plinn.git] / userlanguages.py
diff --git a/userlanguages.py b/userlanguages.py
new file mode 100644 (file)
index 0000000..8103d15
--- /dev/null
@@ -0,0 +1,14 @@
+# -*- coding: utf-8 -*-
+from zope.publisher.browser import BrowserLanguages
+from Products.CMFCore.utils import getUtilityByInterfaceName
+
+class AuthenticatedUserLanguages(BrowserLanguages):
+
+    def getPreferredLanguages(self) :
+        mtool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IMembershipTool')
+        if mtool.isAnonymousUser() :
+            return super(AuthenticatedUserLanguages, self).getPreferredLanguages()
+        else :
+            m = mtool.getAuthenticatedMember()
+            userLangs = m.getProperty('preferred_languages', [])
+            return userLangs or super(AuthenticatedUserLanguages, self).getPreferredLanguages()