utils: add utility functions for managing current language
This commit is contained in:
parent
607380efb7
commit
6ffe3d38f4
|
@ -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)
|
||||
|
Loading…
Reference in New Issue