我有一个模型,订单,在管理面板中有一个操作,可以让管理员发送有关订单的信息给特定的人列出该订单。每个人都有语言集,这是应该的消息中发送的语言Django:从管理面板发送的消息的切换语言
我使用的是什么样的短版:
from django.utils.translation import ugettext as _
from django.core.mail import EmailMessage
lang = method_that_gets_customer_language()
body = _("Dear mister X, here is the information you requested\n")
body += some_order_information
subject = _("Order information")
email = EmailMessage(subject, body, '[email protected]', ['[email protected]'])
email.send()
关于他所使用的语言中的客户信息,请在lang
。默认语言是en-us,翻译语言是法语(fr)和德语(de)。
有没有办法将lang
中指定的语言翻译为body
和subject
然后切换回en-us?例如:lang
是'de'。主体和主体应该获得'de'翻译文件中指定的字符串。
编辑:
实测值的溶液中。
from django.utils import translation
from django.utils.translation import ugettext as _
body = "Some text in English"
translation.activate('de')
print "%s" % _(body)
translation.activate('en')
这是什么它采取body
变量,将其转换为德语,打印它,然后返回语言为英文。
喜欢的东西
body = _("Some text in English")
translation.activate('de')
print "%s" % body
打印的英文文本虽然。
编辑:Oooops,对不起。今天我的头肯定有问题。 – 2010-04-19 21:50:43
translation.deactivate()可能比translation.activate('en')更好。 – 2010-04-22 22:35:58
谢谢。我没有注意到这个功能。 – yoshi 2010-04-24 09:58:16