cubicweb/web/request.py
changeset 11794 d8830e2bd2e0
parent 11767 432f87a63057
child 11799 1bdfe9d4ab83
equal deleted inserted replaced
11793:b455460630a0 11794:d8830e2bd2e0
   913         return False
   913         return False
   914 
   914 
   915     def html_content_type(self):
   915     def html_content_type(self):
   916         return 'text/html'
   916         return 'text/html'
   917 
   917 
       
   918     def negotiated_language(self):
       
   919         self.headers_out.addHeader('Vary', 'Accept-Language')
       
   920         for lang in self.header_accept_language():
       
   921             if lang in self.translations:
       
   922                 return lang
       
   923         return None
       
   924 
   918     def set_user_language(self, user):
   925     def set_user_language(self, user):
   919         vreg = self.vreg
   926         vreg = self.vreg
   920         if user is not None:
   927         if user is not None:
   921             try:
   928             try:
   922                 # 1. user-specified language
       
   923                 lang = vreg.typed_value('ui.language', user.properties['ui.language'])
   929                 lang = vreg.typed_value('ui.language', user.properties['ui.language'])
   924                 self.set_language(lang)
   930                 self.set_language(lang)
   925                 return
   931                 return
   926             except KeyError:
   932             except KeyError:
   927                 pass
   933                 pass
   928         if vreg.config.get('language-negociation', False):
   934         # site's default language
   929             # 2. http accept-language
   935         if self.lang is None:
   930             self.headers_out.addHeader('Vary', 'Accept-Language')
   936             self.set_default_language(vreg)
   931             for lang in self.header_accept_language():
       
   932                 if lang in self.translations:
       
   933                     self.set_language(lang)
       
   934                     return
       
   935         # 3. site's default language
       
   936         self.set_default_language(vreg)
       
   937 
   937 
   938 
   938 
   939 def _cnx_func(name):
   939 def _cnx_func(name):
   940     def proxy(req, *args, **kwargs):
   940     def proxy(req, *args, **kwargs):
   941         return getattr(req.cnx, name)(*args, **kwargs)
   941         return getattr(req.cnx, name)(*args, **kwargs)