async def get_user_locale(self, action, args):
user = types.User.get_current()
return user.locale
# Setup i18n middleware
i18n = ACLMiddleware(I18N_DOMAIN, LOCALES_DIR)
dp.middleware.setup(i18n)
# Alias for gettext method
_ = i18n.gettext
@dp.message_handler(commands="start")
async def cmd_start(message: Message):
await message.answer(_("Привет"))
Можете объяснить почему не переводит на Hello? Язык в настройках у меня стоит английский, locales на англ перевёл
на локали ориентироваться нельзя
А переводы то ты скомпилировал?
так в чём проблема?
в том что они непонятно как работают
в том, что эффект Левина
что мне показать, чтобы понять проблему?
ничего, просто не пользуйся локалями
свои локали надо хранить в бд юзер зарегался - спросить у него язык он выбрал, сохранил в бд, а при каждом запросе вытаскиваешь и используешь
как мне тестово проверить?
возвращай из мидлвари всегда en
class ACLMiddleware(I18nMiddleware): async def get_user_locale(self, action, args): return "en" Так?
Обсуждают сегодня