utils: add utility functions for managing current language

This commit is contained in:
Benjamin Dauvergne 2014-01-09 12:20:14 +01:00
parent 607380efb7
commit 6ffe3d38f4
1 changed files with 29 additions and 0 deletions

29
utils.py Normal file
View File

@ -0,0 +1,29 @@
from contextlib import contextmanager
from quixote import get_request
@contextmanager
def current_language(language):
global __current_language
old_current_language = __current_language
try:
yield
finally:
__current_language = old_current_language
def for_user(identity):
return current_language(identity.get_preferred_language())
__current_language = None
def get_for_current_language(dictionary, key, default=None):
request = get_request()
language = __current_language
if language is None:
language = request.language
if not language is None:
locale_key = '{0}-{1}'.format(key, language)
if locale_key in dictionary:
return dictionary[locale_key]
return dictionary.get(key, default)