Django的国际化非常好(基于gettex,localemiddleware),但是如何翻译模型名称和管理页面的属性?我在文件中没有发现任何与此相关的信息:
I would like to have "ÐÑбеÑиÑе заказ Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ" instead of "ÐÑбеÑиÑе order Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ". 注意,“订单”未翻译。
首先,我定义了一个模型,激活
USE_I18N = True
在settings.py中,运行
django-admin makemessages -l ru
. 默认情况下,不会为模型名称和属性创建任何条目。
Grepping in the Django source code I found:
$ ack "Select %s to change"
contrib/admin/views/main.py
70: self.title = (self.is_popup and ugettext('Select %s') % force_unicode(self.opts.verbose_name) or ugettext('Select %s to change') % force_unicode(self.opts.verbose_name))
所以
verbose_name
元属性在这里似乎扮演了某种角色。尝试使用它:
class Order(models.Model):
subject = models.CharField(max_length=150)
description = models.TextField()
class Meta:
verbose_name = _('order')
现在更新了
po
文件包含
msgid 'order'
那是可以翻译的。所以我把翻译放进去了。不幸的是,运行管理页面显示相同的“______忛____¼__½___”组合。
我目前正在使用django 1.1.1。
有人能给我指一下相关的文件吗?因为谷歌不能。;-)同时,我将深入研究django源代码…