多言語対応サイトもOK - Magnolia CMSの初期設定を行う

Magnolia

Magnolia CMS で日本語に対応したサイトを構築するための設定に関して記述しています。

はじめに

Magnolia CMSのインストール で war を利用したインストール方法に関して書きましたが、これだけでは一般向けにサイトを公開できる状態にはなりません。

以下最低限サイトを公開可能にするための手順に関して説明します。

環境

環境は Magnolia CMSのインストール におけるものと同じです。
但し、Magnoliaに関しては、一つバージョンが上がって5.2.2 になっています。

5.2.2では多くの日本語リソースが取り込まれたため、Magnolia5を日本語で利用したい場合、5.2.1以前のものではなく5.2.2以降を利用しましょう。

Magnolia Magnolia Community Edition 5.2.2
OS Amazon Linux ( 64bit )
Java OpenJDK 1.7.0.51
Tomcat tomcat7.0.47

Magnolia のインスタンス構成に関しては、単一のインスタンスが編集用 ( Author ) と公開用 ( Public ) を兼ねる構成の場合に関して説明します。

理由は、『最も簡単な構成で説明がしやすい』からです。

企業等で運用する場合の構成としてはおすすめしませんが、Magnolia CMSを利用して日本語サイトを作成するための最低限の設定に関しては説明できるのではないかと思います。

サイトの公開設定

Magnolia CMSのインストール の手順に従ってインストールを行った場合、インストールされたMagnlia は Author インスタンス ( 編集用 ) として実行されています。
編集用インスタンスは管理者や編集者がコンテンツを作成するための設定になっており、誰もがアクセスできる権限設定にはなっていません。
まずこの設定を変更します。

参考 : Changing author to public instance

以下は Magnolia CMS に superuser権限でログインして作業を行います。

Webアクセス権の設定

まず、不特定多数のユーザがCMS上のコンテンツにアクセスできるようにします。Magnolia CMS では WEB ACCESS で HTTPメソッドでのアクセス設定を行い、ACCESS CONTROL LISTS で コンテンツタイプ毎のアクセス権設定を行います。

  1. 管理コンソールの [Security] アイコンをクリックします。
  2. セキュリティ設定のためのウィンドウが開くので、[ROLES] タブをクリックします。
  3. 定義済みの Role ( 役割 ) 一覧が表示されるので、anonymous をダブルクリックします。
    ROLES
  4. anonymous の 権限設定のためのウィンドウが開くので、WEB ACCESS タブをクリックします。
  5. "/*" が "Deny" になっているので、"Get&Post" に変更し、[SAVE CHANGES]ボタンをクリックします。
    WEB ACCESS
    これで、ルート以下の全てのリソースに対してGET & POST リクエストでのアクセスが可能になります。

権限設定

  1. [ACCESS CONTROL LISTS] タブをクリックします。
  2. anonymous ロールのアクセス権を設定します。
    • DAM(Digital Asset Management) に関しては設定がなされていないので、Read-only 設定を追加
      ※DAM には、画像や動画ファイル、ダウンロードドキュメント等が含まれます。
    • Websiteが Deny access になっているので、Read-only に変更
    ACCESS CONTROL LISTS
    設定を行ったら [SAVE CHANGES] ボタンをクリックします。

スタートページの設定

Author インスタンスは、管理コンソールにログインして作業する前提であるため、スタートページは 管理コンソール ( ログイン画面 ) になっています。
これをサイトのスタートページ ( ホームページ ) に設定します。

  1. 管理コンソールの [Configuration] アイコンをクリックします。
  2. ノードツリーを展開し、"modules/ui-admincentral/virtualURIMapping/default/toURI" の値を公開するスタートページに併せて設定します。

    例としてデモプロジェクト ( Magnolia CMSのサンプルとしてインストールされています ) にする場合、以下のように設定します。

    変更前redirect:/.magnolia/admincentral
    変更後redirect:/demo-project.html
    CONFIGURATION

上記設定を行った状態で http://ホスト名/コンテキストパス でアクセスすると、変更前は管理画面にアクセスしていたのが、デモプロジェクトのトップページへのアクセスに変更されるようになります。

日本語化

サイトの日本語化

Magnolia CMS は複数の言語に対応しています。デフォルトの設定は英語になっていますが、これを日本語にします。

参考 : Language - Magnolia 5 Documentation - Magnolia Wiki:

  1. 管理コンソールの [Configuration] アイコンをクリックします。
  2. ノードツリーを展開し、"server/i18n/content/locales" に移動します。
  3. 英語ロケール "en" を複製して、日本語ロケール "ja" を作成します。
    "en" を右クリックして、表示されるコンテキストメニューから [Duplicate item] をクリックします。
    ロケールの複製
  4. "en" が複製されるので、これを "ja" にリネームします。
    ロケールのリネーム
  5. "ja" ロケールのプロパティを編集します。
    language プロパティ を "en" から "ja" に変更します。 ロケールプロパティの設定
  6. また、fallbackLocale プロパティ を "en" から "ja" に変更します。
    これにより、ページのデフォルトのロケールが日本語になります。

デモプロジェクトのページにアクセスしてみると、ページ表記のいくつか (プロパティファイルを参照している部分) が日本語表記になっている事が確認できます。
日本語化

※当然ですが、コンテンツデータが表示されている部分に関しては英語のままです。

サイトの多言語対応

Magnolia CMS はサイトの多言語対応もサポートしています。
多言語対応を行う場合、上記 "server/i18n/content/locales" 設定下にある enabled プロパティ を "false" から "true" に変更します。

コンテキストパスの後にロケールを表すディレクトリを追加した形式のURLでアクセスする事で、指定したロケールでのページ表示を行う事ができます。
下表に例を示します。

ロケールURL
デフォルト(fallbackLocale)http://<ホスト名>:8080/demo-project.html
英語(en)http://<ホスト名>:8080/en/demo-project.html
日本語(ja)http://<ホスト名>:8080/ja/demo-project.html
独語(de)http://<ホスト名>:8080/de/demo-project.html

対応する言語はいくつでも増やせるはずです。(上記でロケールを追加すればよい。どこまで増やして大丈夫かは試していないので判りませんが)
ページ編集を行う際に言語を指定する事で多言語対応のコンテンツを作成する事ができます。

管理画面の日本語化

管理画面に関しても日本語化を行う事が可能です。
管理画面におけるロケール設定はサイト単位ではなく、ユーザ単位で設定が可能です。
以下では superuser アカウントのロケール設定を 日本語にする方法に関して示します。

※本来は、superuserで各種作業を行うのではなく、管理/編集作業を行うユーザ毎にアカウントを作成し、実施可能な権限を割り振るべきです ( ユーザ管理に関してはここでは触れません )。

  1. 管理コンソールから [Security] アイコンをクリックします。
  2. [SYSTEM USERS]タブをクリックします。
  3. 定義済みのシステムユーザの一覧が表示されるので superuser をダブルクリックします。
  4. ユーザ情報の設定画面が表示されるので、[USER INFO] タブにある Language の値を "Japanese" に変更し、[SAVE CHANGES] ボタンをクリックします。
    USER INFO

設定を有効にするには、ログインし直してください。
日本語化された管理コンソール

その他

管理コンソールのURL

上記設定を全て行うと、サイトのルートURLにアクセスした場合、デモプロジェクトに飛んでしまい、管理コンソールへのログイン画面は表示されなくなってしまいます。
管理コンソールへは、ルートURLに .magnolia/admincentral を追加したURLでアクセスできます。

まとめ

Magnolia CMS を利用する事で多言語対応のサイトを構築する事が可能です。

Magnolia CMS を利用した多言語対応サイトの例としては JIRA 等のコラボレーションツールを開発している Atlassian のサイト等が代表的です ( 開発者ならおそらく知っている会社/製品があるのではないでしょうか )。

参考 : Atlassian: Makers of JIRA & Confluence Develop Website with Magnolia CMS

Atlassian では Enterprise Edition を利用して多言語サイトを構築しているようです。

日本ではまだまだ知名度が低い Magnolia CMS ですが、国際的に有名な企業での採用も多数あります。

特にエンタープライズ向けの機能は、充実しているといえるでしょう。

弊社 Webサイトも先日多言語対応を実施/公開しました。( コンテンツの英訳は一部のみ )