Drupal8 Paragraph(パラグラフ)モジュールの多言語対応方法

abechiyo 2019/07/17(水) - 11:25 に投稿

前回の記事は Paragraph モジュールの実力、主な機能について説明しましたが、今回は、Paragraph モジュールの多言語対応方法について、説明したいと思います。

記事対象

Drupal の設定にある程度慣れていて、多言語化についても理解している方
 

はじめに

 

Paragraph の多言語対応は、少しコツがあります。

まず、Paragraph モジュールを使ったサイトを多言語化する際、Content Translation モジュールを有効にし、「コンテンツの言語」設定画面(/admin/config/regional/content-language)にアクセスすると、

(* unsupported) Paragraphs fields do not support translation. See the online documentation.

というメッセージが出ます。

エラー

「パラグラフフィールドは翻訳をサポートしていません」と書いてあるので、パラグラフは多言語化できないと思われるかもしれません。ですがこの See the online documentation のリンク先のドキュメントに記載がある通り、「親エンティティのパラグラフフィールドは翻訳不可ですが、パラグラフエンティティは翻訳可能」なのです。そのため結果としては、設定を正しく行えば、パラグラフは翻訳が可能になります。

 

設定方法

 

具体的な設定方法を見てみましょう。
設定方法のポイントは、

親エンティティのパラグラフフィールドは翻訳の設定をオフにし、すべてのパラグラフタイプ、およびそれらのフィールドは翻訳の設定をオンにする

です。

例えば、「事例」というコンテンツタイプに「パラグラフ」(field_paragraphs)というフィールドがあり、そのフィールドで「h2タイトル」「文章」「画像+文章(左画像回り込み)」といったパラグラフタイプを使っていたとします。

  1. 「コンテンツの言語」設定画面(/admin/config/regional/content-language)で、「言語のカスタム設定」で、Content と Paragraph にチェックを入れます。


     
  2. スクロールし、Content の「事例」コンテンツタイプの「翻訳可能」にチェックを入れます。

    設定
     
  3. 「パラグラフ」フィールドの「翻訳可能」のチェックを外します。

    設定
     
  4. Paragraph までスクロールし、「h2タイトル」「文章」「画像+文章(左画像回り込み)」のバンドルと、それらのフィールドの「翻訳可能」にチェックを入れ、設定を保存します。

    設定

 

となります。

これは、パラグラフでパラグラフフィールドを使用している場合(パラグラフをネストしている場合)も同様です。その場合は、親エンティティのパラグラフフィールドの翻訳をオフにして、その中のパラグラフタイプはすべて翻訳をオンにします。

 

まとめ

 

今回は少し特殊な話題を説明しましたが、いかがだったでしょうか。
パラグラフは活躍の幅が広いモジュールなので、是非活用したいところです。

要は、パラグラフフィールドは翻訳をサポートしていないが、パラグラフエンティティはサポートしているということですね。
ここだけ押さえ、正しく設定を行えば、パラグラフも翻訳が可能になります。
「パラグラフは翻訳出来ないから使えない」、と思って諦めている方の参考になれば幸いです。

参考:

Multilingual Paragraphs configuration   Drupal 8 guide on Drupal.org

タグ