Fluentogram. Альтернатива PyBabel. Как использовать и не отстрелять ноги?
HTML-код
- Опубликовано: 2 окт 2024
- Сегодня речь пойдет о такой библиотеке как Fluentogram. Это альтернатива уже разобранной в рамках курса по аиограмм технологии PyBabel. Меня давно просили разобрать ее и я наконец сделал это.
Мой телеграмм канал: t.me/massonnn_yt
Немного полезных ссылок:
github.com/pro...
github.com/Mas...
github.com/Aru...
--------------------
Данное видео было сделано бесплатно, не содержит рекламы и не пытается что-то продавать. Если вам кто-то что-то предлагал, то имейте ввиду - это мошенники.
Вы можете поддержать автора, если он вам чем-то помог:
Если вы из России:
410011676049152 (yoomoney)
2200700702094680 (Тинькофф)
Если вы из Украины:
5457082270647394 (ПриватБанк)
Криптовалюты:
ltc1qm6lx5e8q8ff7hs5ne2yxskhs2jhdl6ludq4ud8 (LTC / Litecoin)
bc1qfz7399jdqrxkpmmxyetk0frdskwv23k6p4yhdu (BTC)
0x95643B2702d1C4b965c1451C3f9bAAE7FF35115D (ETH)
TAc1WsbgAeB3UY4LrsfoshkTNHzTF1zqj5 (Tether USD-T)
Добрый день, а какую среду разработки используете?
PyCharm
Объясни плис зачем в dispatcher.start_polling(bot) запихивать translator чтобы потом в TranslatorMiddleware вылавливать его из data["translator"] если можно просто в TranslatorMiddleware __call__ прописать:
translator = Translator()
data['translator'] = translator(language=event.from_user.language_code)
return await handler(event, data)
Я протестировал. Получается вроде тоже самое
ru.wikipedia.org/wiki/Внедрение_зависимости
@@massonnn я только личинка разработчика, но мне кажется что к этому случаю внедрение зависимостей не относится. Посмотрите внимательно на код. Когда добавляете kwargs в polling() они добавляются к полю data у апдейта. По сути как через Middleware изменяете апдейт. Только делаете это неявно, это ведь уже минус. Более того в апдейте этот объект Translator() вообще не нужен. Он прекрасно создается внутри самого Middleware.
Я могу ошибаться, но то объяснение что вы дали выглядит не связаным с тем на что я пытался указать. К тому же я почти уверен что это просто ошибочный код.
@@massonnn а если дело в том что в сигнатуре функции __call__ должен быть translator, то о5 же почему бы его не добавить в init мидлваре. Как в примере с counterом из доков аиограма.
@@firstandlast4435 translator содержит в себе контекстную информацию (переводы в частности), которая должна быть определена единожды при старте приложения, поэтому его не получится создавать в миддлвари
@@massonnn понял. Спасибо что отвечаете
TypeError: object LocalizedTranslator can't be used in 'await' expression
Укажите, пожалуйста, timestamp видео
@@massonnn Дело в том что я не пользовался вашими шаблонами. Просто с помощью этого видео хотел внедрить Флюинтограмм в свой проект. Но не смог побороть ☝️ошибку. Поэтому пришлось накастылить свой Флюинтограмм вроде получилось не плохо 😀 Вам спасибо за видео и поддержку в комментариях
насколько понимаю не может использоваться с await типо просто функция, а не корутина