相关疑难解决方法(0)

对于一段代码,Django切换切换语言,以便用一种语言完成翻译

我有一个django项目,它使用一个向用户发送电子邮件的工作进程.工作进程侦听rabbitmq服务器并获取有关要发送的电子邮件,模板变量,要发送到的电子邮件地址等的所有详细信息.电子邮件正文使用django templates和render_to_string创建.

但是我想把这个国际化.我们的一些用户将使用英语网站,其中一些使用其他语言.他们应该用他们的语言收到电子邮件.我试图使用电子邮件工作进程(使用django.utils.translations.ugettext/ugettext_lazy),以便电子邮件主题和电子邮件正文具有_(...)或{%blocktrans%} resp.

但是,由于电子邮件是在不同的后台工作进程中呈现和发送的,因此正常的django语言检测过程似乎不适用.它没有用户会话,没有cookie或没有http标头可供查看.将消息发送到rabbitmq服务器时,我可以存储语言代码

但是我如何告诉django/gettext在某一点上使用该语言.

例如,我发送电子邮件的函数可能如下所示:

def send_email(details):
  lang = details['lang']
  name = details['name']
  email_address = details['email_address']

  switch_gettext_to_this_language_what_goes_here(lang):
  # ?????
  email_subject = _("Welcome to $SITE")  
Run Code Online (Sandbox Code Playgroud)

如何将django translations/gettext切换为特定的语言代码以便_()使用该语言代码?

python django translation gettext internationalization

15
推荐指数
4
解决办法
7187
查看次数

特定区域设置的gettext

我可以使用当前语言环境获得翻译.

from django.utils.translation import ugettext as _
_("password")
Run Code Online (Sandbox Code Playgroud)

但是在我的代码中(一种特定的形式)我想用特定的语言进行翻译.我希望能够说出来.

ugettext_magic("de", "password")
Run Code Online (Sandbox Code Playgroud)

我已经用我需要的语言翻译了字符串.

python django internationalization

1
推荐指数
2
解决办法
1100
查看次数