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)