ассинхронный фильтр aiogram

laiser

Известный
Автор темы
184
90
Всем привет, у меня опять проблема.
Есть функция, которая принимает ид и нужный текст, а возвращает уже переведенный текст.

Python:
async def return_txt(user_id, text):
    user_info = await get_userx(user_id)
    new_text = await get_textx()
    return new_text[f'{text}{user_info["user_lang"]}']

Но я не знаю как сделать, чтобы бот реагировал на данный текст, хотелось бы что-то типо такого:
Python:
@dp.message_handler(text=await return_txt(message.from_user.id, 'but1'))
Ну или так:
Python:
@dp.message_handler(lambda msg: msg.text == await return_txt(msg.from_user.id, 'but1_'))

Но там нет ассинхронности, и я не знаю что делать(
 

Neon3333

Известный
181
71
Всем привет, у меня опять проблема.
Есть функция, которая принимает ид и нужный текст, а возвращает уже переведенный текст.

Python:
async def return_txt(user_id, text):
    user_info = await get_userx(user_id)
    new_text = await get_textx()
    return new_text[f'{text}{user_info["user_lang"]}']

Но я не знаю как сделать, чтобы бот реагировал на данный текст, хотелось бы что-то типо такого:
Python:
@dp.message_handler(text=await return_txt(message.from_user.id, 'but1'))
Ну или так:
Python:
@dp.message_handler(lambda msg: msg.text == await return_txt(msg.from_user.id, 'but1_'))

Но там нет ассинхронности, и я не знаю что делать(
Ты не сделаешь мультиязычность таким образом, ты или пишешь свою мидлварь для перевода, или используешь готовые решения - I18n
Самый хреновый вариант - захардкодить все переводы в фильтры при регистрации руками
 
  • Нравится
Реакции: laiser

laiser

Известный
Автор темы
184
90
Ты не сделаешь мультиязычность таким образом, ты или пишешь свою мидлварь для перевода, или используешь готовые решения - I18n
Самый хреновый вариант - захардкодить все переводы в фильтры при регистрации руками
Большое спасибо за ответ, почитаю на досуге.
В моем же случае, я решил отказаться от ассинхронности.