"""Util functions for translations.""" import gettext from functools import cache from notifications_delivery import config from notifications_delivery.connectors import loggly logger = loggly.get_current_logger() @cache def get_translations(locale: str): """Load translations. Result is cached.""" if locale == config.I18N_DEFAULT_LOCALE: # we have no translations for 'en' return gettext.NullTranslations() try: translations = gettext.translation( domain=config.I18N_DOMAIN, localedir=config.I18N_FOLDER_NAME, languages=[locale] ) except OSError: logger.error(f"Can't find translations for locale {locale}. " f"Falling back to '{config.I18N_DEFAULT_LOCALE}'", exc_info=True) translations = gettext.NullTranslations() return translations