如何在django中翻译内部应用程序的管理员

时间:2013-02-13 11:37:08

标签: django django-admin

我已经安装了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”),并且在编译消息后没有任何改变。

1 个答案:

答案 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>

有关详细信息,请参阅文档。