Async Python Telegram bot的本地化

时间:2017-03-06 07:13:19

标签: python asynchronous localization internationalization gettext

我们有异步python应用程序(telegram bot),我们想要添加本地化:用户在开始与bot对话时选择语言,然后bot会为他翻译所有消息。

Django允许为每个请求更改语言,它正常工作,因为Django为每个请求创建单独的进程。但它不适用于异步机器人 - 只有一个进程,我们应该处理内部使用不同语言的多个用户。

我们可以做一些简单的事情 - 在数据库中存储用户的首选项,从每个传入的消息中加载DB的首选语言,然后将这些设置传递给所有内部函数 - 但它非常复杂,因为我们的机器人很复杂而且可以是十几个包含函数调用。

我们如何以优雅的方式在异步应用程序中实现语言切换?

1 个答案:

答案 0 :(得分:0)

好的,我们使用with解决了问题,它为我们提供了所有内部函数调用的上下文。