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