我已经安装了django-articles应用程序,遗憾的是它没有任何翻译但是英语并且支持非常差的国际化支持(只有部分消息在messages.po中)。
首先,我正在尝试翻译管理界面(对我来说很重要)。
但是我有一个很大的问题:我无法弄清楚Django如何生成一些字段名称以及我应该编辑什么来翻译应用程序。
fieldsets = (
(None, {'fields': ('title', 'content', 'tags', 'auto_tag', 'status')}),
('Relationships', {
'fields': ('related_articles','followup_for' ),
'classes': ('collapse',)
}),
....
在admin django生成具有子字段“Title”,“Content”,“Tags”的块,使用子字段“相关文章”阻止“关系”,使用英文标题“跟进”等等。 (LANGUAGE_CODE不等于英文)
django在哪里发生变化以及如何翻译它?
PS。我试图在messages.po中添加msgid“Title”(或“title”),并且在编译消息后没有任何改变。
答案 0 :(得分:2)
好像这个应用程序不支持翻译。 用于翻译的字符串必须由gettext函数包装(请参阅:https://docs.djangoproject.com/en/dev/topics/i18n/translation/)
E.g。在管理员:
from django.utils.translation import ugettext as _
...
fieldsets = (
(None, {'fields': ('title', 'content', 'tags', 'auto_tag', 'status')}),
(_('Relationships'), {
'fields': ('related_articles','followup_for' ),
'classes': ('collapse',)
}),
注意我添加的_()函数。
模型字段的翻译必须以相同的方式完成,例如在models.py
中title = models.CharField(verbose_name=_("Title"))
完成后,您可以使用
生成.po文件./manage.py makemessages -l <language_code>
有关详细信息,请参阅文档。