我有一个 Django 应用程序,其模型名为Topic
. 我想在 Django admin 中翻译这个模型的复数形式(参见下面屏幕截图中的红色椭圆)。
为了做到这一点,我做了以下事情:
1)在models.py中为模型添加了一个Meta类:
from django.utils.translation import ugettext_lazy as _
class Topic(models.Model):
title = models.CharField(max_length=140)
def __unicode__(self):
return self.title
class Meta:
verbose_name = _('topic')
verbose_name_plural = _('topics')
2) Ran django-admin.py makemessages -l ru-RU
,它生成了一个文件locale/ru/django.po
。
3) 为django.po
文件添加了翻译:
msgid "topic"
msgstr "Тема"
msgid "topics"
msgstr "Темы"
4)跑django-admin.py compilemessages
。
5)进行了更改settings.py
,以便那里有以下设置:
LANGUAGE_CODE = 'ru-RU'
ugettext = lambda s: s
LANGUAGES = (
('ru-RU', ugettext('Russian')),
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.locale.LocaleMiddleware',
)
USE_I18N = True
USE_L10N = True
但它仍然不起作用(管理中的标记字母仍然以英文显示,而不是俄文)。
我能做些什么来解决这个问题?
更新 1(28.09.2013 13:26):我的目录结构可能有问题。这里是: