django 在浏览器之外,模板之外,views之外使用国际化
By:Roy.LiuLast updated:2012-10-15
通常django程序的国际化,都是在template,views中,并结合浏览器完成实现,关于这方面的文章,我前面写过,可以参考django国际化,但今天要面对的场景不是这样的,而是在template,view,浏览器的情况下,利用 django 的代码来实现国际化。
在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
先得到当前语言,然后切换到要翻译的语言,然后翻译字符串,不过要注意最后,仍然要把语言切换到原来的语言,并激活,这是因为翻译是在同一个线程中执行的,所以在翻译完之后,这个线程要回到原来的语言环境,这样才不会出问题。
From:一号门
Previous:django 自定义404错误,500错误页面
COMMENTS