Source code for ciowarehouse.lib.i18n
"""Localization management."""
from os.path import join, dirname
from locale import getlocale
from pyramid.i18n import TranslationStringFactory, make_localizer
_ = TranslationStringFactory('ciowarehouse')
# =============================================================================
[docs]def translate(text, lang=None, request=None):
"""Return ``text`` translated.
:param str text:
Text to translate.
:param str lang: (optional)
Language to use.
:type request: pyramid.request.Request
:param request: (optional)
Current request to find the current language.
:rtype: str
"""
if lang is None and request is not None:
lang = request.session.get('lang') \
or request.locale_name or request.registry['settings']['language']
return make_localizer(
lang or getlocale()[0] or 'en',
(join(dirname(__file__), '..', 'Locale'),)).translate(text)