Answer the question
In order to leave comments, you need to log in
How to implement language switching in asynchronous python application (telegram bot)?
Есть асинхронный бот для телеграма, хотим чтобы пользователь выбирал язык при добавлении бота, и все дальнейшие сообщения бота для этого пользователя были на выбранном языке.
Если делать по аналогии с джанго - менять язык на тот, что приходит в реквесте (в боте при получении сообщения смотрим какой язык лежит в модели пользователя), в джанго такое сработает, так как каждый реквест обрабатывается в отдельном процессе. В асинхронном боте также не получится - пока обрабатывается запрос одного юзера, язык может смениться при запросе от другого.
Как можно реализовать переключение языка в асинхронном приложении?
Answer the question
In order to leave comments, you need to log in
In my debt tracking bot https://t.me/DebtsTrackerRuBot , I implemented it as follows.
Created a TgChat table in the database with the key according to chat_id and it has a lang:string field. By default, there is Russian, but the user can change it to English or another in the settings.
With each request, this field is checked and the variable is set to the context that is passed to each method through and through. Wherever it is necessary to respond with text, the translation is taken according to the message key.
The current state of the chat is stored in the same plate, so you need to load this record anyway, so there is zero overhead.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question