我有一个Django / Django-CMS网站,有3种语言,我有一个静态占位符用于新闻通讯表格。问题是我在pt
页面中将插件添加到此占位符,然后编辑其他页面(en
和es
)中的内容,以便翻译文本并发布我的更改。问题是在编辑模式下会出现更改,但在发布模式下,它始终采用pt
转换。在其他占位符(非静态)中,这不会发生。我不能拥有带翻译的静态占位符吗?
更新:
以下是pt
页面中我的插件ID的打印件:
这里是en
页面的ID:
我的静态占位符定义如下:
{% static_placeholder "subscribe" %}
我定义了3种语言:
LANGUAGES = [
('pt', gettext('pt')),
('en', gettext('en')),
('es', gettext('es')),
]
CMS_LANGUAGES = {
## Customize this
'default': {
'public': True,
'hide_untranslated': False,
'redirect_on_fallback': True,
},
1: [
{
'public': True,
'code': 'pt',
'hide_untranslated': False,
'name': gettext('pt'),
'redirect_on_fallback': True,
},
{
'public': True,
'code': 'en',
'hide_untranslated': False,
'name': gettext('en'),
'redirect_on_fallback': True,
},
{
'public': True,
'code': 'es',
'hide_untranslated': False,
'name': gettext('es'),
'redirect_on_fallback': True,
},
],
}
答案 0 :(得分:0)
我认为这是由https://github.com/divio/django-cms/issues/5760造成的。
与此同时,对于每种语言,请尝试编辑/保存插件,然后发布。
保存插件会将静态占位符标记为脏,这将允许您使用该语言发布它。一旦发布,静态占位符就会被标记为不脏,因此您需要为每种语言执行此操作。
修改强>
尝试在shell中运行以下命令:
spl = StaticPlaceholder.objects.get(code='subscribe')
spl.publish(None, 'pt', force=True)
spl.publish(None, 'en', force=True)
spl.publish(None, 'es', force=True)