from typing import Dict, List from aiogram_dialog.api.protocols import DialogManager from aiogram_dialog.widgets.common import WhenCondition from aiogram_dialog.widgets.text import Text from fluentogram import TranslatorRunner class I18NFormat(Text): def __init__(self, key: str, when: WhenCondition = None): super().__init__(when) self.key = key async def _render_text(self, data: Dict, manager: DialogManager) -> str: i18n: TranslatorRunner = manager.middleware_data.get('i18n') value = i18n.get(self.key, **data) if value is None: raise KeyError(f'translation key = "{self.key}" not found') return value