初のCraftCMS案件を振り返る その2

この記事はCraft CMS Advent Calendar 2020 - Adventarの19日目の記事です。

前回の初のCraftCMS案件を振り返る その1 \| Blog \| riatw.meの続編です。

今回はCraftCMSを使ってみて実際に感じた良いところのうちの一つ、「多言語機能」を取り上げてみようと思います。

CraftCMSでは多言語機能がコアでサポートされています。 厳密にはマルチサイト機能を使うことで多言語サイトを作成することが可能です。

MTのウェブサイトとの違い

Movable Typeのウェブサイトはブログを束ねるものでウェブサイトを作り、その中にブログを作成してくことで様々なコンテンツを管理することが可能です。

CraftCMSのマルチサイトはMTのそれとは大きく異なっており、サイトを作るだけではコンテンツの管理は行なえません。コンテンツは別途「エントリ」や「カテゴリ」を作成し、そちらで行います。MTで言うとエントリ=コンテンツデータ、カテゴリ=カテゴリセットになります。 サイトを追加すると「エントリ」や「カテゴリ」に言語切替のプルダウンが現れ、各言語ごとの情報が登録出来るようになります。

どちらで作っても似たような画面を作ることは出来るものの、言語数が増えれば増えるほどCraftCMSの方が管理が圧倒的に楽になります。

CraftCMSの他言語機能の良いところ

CraftCMSで多言語サイトを作った際に感動したところは以下の点です。

  • 基本言語でエントリを作成するだけで各言語に自動で複製される(複製しないことも出来ます)
  • エントリ、カテゴリの編集画面で言語切替が出来るため入力が容易
  • カテゴリの追加・削除・並び替えを行った際に自動で他言語に反映される
  • 全言語を1つのテンプレートで管理できるため、後の仕様変更に強い(分けることも可能です)
  • テンプレートの共通部分の翻訳が辞書ファイルで行えるため、一元管理がしやすい
  • テンプレート内で言語コードによって分岐が容易に出来る
  • エントリ、カテゴリのフィールド設定を変更すると自動で多言語に反映されるため、制作時の作業が1言語分で済む
  • フィールドごとに翻訳する・しないの設定ができるため、画像等は全言語で共通管理にできる

書いてみたら思った以上に沢山ありました。

CraftCMSのマルチサイト機能は透過的に作用するため、追加が容易な点がとても良いと思っています。最初は1言語で始まり、言語が徐々に増えていくといった展開のサイトも向いています。

この透過的に作用するところがとても気持ちよく、これはプラグイン等の後付ではなくコアでサポートされているから出来ることなんだろうなーと思います。

裏ではエントリやカテゴリがそれぞれ多言語で登録されており、それがさらにバージョン管理までされているため、データ量は膨大だと思うのですが今のところ非常に軽快に動作しています。完全動的なのにすごいですね…。

今回は他言語機能に触れてみました。
もし次回があればエントリの柔軟性か、Twigの書きやすさについて触れようと思います。

それではまた次回!