django 在浏览器之外,模板之外,views之外使用国际化

通常django程序的国际化,都是在template,views中,并结合浏览器完成实现,关于这方面的文章,我前面写过,可以参考django国际化,但今天要面对的场景不是这样的,而是在template,view,浏览器的情况下,利用 django 的代码来实现国际化。
在django 中可以采用如下方式实现
程序代码 程序代码

from django.utils import translation
def welcome_translated(language):
    cur_language = translation.get_language()
    try:
        translation.activate(language)
        text = translation.ugettext('welcome')
    finally:
        translation.activate(cur_language)
    return text

先得到当前语言,然后切换到要翻译的语言,然后翻译字符串,不过要注意最后,仍然要把语言切换到原来的语言,并激活,这是因为翻译是在同一个线程中执行的,所以在翻译完之后,这个线程要回到原来的语言环境,这样才不会出问题。

除非申明,文章均为一号门原创,转载请注明本文地址,谢谢!
[本日志由 轻舞肥羊 于 2012-10-15 09:29 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: django
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.