如何在 Wagtail 中本地化设置

问题描述 投票:0回答:1

我正在尝试在 Wagtail 的设置中实现本地化。我知道可以通过继承

TranslatableMixin
类来本地化 Snippets。而且效果非常好。

但是,当我尝试通过在也继承自

BaseGenericSetting
的模型中继承此类来本地化设置以将模型添加到 Wagtail 的设置时,它不提供用于更改管理面板中的语言的界面,以便我可以创建不同语言的设置。

如何添加一个界面来更改设置中的语言,类似于我们对片段所做的操作?

例如,我想为三种不同的语言创建下面提到的模型的实例(它们添加在base.py的LANGUAGES设置中)。这意味着将有针对三种不同语言的三个 CompanySettings 实例。

@register_setting(icon="doc-full")
class CompanySettings(TranslatableMixin ,BaseGenericSetting):
    top_services = models.CharField(
        _("Top Services"), max_length=250, blank=True, null=True, help_text="add top services separated by comma")
    
    copyright_text = models.CharField(_("Copyright Text"), max_length=100, blank=True, null=True)

    panels = [
        FieldPanel('top_services'),
        FieldPanel('copyright_text')
    ]

我通过查询其实例来检查

CompanySettings
模型,以验证
locale
translation_key
字段是否可用,因为这些字段是由
TranslatableMixin
提供的。然而,即使它们可用,它似乎不适用于 Wagtail 的设置。

有人可以帮我解决这个问题吗? 我只想为

LANGUAGES
 中设置的 
base.py

添加设置

或者建议我一种本地化模板中渲染设置的方法。

django localization internationalization wagtail django-i18n
1个回答
0
投票

经过一些研究,我发现他们的 github 上有一个活跃的 PR。
但是,PR 的作者不再重新拾起它 - 他们为各自客户完成的工作已经完成。
如果不符合人们的兴趣,他们就没有那么多空闲时间。

我认为大部分工作已经完成 - 您可以使用自己的自定义模板标签实现轻松地进一步实现。
是的,有点乏味 - 但它可能会起作用。

© www.soinside.com 2019 - 2024. All rights reserved.