from fluent_compiler.bundle import FluentBundle
from fluentogram import FluentTranslator, TranslatorHub
from config import AVAILABLE_LANGUAGES, DEFAULT_LANGUAGE, LANGUAGE_FALLBACKS
DIR_PATH = 'I18N'
def i18n_factory() -> TranslatorHub:
translators = []
for lang in AVAILABLE_LANGUAGES:
translators.append(
FluentTranslator(
locale=lang,
translator=FluentBundle.from_files(
locale=lang,
filenames=[f'{DIR_PATH}/{lang}/txt.ftl'],
use_isolating=False)
)
)
return TranslatorHub(
LANGUAGE_FALLBACKS,
translators,
root_locale=DEFAULT_LANGUAGE,
)