~cytrogen/evi-run

ref: 872aee6bc05a577a5ccdb303c1185c913414cb08 evi-run/bot/dialogs/i18n_widget.py -rw-r--r-- 678 bytes
872aee6b — Bendy Fixing the 'private' mode error. 5 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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