【发布时间】:2017-03-06 07:13:19
【问题描述】:
我们有异步python应用程序(电报机器人),我们想添加本地化:用户在开始与机器人对话时选择语言,然后机器人为他翻译所有消息。
Django 允许为每个请求更改语言,它工作正常,因为 Django 为每个请求创建单独的进程。但它在异步机器人中不起作用——只有一个进程,我们应该在其中处理多个使用不同语言的用户。
我们可以做一些简单的事情——将用户的偏好存储在数据库中,从数据库中加载每个传入消息的首选语言,然后他们将这些设置传递给所有内部函数——但这非常复杂,因为我们的机器人很复杂,并且可以包含十几个函数调用。
我们如何优雅地在异步应用中实现语言切换?
【问题讨论】:
标签: python asynchronous localization internationalization gettext