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