
なお、この記事は、Drupal Advent Calendar 2018 の 24日目です。また、紹介している Umami 日本語版は「Drupal ONSEN vol.4 in 洞爺湖温泉」での発表を目的として作成したものです。
Umami について
Umami を使用して Drupal をインストールすると、『Umami Food Magazine』という架空の雑誌サイトが立ち上がります。このサイトには、専用テーマ、サンプルコンテンツのほか、コンテンツタイプ・ビューモード・ブロックシステム・Views 等の構成設定一式が組み込まれているので、より現実のサイト環境に近い条件で Drupal コアの機能を試すことができます。
Umami を使用して Drupal をインストールすると、次の要素が導入されます:
- コンテンツ
- コンテンツタイプ(Basic Page、Article、Recipe)
- カスタムビューモード(Card、Card common、Card common alt)
- サンプル コンテンツ
- ブロック
- カスタム ブロック
- カスタム ブロック タイプ
- ボキャブラリ(タグ、Recipe category)
- サンプルユーザー
- Umami デモサイト用の View
- 専用テーマ(Umami)
- コンテンツインポート用モジュール(demo_umami_content)
Umami の詳細については、下記資料を参照してください:
Umami: Drupal 8 demonstration installation profile
便利な Umami プロファイルですが、コンテンツがすべて英語なので、国内向けのデモとしてはリアリティが足りません。そこで今回、コンテンツや構成を翻訳した日本語版を作成することにしました。
Umami プロファイルの日本語化
Umami プロファイルは、大きく次の4つの要素からなります:
- インストールプロファイルの構成ファイル
- demo_umami.info.yml
- demo_umami.install
- demo_umami.libraries.yml
- demo_umami.links.menu.yml
- demo_umami.profile
- サンプルコンテンツとインポート用モジュール(modules/demo_umami_content フォルダ)
- 構成設定(connfig フォルダ)
- 専用テーマ(theme/umami フォルダ)
各要素を次のように日本語化しました。
1. インストールプロファイルの構成ファイル
Umami プロファイルには demo_umami という内部名(machine name)が付いており、フォルダ名や各種構成ファイルも同じ名前になります。日本語版はこれと区別するため、末尾に j を付けた demo_umamij という名前に変更することとし、フォルダ名や構成ファイル名、および実装されているフック関数の名前をこれに合わせて変更しました。
2. サンプルコンテンツとインポート用モジュール
Umami では、サンプルのコンテンツを、CSV ファイル、HTML ファイル、および画像ファイルに分けて保管し、これをサイトに取り込むための専用モジュール(demo_umami_content)と一緒に提供しています。コンテンツの大半は CSV と HTML の中にありますが、ブロックのコンテンツなど、一部はモジュールのプログラムソース中の文字列として含まれています。これらをすべて翻訳して日本語化しました。
3. 構成設定
コンテンツ以外の文字列はサイトの構成設定として保存されており、Drupal 8 の Configuration Manager を使用して YAML ファイルとしてインポート/エクスポートできます。Drupal 8 のインストールプロファイルでは、この仕組みを利用して、構築するサイトの構成設定を config フォルダ内の YAML ファイルとして提供します。
今回の日本語化作業では、まずオリジナルの英語 Umami プロファイルでサイトをインストールし、そのサイトの翻訳対象文字列を Drupal の管理画面から日本語化した後、Configuration Manager の「構成の同期」機能でエクスポートし、このファイルを(若干の加工をした上で)インストールプロファイルの YAML ファイル群として使用しました。
4. 専用テーマ(theme/umami)
テンプレート中のリンク文字列の記述が不完全で、適切な日本語訳が適用できなかったため、その箇所にのみ変更を加えました。なお後述のように、この問題はすでに issue が上がっており、将来のバージョンでは修正されるものと思われます。
5. その他
Drupal 8 のコアには含まれない、インストールプロファイル固有の翻訳対象文字列の日本語訳を提供するため、translation/ja.po ファイルとして翻訳ファイルを追加し、このファイルを読み込む設定を demo_umamij.info.yml ファイルに追加しています。
こうして作成したインストールプロファイルは、下記で公開しています。
https://github.com/bkenro/demo_umamij
使用するには、クローンするか、ZIPファイルをダウンロードして、サイトの profiles/demo_umamij フォルダに展開します。インストールを実行すると、インストールプロファイルの選択画面で4番目の選択肢として表示されます。なお、Drupal 8 のコアに含まれるインストールプロファイルは core/profiles フォルダ内にありますが、通常その他のプロファイルは profiles フォルダの下に配置して使用します。

これを選択してインストールを進めると、日本語の Umami サイトが出来上がります。
Drupal 8 のインストールプロファイルの作り方については、次の資料を参考にしました。
https://www.drupal.org/node/2210443
Umami の進化について
Umami には今後さまざまな改善や機能追加が行われる可能性があります。日本語化作業に関して注目しておきたい取り組みを紹介します。なお、Umami はデモ用に位置づけられており、バージョンアップでは旧バージョンとの互換性や移行パスは提供されません。Umami を実サイト構築の出発点として使用することはできないので注意してください。
サンプルコンテンツのインポート方法
現状の Umami では、専用モジュール(demo_umami_content)でサンプルのコンテンツをインポートしています。しかし、コアのマイグレーション機能に CSV のサポートを加えようという動きがあり、これを利用して独自モジュールを使わずにサンプルコンテンツをインポートする方法が検討されています。
現状の demo_umami_content では、モジュールのソースに一部コンテンツがハードコードされており、ローカライズにはモジュールソースの編集が必要でした。コア標準の機能に移行することで、こうした問題も解決されるかもしれません。
多言語対応
現在の Umami は多言語機能を使用していないため、今回は対象文字列の置換で強引に日本語化しましたが、多言語機能を Umami に加えようとする動きもあります。
また翻訳に関しては、今回 Umami テーマに加えた変更と同じ目的のパッチが既に公開されています。これが取り込まれれば、今回テーマに加えた変更も不要になると思います。バンドル名がコンテンツの種類を表す名前になるとは限らない、という点がこの issue の指摘ですが、日本語の場合はさらに、語順が合わないこと、また文脈によって view という単語の訳し方が変わることも問題になりました。日本語へのローカライズの困難さを示す例としても興味深いですね。
まとめ
Drupal 8.6 から正式にサポートされた Umami インストールプロファイルの日本語版を作成し、その内容を紹介しました。日本語にすることで、現実のサイトに近い条件で Drupal 8 の機能を試すことができると思います。
おすすめ記事
関連コンテンツ
Drupal 初心者講座バックナンバー
-
Drupal 9/10 初心者講座
-
第 1 回 歴史に見る Drupal の DNA
-
第 2 回 Drupal はフレームワークか?CMS か?他の CMS との比較
-
第 3 回 Drupal の特徴
-
第 4 回 Drupal 9 / 10 のインストール (1)
-
第 5 回 Drupal 9 / 10 のインストール (2)
-
第 6 回 Drupal にコンテンツを投稿してみる
-
第 7 回 Drupal のボキャブラリとタクソノミーの使い方
-
第 8 回 コンテンツ管理における Drupal と他の CMS との比較
-
第 9 回 Drupal のブロックシステム
-
第 10 回 Drupal の標準クエリビルダー Views の使い方
-
第 11 回 Drupal と他の CMS のクエリビルダー機能を比較
-
第 12 回 Drupal の多言語機能と他の CMS やサービスとの比較
-
第 13 回 Drupal の権限設定と WordPress や Movable Type との比較
-
第 14 回 Drupal のテーマシステムについて
-
第 15 回 Drupal の拡張モジュールの選定と使い方
-
第 16 回 Drupal をもっと知りたい方に向けた各種情報