posts - 431,  comments - 344,  trackbacks - 0

之前写过一篇文章讲解如何修改django自带后台管理页面里的app名称的显示,本来django原本就是对app的名称进行国际化操作了,比如在模板中使用:
{% blocktrans with app.name as name %}{{ name }}{% endblocktrans %}
来显示app的名字,但由于blocktrans 存在bug,所以不能翻译app的名字,本人在前文中已经讲解两种解决办法,要么使用:
{% trans app.name %}
要么就使用filter来处理。
今天由于空闲,就查看跟踪了一下blocktrans 部分的源码,发现根本就没用对with后面的参数进行翻译,打开PythonHome\Python25\Lib\site-packages\django\templatetags中的i18n.py到第85行代码为:
data = dict([(v, force_unicode(context[v])) for v in vars])
解决法办,把源码修改为:
data = dict([(v, translation.ugettext(force_unicode(context[v]))) for v in vars])
这样问题就解决了!
使用版本为1.0.2,不知道1.1里面有没有解决。

posted on 2009-04-17 16:00 周锐 阅读(1188) 评论(1)  编辑  收藏 所属分类: Python

只有注册用户登录后才能发表评论。


网站导航: