summaryrefslogtreecommitdiff
path: root/tmpl.py
diff options
context:
space:
mode:
Diffstat (limited to 'tmpl.py')
-rw-r--r--tmpl.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/tmpl.py b/tmpl.py
index b729a2f..b761ec2 100644
--- a/tmpl.py
+++ b/tmpl.py
@@ -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':