Django-模板呈现的开关语言设置

Django-模板呈现的开关语言设置,django,internationalization,Django,Internationalization,可能重复: 有没有一种简单的方法可以让Django为单个模板渲染操作切换语言 在我的例子中,用户可能会触发一个事件,该事件将需要向一个说不同语言的人发送消息 例如,用户是说英语的人,但调用一个动作来向说西班牙语的人发送消息,因此我需要生成西班牙语的传出内容 我知道通过伪造请求和使用RequestContext是可能的,但是我更喜欢更短/更干净的解决方案。您是否正在寻找类似以下内容的解决方案: from django.utils import translation language_code

可能重复:

有没有一种简单的方法可以让Django为单个模板渲染操作切换语言

在我的例子中,用户可能会触发一个事件,该事件将需要向一个说不同语言的人发送消息

例如,用户是说英语的人,但调用一个动作来向说西班牙语的人发送消息,因此我需要生成西班牙语的传出内容


我知道通过伪造请求和使用RequestContext是可能的,但是我更喜欢更短/更干净的解决方案。

您是否正在寻找类似以下内容的解决方案:

from django.utils import translation
language_code = 'xx'
template_body = Template(some_text_var)
translation.activate(language_code)
r = template_body.render(context)
translation.deactivate()

为了更好地重用代码,您可以将其重构为上下文管理器。

我不确定请求或请求上下文是如何实现的。当然,如果用户A向用户B发送了一条消息,那么当用户B请求查看该消息时(取决于他们的语言设置),可以简单地翻译该消息。问题是我正在发送电子邮件或短信,因此收件人永远无法与我的Django应用程序交互。然而,我后来了解到,django.utils.translate.activate/deactivate是shanyu指出的正确答案-