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

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

通常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

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

上一篇: django 自定义404错误,500错误页面
下一篇: python 两个dict 合并并进行计算
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号