我正在尝试在 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
添加设置
或者建议我一种本地化模板中渲染设置的方法。