公司客户的 Drupal 8 网站需要改成多语言,对于没有做过 Drupal 8 项目的我而言,一开始有些不适应,在翻译 Paragraphs 模块相关的字段和 reference 的时候碰到一个问题分享一下,避免走弯路。

在 Drupal 7 中,当我们为某一个 content type 开启多语言支持后,具体到某个字段,我们只需要在它的 manage fields 中进入该字段的配置为字段启用翻译即可。

回到开始说的 Drupal 8 和 Paragraphs:

我按照 7 的流程顺利的为 content type 开启了多语言,content type 上绑定了 paragraphs entity reference revisions 的字段类型,我想为这个 reference 开启翻译,这里需要注意不要进入 paragraph entity reference revisions 的字段编辑页面去勾选 “Users may translate this field”

paragraph-content-type-uncheck.png

如果勾选了 "Users may translate this field",那么 paragraphs reference 的多语言功能无法正常实现。

我们需要先为 Paragraph type 开启多语言支持,进入这个路径 admin/config/regional/content-language:

paragraph-drupal8-translation.png

勾选 Paragraph,滚动页面找到 Paragraph 的详细配置,勾选需要开启多语言支持的 Paragraph type:

paragraph-translation-settings.png

然后到 Structure - Paragraph types,确保您需要开启的 Paragraph type 的字段编辑页面 “Users may translate this field” 已经勾选。

这样就可以翻译 Paragraph type 中的字段了。

如果在 Paragraph type 的字段编辑页面 "Users may translate this field" 无法勾选,先到 admin/config/regional/content-language 路径下开启它的 parent paragraph type 的多语言支持就可以了。

如果进入翻译页面发现 paragraph entity reference revisions 字段都不显示了,那么您可能错误地勾选了 content type 中 reference 字段的 "Users may translate this field"。