Async Python Telegram 机器人的本地化
Localization for Async Python Telegram bot
我们有异步 python 应用程序(telegram bot),我们想添加本地化:用户在开始与 bot 对话时选择语言,然后 bot 会为他翻译所有消息。
Django 允许为每个请求更改语言,它工作正常,因为 Django 为每个请求创建单独的进程。但它在异步机器人中不起作用——只有一个进程,我们应该在其中处理多个使用不同语言的用户。
我们可以做一些简单的事情——将用户的首选项存储在数据库中,从数据库中加载每条传入消息的首选语言,然后将这些设置传递给所有内部函数——但这相当复杂,因为我们的机器人很复杂并且可以有十几个包含的函数调用。
我们如何优雅地在异步应用程序中实现语言切换?
好的,我们使用 with
解决了问题,它为我们提供了所有内部函数调用的上下文。
我们有异步 python 应用程序(telegram bot),我们想添加本地化:用户在开始与 bot 对话时选择语言,然后 bot 会为他翻译所有消息。
Django 允许为每个请求更改语言,它工作正常,因为 Django 为每个请求创建单独的进程。但它在异步机器人中不起作用——只有一个进程,我们应该在其中处理多个使用不同语言的用户。
我们可以做一些简单的事情——将用户的首选项存储在数据库中,从数据库中加载每条传入消息的首选语言,然后将这些设置传递给所有内部函数——但这相当复杂,因为我们的机器人很复杂并且可以有十几个包含的函数调用。
我们如何优雅地在异步应用程序中实现语言切换?
好的,我们使用 with
解决了问题,它为我们提供了所有内部函数调用的上下文。