Drupal 多言語化

こちらの続きシリーズです。

https://qiita.com/JQinglong/items/7ce6e09ef06950dcaf79

今回は多言語対応です。

ユーザガイドは、第10章 サイトを多言語化する。

https://www.drupal.org/ja/docs/user_guide/ja/multilingual-chapter.html

このページがタイトル以外多言語化されていませんが・・・

こちらを見ながらがやりやすそう。

https://annai.co.jp/drupal/9/beginner/multilingual

## 地域と言語の設定

サイト/admin/config/regional/language

初期状態では、言語としては「Japanse」しかありませんでしたので、「言語を追加」で、「英語」を追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77307/76535f9c-7d20-160c-5b11-560ec8dcbd93.png)

ついでに「Chinese, Simplified」、「Chinese, Traditional」も追加しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77307/a2ba5809-4c2a-72be-94c5-cbfc7916b2d8.png)


日本語が一番翻訳されているのか・・・

何が翻訳されているかは、ユーザーインタフェースの翻訳

サイト/admin/config/regional/translate

で見ることができ、未翻訳の言葉を翻訳追加することもできます。

この時点ではまだサイトに変更はないです。

## 翻訳対象の指定

次に、「コンテンツの言語」の設定で、 コンテンツ、カスタムブロック、カスタムメニューリンク　にチェックを追加します。

サイト/admin/config/regional/content-language

チェックを付けると下に追加設定の入力欄が表示されるので、「作成・編集ページに言語セレクターを表示」にチェックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77307/2f4d4337-7440-30a3-0a07-ed7e48437cd9.png)

ユーザガイドでは説明がないように思いますが、この時、「機能拡張」の「多言語設定」もしておく必要があるようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77307/a41071a1-1043-7ce6-6b2d-cc70bd72c487.png)





４つともチェックをつけます。

そうすると、先程の「コンテンツの言語」の設定の撹乱の左にチェックボックスが現れます。
チェックすると、どのフィールドを対象とするかの選択欄が表示されるので、掲載、タイトル、本文　にチェックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77307/c5104282-7e6d-9b5a-b798-8bbd7a10732e.png)

これにより、各コンテンツの編集画面で、「翻訳」タブが表示されるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77307/2f814f46-4e73-1d0f-f2cb-7c30feac9028.png)

## 翻訳文作成

これは「ご案内」というコンテンツの編集画面ですが、例えば、home画面は、内容からで作成しているので、それぞれの翻訳を追加すると、こんな感じになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77307/aa4cd7d5-dd5c-5b57-8fba-e4c91075d13f.png)

コンテンツ自体は、それぞれできるんですね。良いような悪いような。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77307/fbc6ee09-7d85-6f4a-413a-54fadada339f.png)




言語でフィルタできるので、害はない？？

では、ご案内の各翻訳を作成してみます。
そうすると、サイト名の直後に、en とか、zh-hansをつければ、こんな表示になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77307/396344fb-cadb-84f5-ebaf-631584741c0b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77307/a156492d-d963-fbbe-96a9-3729520e961a.png)


これはOKです。
しかし、Blog のリンクを押してみると、こんな感じになってしまいました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77307/c6c28339-a763-94a2-dc85-41a32f5e47ea.png)

ブログを全部表示する形になっているので、他言語の同内容のものも表示されてます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77307/e6e34c8d-a65f-7042-6e62-8d80c379d1bf.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77307/7bde01fc-8101-c883-48de-9dadf039a69d.png)

ビューの設定でフィルターの条件を追加したら、OKでした。

その他、コンテンツタイプなども、自分で定義したフィールド名を、それぞれ翻訳していく必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77307/e5e06bcb-b1a3-e4f8-812d-e538d6486d21.png)

## 言語切り替えの仕組み

さて、翻訳文を作って、URLで切り替えができるようになった。
ただ、URLに自分で「en」を付けるなんてことはできない。

そもそも、どの言語で表示するかの判定は、地域と言語＞言語　の「判定と選択」で行います。

サイト/admin/config/regional/language/detection

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/77307/af7b32d6-f2d4-487c-27cd-078391502333.png)

例えば「ブラウザー」とかも指定しておけば、自動判定はされるようになりますが、確認用の意味も含めて、切り替えの仕組みは欲しい。これは、自分で作らないといけなそうです。

https://thinkit.co.jp/article/10080?page=0%2C1

プルダウンをヘッダにつけられると良いかなと思いますが・・・

若干中途半端ですが、一旦ここまで。