iDe*_*adO 5 django localization django-forms
我有一个模特:
class Server(models.Model):
serverId = models.IntegerField(verbose_name=_("serverId"))
name = models.CharField(max_length=200, verbose_name=_("server_name"))
ip = models.CharField(max_length=200, verbose_name=_("ip"))
cport = models.IntegerField(default=5000, verbose_name=_("cport"))
aport = models.IntegerField(default=1000, verbose_name=_("aport"))
hport = models.IntegerField(default=2000, verbose_name=_("hport"))
version = models.CharField(max_length=100, verbose_name=_("version"))
serverGroup = models.ForeignKey(Group, null=True, blank=True,
verbose_name=_('server_group'))
class Meta:
db_table = u'server'
def __unicode__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
和模型形式:
class ServerForm(ModelForm):
class Meta:
model = Server
Run Code Online (Sandbox Code Playgroud)
从我在这个app目录中
$ mkdir locale
$ django-admin.py makemessages -l zh_CN
Run Code Online (Sandbox Code Playgroud)
然后我在locale/zh_CN/LC_MESSAGES/django.po中提供了翻译,然后我做了
$ django-admin.py compilemessages
Run Code Online (Sandbox Code Playgroud)
然后我运行了开发服务器:
$ python manage.py runserver
Run Code Online (Sandbox Code Playgroud)
然后去看看firefox 中的网址http://127.0.0.1:8000并显示翻译.所以我认为我做对了,我使用nginx + fastcgi在同一台机器上部署了项目,整个项目没有任何改变.然后我转到网址http://127.0.0.1,然后模型在那里显示英文.它没有本地化给中国人.
我已经google了很多,并从docs.djangoproject.com阅读了许多文档,但仍然不知道如何解决问题.所以我在这里问.
我只在settings.py中设置了LANGUAGE_CODE ='zh_CN',并且保留了所有内容.我的django版本是1.2.4
您的任何评论都表示赞赏.
确保使用lazy_translation.你是进口ugettext_lazy还是ugettext?
from django.utils.translation import ugettext_lazy as _
Run Code Online (Sandbox Code Playgroud)
http://docs.djangoproject.com/en/dev/topics/i18n/internationalization/#lazy-translation