diff options
author | equinox <equinox@diac24.net> | 2011-09-27 08:39:35 +0200 |
---|---|---|
committer | equinox <equinox@diac24.net> | 2011-09-27 08:39:35 +0200 |
commit | 1f6882c69af3918d81ded8ac1c61a79d040b236b (patch) | |
tree | afa7653a4cb96ad5ff60256f77296ad3d534bb1f /tmpl.py | |
parent | ebe38d8ea9b744648f9f7666e9ebdb5f9a204b79 (diff) |
language switch
Diffstat (limited to 'tmpl.py')
-rw-r--r-- | tmpl.py | 16 |
1 files changed, 14 insertions, 2 deletions
@@ -22,7 +22,9 @@ def select_language(): lang = cherrypy.thread_data.lang return languages[lang if languages.has_key(lang) else 'en'] accept = cherrypy.request.headers['Accept-Language'] - if isinstance(accept, str): + try: accept = str(accept) + except: accept = None + if accept is not None: for group in accept.split(';'): for lang in group.split(','): if lang.find('=') >= 0: @@ -65,10 +67,20 @@ def expose(filename, method='html', encoding='utf-8', **options): cherrypy.thread_data.template = loader.load(filename) cherrypy.thread_data.func = func cherrypy.thread_data.lang = None + if cherrypy.request.cookie.has_key('lang'): + cherrypy.thread_data.lang = cherrypy.request.cookie['lang'].value + if cherrypy.request.params.has_key('lang'): + cherrypy.thread_data.lang = cherrypy.request.params['lang'] + if cherrypy.thread_data.lang != None: + cherrypy.response.cookie['lang'] = cherrypy.thread_data.lang + cherrypy.response.cookie['lang']['path'] = '/' + cherrypy.response.cookie['lang']['max-age'] = 2419200 + cherrypy.response.cookie['lang']['version'] = 1 if kwargs.has_key('lang'): - cherrypy.thread_data.lang = kwargs['lang'] del kwargs['lang'] + cherrypy.thread_data.translations = select_language() + cherrypy.response.headers['Vary'] = 'Accept-Language' opt = options.copy() if method == 'html': |