Python 无请求对象的Django翻译

Python 无请求对象的Django翻译,python,django,notifications,internationalization,translation,Python,Django,Notifications,Internationalization,Translation,我正在翻译我的Django应用程序,其中有一个推送通知模块。从该模块中,我向用户的移动设备发送一个文本字段。由于这些通知的触发器不是一个正确的HTTP请求(及其“request”对象),因此默认的Django字符串转换方法不起作用 我在每个用户配置文件上都有一个字段和它的首选语言,所以我认为我应该编写某种中间件,使该字段与其正确的翻译相匹配 有办法吗?您正在寻找上下文管理器: language = user.get_language() with translation.override(lan

我正在翻译我的Django应用程序,其中有一个推送通知模块。从该模块中,我向用户的移动设备发送一个文本字段。由于这些通知的触发器不是一个正确的HTTP请求(及其“request”对象),因此默认的Django字符串转换方法不起作用

我在每个用户配置文件上都有一个字段和它的首选语言,所以我认为我应该编写某种中间件,使该字段与其正确的翻译相匹配

有办法吗?

您正在寻找上下文管理器:

language = user.get_language()
with translation.override(language):
    # Translate your message here.

中间件也依赖于请求,所以不确定为什么您认为这会有帮助。但Django文档对此进行了明确的描述。有一点需要指出,该语言仅在
with
语句中设置,因此请特别注意(或不要在其中使用),否则可能会得到意外的结果