首页 > 解决方案 > 如何将 Django 的翻译字符串与 Wagtailtrans 一起使用(支持多语言 Wagtail 站点的附加组件)

问题描述

所以我有一个使用 Wagtailtrans 扩展的 Wagtail 网站。我基本上通过复制页面树来启用多语言。因此,url 在开始时使用语言代码固定。

我可以完美地翻译我通过模型定义的所有内容。这是一个如何工作的示例:

class ServicesPage(MetadataPageMixin, TranslatablePage):
    description              = models.CharField(max_length=255, blank=True,)

    content_panels           = Page.content_panels + [
                            FieldPanel('description', classname="full")
                            ]

您在模型中将其定义为 TranslatablePage 而不是 Page。一切正常,但是我仍然需要一些我没有在我的模型中定义的额外字符串来翻译。我只是使用 Django 的翻译功能,{% load i18n %}然后将字符串包裹在{% trans "String" %}.

到目前为止一切顺利,我在 Wagtail admin 中定义了我的两种语言(Wagtail trans 为此创建了一个选项),在这种情况下是英语和荷兰语。我将英语设置为主要语言,因此字符串为英语。

我使用./manage.py makemessages它,它为我创建了一个 .po 文件,其中包含所有标记的字符串。最后我用./manage.py compilemessages.

但是当我切换到荷兰语时,翻译的字符串没有显示出来,它仍然显示英文字符串。所以我怀疑它需要一些额外的调整才能与 Wagtailtrans 一起工作,但我似乎无法弄清楚这个设置应该如何。谁能帮我吗?

标签: djangodjango-modelswagtailwagtail-snippetwagtail-pageurl

解决方案


推荐阅读