0

我已经安装了 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”的块,带有子字段“Related article”的块“Relationships”、带有英文标题的“Followup for”等等。(LANGUAGE_CODE 不等于英文)

django 这在哪里发生了变化以及我如何翻译它?

附言。我尝试将 msgid“Title”(或“title”)放入 messages.po 中,编译完消息后没有任何改变。

4

1 回答 1

2

好像这个应用程序不支持翻译。用于翻译的字符串必须由 gettext 函数包装(参考:https ://docs.djangoproject.com/en/dev/topics/i18n/translation/ )

例如在管理员中:

 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>

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

于 2013-02-13T11:47:33.047 回答